디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

리눅스 Wine 프로그램 DPI 자동 조정하기

헬로모코갤로그로 이동합니다. 2019.01.17 23:24:40
조회 1427 추천 19 댓글 3
														

최근 노트북에서 고해상도가 대세가 되면서 맥이나 윈도우처럼 리눅스도 HiDPI 지원을 시작했음.

맥북이나 다른 고해상도 노트북 화면에 선명한 HiDPI 화면을 뿌릴 수 있게 됐다는 것까지는 좋지만, 그래봤자 사용하다 보면 어쩔 수 없이 고해상도 노트북을 구형 모니터에 연결해야 하거나, 아니면 반대로 저해상도 노트북을 최신 고해상도 모니터에 연결해야 하는 경우가 생기는데... 이때 맥이나 윈도우와 달리 리눅스는 DPI 1x과 2x를 왔다 갔다하기 굉장히 까다로운 축에 속함.

GTK3 응용 프로그램들은 DPI를 바꿔도 잘 작동하고, GTK2 프로그램들은 미관상 조금 안 좋아지지만 그래도 쓸만한데, 문제는 Wine으로 돌리는 윈도우 응용 프로그램들은 HiDPI가 걸리든 말든 꿋꿋이 1x를 유지하기 때문에 수동으로 설정해줘야 함.

그 설정을 자동화할 수 있는 방법을 알아보자

viewimage.php?id=21b4de33fd&no=24b0d769e1d32ca73cee84fa11d02831cd949b6924735c7cb75a680f5f9d0fc9a8682d0e79da89507a9ac082f8bbfc7c48409144ce4ed20f3be4e01a91431140



winecfg를 실행해 dpi를 96으로 바꾸면 1x 스케일, 192로 바꾸면 2x 스케일에 맞출 수는 있는데 이 방법으로는 실행 동선이 복잡해서 귀찮음.

Wine은 dpi 정보를 윈도우와 동일하게 레지스트리에 저장하니까 이걸 스크립트로 수정하려면 레지스트리 파일을 만들어야 함

viewimage.php?id=21b4de33fd&no=24b0d769e1d32ca73cee84fa11d02831cd949b6924735c7cb75a680f5f9d0fc9a8682d0e79da89507a9ac082f8bbfc7c484091449b43dd0f3abfeb4a91431140



친절하게도 저장되는 위치 역시 윈도우랑 똑같음. HKEY_CURRENT_USER\Control Panel\Desktop에 있는 LogPixels DWORD값에 96 보이지??

즉 이 값을 건드려 주기 위해 .reg 파일을 만드는 것부터 시작!

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"LogPixels"=dword:00000060
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"LogPixels"=dword:000000c0

각각 96dpi(1x)와 192dpi(2x)로 바꿔 주는 파일임. 각각 복사해서 빈 파일에 붙여넣고 1x.reg, 2x.reg로 저장하면 터미널에서 ‘wine regedit 파일명’으로 바로 등록시킬 수 있음.

근데 이왕 하는 김에 더 편하게 쓰는 게 낫지 않겠어? 현재 UI 배율을 자동으로 인식하도록 리눅스 측에서 현재 DPI 정보를 가져올 수 있도록 해보자.

$ xrdb -query | grep dpi

viewimage.php?id=21b4de33fd&no=24b0d769e1d32ca73cee84fa11d02831cd949b6924735c7cb75a680f5f9d0fc9a8682d0e79da89507a9ac082f8bbfc7c48409144ce49d30038bee41191431140



이렇게 현재 dpi 정보를 가져올 수 있음. 마찬가지로 96dpi가 1x 192dpi가 2x임.
이걸 이용해서 스크립트를 실행할 때마다 자동으로 dpi를 맞추게끔 스크립트를 짤 수 있음

#! /bin/bash

STR1=`xrdb -query | grep dpi`
if [ "$STR1" == "Xft.dpi: 192" ]; 
then
 echo `wine regedit ~/Apps/winedpifix/2x.reg`
fi

if [ "$STR1" == "Xft.dpi: 96" ]; 
then
 echo `wine regedit ~/Apps/winedpifix/1x.reg`
fi

(.reg 파일 경로는 사정에 맞게 알아서 수정)
이렇게 한 다음 만들어진 스크립트 파일과 레지스트리 파일을 적당한 경로에 놓고

# cd /usr/bin
# ln -s /home/hkeylocal/Apps/winedpifix/winedpifix

/usr/bin에 연결을 만들어 주면 명령어 딱 한 줄로 알아서 wine dpi를 맞춰주는 프로그램 완성!

$ winedpifix

이제 이것을 시작 프로그램에 등록하거나, Wine 프로그램 바로가기 링크를 수정하여 프로그램을 실행하기 전 먼저 DPI를 잡게 하거나 하는 식으로 응용이 가능함

winedpifix && (프로그램 실행 명령어)

단 스크립트를 실행해도 이미 실행중인 프로그램에는 반영이 안 되니까 껐다 켜야 함.


추천 비추천

19

고정닉 7

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 시세차익 부러워 부동산 보는 눈 배우고 싶은 스타는? 운영자 24/05/27 - -
1673 자박꼼수 투머갈서 바이럴하다가 차단먹었잖음 FFrnpeg갤로그로 이동합니다. 22.04.17 439 13
1672 바이럴같으면 들어가서 바이럴이라 댓달던가 = ㅇㅇ(5.254) 22.04.17 299 13
1670 아니 블로그바이럴 할거면 티 안나게라도 하던가ㅋㅋㅋ ㅇㅇ(121.187) 22.04.17 384 13
1669 220.119 고아노? [12] ㅇㅇ(121.187) 22.04.17 499 13
1622 밑에 ddck1321 블로그링크 올리면서 글쓴새끼야 [2] ㅇㅇ(39.7) 22.02.28 484 18
1603 형들 이런 리눅스 써본적있어? 토토로(220.119) 22.02.06 961 12
리눅스 Wine 프로그램 DPI 자동 조정하기 [3] 헬로모코갤로그로 이동합니다. 19.01.17 1427 19
363 여러분들은 웹 브라우저 뭐 쓰세요 [24] dd(182.231) 18.10.20 2523 15
48 자유 소프트웨어란 무엇인가? [5] 자유 소프트웨어 재단(1.224) 16.08.13 2379 44
1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2