두 개의 서로 다른 화면에 대해 서로 다른 DPI 구성을 가질 수 있습니까?


123

Quadro K2100M 그래픽 카드에 NVidia 드라이버 (319)와 함께 Ubuntu 12.04.3을 사용하고 있으며 기본 3200x1800 랩톱 화면을 1920x1080 모드 ( nvidia-settings)로 전환하면 디스플레이가 흐리게 표시됩니다.

두 개의 화면을 사용하고 있습니다 :

  • 내 메인 화면은 최대 해상도 1920x1200의 LCD입니다.
  • 내 노트북 ​​화면 (원래 해상도 3200x1800)이 오른쪽에 있습니다.

주요 문제는 우분투에서 랩톱 화면의 글꼴이 너무 작다는 것입니다. 이 때문에 랩톱의 해상도를 1920x1080으로 변경하고 싶었습니다.

Galgalesh의 답변을 읽고 DPI계산 하려고 시도 했으며 여기에 DPI 구성이 있어야합니다.

  • 메인 LCD 화면에 94x94 1920x1200
  • 내 3200x1800 노트북 화면 용 235x236

확장 된 데스크탑으로 듀얼 DPI 해상도를 유지할 수있는 방법이 있습니까?


3
기본이 아닌 해상도로 LCD 화면을 구동하면 흐릿하게 나타납니다. 픽셀이 고정 된 방식으로 배치되고 신호가이 방식과 일치하지 않기 때문입니다. 정확히 무슨 일이 예상됩니까? 스케일링을 비활성화 하시겠습니까? 그러나 화면 중간에만 표시되고 전체 화면에는 표시되지 않습니다. 최적의 디스플레이를 위해서는 항상 기본 화면 해상도로 디스플레이를 유지하십시오. 나는 이것이 우분투와 관련이 없다고 생각합니다.
gertvdijk

2
@gertvdijk : 두 모니터를 기본 화면 해상도로 유지할 수있는 방법이 있습니까? 나는 그것이 앤서니가 요구하는 것이라고 생각합니다.
beldaz

2
@beldaz 내 대답은 질문의 개정 1에 대한 것이었다 . 당시 이중 화면 설정과 관련된 내용은 언급하지 않았습니다. 질문이 크게 변경되었으므로 해당 날짜 이후에 변경된 게시물의 눈썹이 높아집니다. 기본적으로 기여한 모든 것을 무효화하고 실제로 도움을 청하는 동기를 낮 춥니 다. 내 의견으로는 사용자가 대신 새로운 질문을해야합니다.
gertvdijk

@gertvdijk 죄송합니다. 이제 이해가 되실 것입니다.
beldaz

최신 우분투에서 Wayland를 사용할 가능성이 더 쉽게 해결되는지 궁금합니다.
mkataja

답변:


120

사람들이 여전히 여러 모니터 및 HiDPI 디스플레이로 작업하려고 애 쓰고있는 것 같습니다. 좋은 해결책은 arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays에 설명되어 있습니다 . 그래서 나는 가지고있다:

  • 노트북 ASUS ln303ux : 3200x1800,
  • 외부 모니터 : 1920x1200

이제는 꽤 사용 가능한 HiDPI 지원 기능이있는 Ubuntu 14.10 & GNOME Shell 3.12.2를 사용합니다. 따라서 HiDPI의 기본 지원 만 사용합니다. 스케일링 계수는 2입니다 (GUI를 통해 설정할 수 있음). 즉, 외부 모니터에서 허용되는 것보다 두 배 더 큰 모든 것을 얻습니다. 따라서 xrandr을 사용합니다. 그러나 랩톱 화면을 축소하는 대신 외부 모니터 화면을 업 스케일합니다.

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400

따라서 하나씩 :

  1. --output HDMI1제 경우에는 외부 화면이고 eDP1노트북 화면입니다.
  2. --scale 2x2 -외부 화면의 모든 것을 두 배 작게 만듭니다.
  3. --mode XxY -화면 해상도를 명시 적으로 설정 (이미 설정된 경우 필요하지 않음)
  4. --fb XxY-가상 화면 (프레임 버퍼)의 크기를 설정합니다 ( 이것없이 중요 하면 화면의 네 번째 부분 만 사용할 수 있습니다). 필자의 경우 한 화면이 다른 화면 위에 있었으므로 유효 높이 2400 + 1800 = 4200을 추가했습니다. 또한 최대 프레임 버퍼 크기는 xorg.conf에 지정 될 수 있습니다. 그런 다음이를 초과 할 수 없습니다 (첫 번째 xrandr -q출력 행에 기록됨 ).
  5. --pos XxY-필자의 경우 화면의 절대 위치를 설정하므로 랩톱 화면이 외부 화면의 맨 아래에 직접 있습니다. 여기서 Y 값은 외부 모니터 높이의 두 배입니다.

그리고 이것입니다! 모든 것이 가능한 한 선명합니다.

참고 : 화면 이름과 사용 가능한 해상도를 얻으려면을 실행할 수 있습니다 xrandr --current. 해상도 설정에 대한 자세한 내용은 https://wiki.ubuntu.com/X/Config/Resolution에서 확인할 수 있습니다.

업데이트-옵션 2 : GTK3을 지원하는 응용 프로그램에 대한 또 하나의 흥미로운 해결 방법. 일반적으로 대형 화면에서 하나의 응용 프로그램 만 사용하는 경우 (예 : leksah와 같은 일부 IDE) 화면 크기를 조정하지 않고 원래 크기로 조정 된 응용 프로그램을 실행합니다.

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname

7
도착 error of failed request: BadValue (integer parameter out of range for operation):-(
Juh_

4
--fb옵션은 2x2화면 의 1/4 이상을 활성화하지 않는 것 같습니다 (마우스 커서는 왼쪽 위 사분면을지나 이동할 수 없음)
EoghanM

2
스케일링이 작동하지만 HiDPI를 느슨하게하지 않습니까? 모든 것이 스케일되고 흐릿하게 나타납니다.
Andy

8
1920x1080 외장 모니터를 3200x1800 hiDPI 랩탑 왼쪽에 앉아 나란히 설치하는 경우 :xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0
Daniel Bower

2
--fb 매개 변수는 2 * 외부 모니터 + 노트북 화면
Brian C.

10

왜 흐릿합니까?

화면에는 항상 3200x1800 픽셀이 표시됩니다. 컴퓨터의 화면 해상도를 낮추면 화면에 맞게 이미지의 크기를 조정해야한다는 의미입니다. 기본 해상도와 현재 해상도 간의 비율에 따라 해당 배율을 조정하면 흐릿한 이미지가 생성됩니다.

스케일링 및 기본 해상도에 대한 자세한 내용은 https://en.wikipedia.org/wiki/Native_resolution 에서 확인할 수 있습니다.

텍스트를 더 크게 만들려면 어떻게해야합니까?

텍스트가 너무 작 으면 두 가지 옵션이 있습니다.

1. 우분투의 글꼴 크기 변경

글꼴을 변경하고 크기를 조정하려면 어떻게합니까?

2. DPI 변경 (텍스트뿐만 아니라 전체 인터페이스를 크게 함)

화면 DPI를 찾아서 변경하는 방법? (@whtyger의 답변)


1
글꼴 크기를 늘리는 것에 대한 메모와 같습니다. 오히려 전체 사용자 인터페이스가 확장되도록 DPI를 늘리십시오. 이것은 자동으로 올바르게 인식되어야합니다 (디스플레이에서 EDID 읽기). 그래도 실패 할 경우 : 화면 DPI를 찾아서 변경하는 방법은 무엇입니까?
gertvdijk

23
사실 그것은 내 질문에 대한 답변이 아닙니다. 해상도가 다른 두 개의 다른 화면을 사용하고 있습니다. 계산을했습니다. 왼쪽 메인 LCD 화면의 94x94 DPI 해상도가 있어야하지만 오른쪽 랩톱 화면의 235x235 DPI가 있어야합니다. 그리고 nvidia를 2로 실행하도록 구성하는 것 외에 다른 두 가지 DPI 해상도를 설정할 수있는 방법을 찾지 못했습니다 X를 분리 한 다음 왼쪽에서 오른쪽으로 하나의 창을 전달할 수 없습니다 ... Windows
Anthony O.

9
문제의 요점을 완전히 무시한 -1
Martin Konecny

8
@AnthonyO. 답변이 게시 된 후 마음에 들지 않으면 질문을 크게 변경하지 마십시오. 이 답변이 게시 된 시점에서 이중 화면 설정과 관련된 내용은 언급하지 않았습니다 ( 개정판 1 참조 ). 질문을 변경하면 이미 게시 된 내용이 무효화되며 그렇게하지 않아야합니다. 대신 질문 수정 사항을 되돌리고 대신 새 질문을 게시하십시오.
gertvdijk

5
@MartinKonecny ​​원래 질문자는 자신의 질문을 실질적으로 편집했습니다.이 답변은 원래 질문에 대한 답변입니다.
Jamie Kitson

7

artmem의 솔루션을 사용했지만 EoghanM이 언급 한 마우스 문제가 발생했습니다. 이전 패닝 보고서에서 발견 한 해결 방법은 --panning과 관련이 있습니다.

촬영 대상 :-기본 DIP의 DP1-2 3840x2160. -eDP1 1366x768, DP1-2 오른쪽으로 합리적으로 보이도록 확장되었습니다.

DP1-2 + (2x eDP1)와 같은 프레임 버퍼를 사용하여 이러한 일이 발생하면 eDP1로가는 모든 것을 1/2 씩 확장합니다.

이것은 간단하지만 xrandr는 약간 까다 롭습니다.

여기서 --scale은 eDP1로가는 모든 것을 1/2로 줄이는 데 사용됩니다. -패닝은 원래 프레임 버퍼의 eDP1과 동일하며 위치 (+ 3840 + 0)는 DP1-2의 오른쪽에 있습니다. + 0 + 2160이 그 아래에 있습니다.

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0

또한 Xft.dpi를 185로 설정했습니다.

$ cat ~/.Xresources
Xft.dpi: 185

외부 모니터에서 플러그를 뽑으면 다음을 실행합니다.

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary

그것은 멋지게 보이지 않지만 나는 책상에서 멀지 않습니다. Xft.dpi를 변경하고 모든 데스크톱 프로그램을 다시 시작하면이 문제를 해결할 수 있습니다. Xft.dpi를 변경 한 다음 클라이언트를 다시 시작하지 않고 사용할 수있는 방법을 모르겠습니다.


패닝은 퍼즐의 마지막 조각이었습니다. 커서가 화면 문제의 4 분의 1에서 멈추는 문제를 해결했습니다. 감사합니다 @Brian!
rtindru

2
"두 번 실행"???? 거룩한 픽셀, 작동합니다 (이미 패닝을 적용하고 있었지만 동일한 명령을 두 번 실행하는 경우에만 올바르게 적용됩니다).
리카르도 갈리 17

Ya, 나는 그것을 실행할 때마다 그것이 작동하고 있음을 알았으므로 그것을 두 번 시도 할 것이라고 생각했습니다.
Brian C.

좋아, 그래서 이것은 커널 4.5.2에서 작동하지 않습니다. 4.5.1에서 도커 관련 문제를 해결하기 위해 해당 커널을 설치했으며 이제 위의 스크립트는 검은 화면으로 표시됩니다. 4.5.2에서이 문제를 해결하려면 먼저 --off없이 eDP1 명령을 수행 한 다음 DP1-2 명령을 수행하십시오.
Brian C.

1
마침내 패닝 작업을했습니다! 그래도 xlitr 사용을 시작한 이후로 여전히 마우스와 화면에 결함이 있습니다. 어떤 생각?
hsandt

4

다음 github 토론에 요약 된 세부 정보를 사용 하여이 문제를 해결할 수있었습니다 : https://github.com/linuxmint/Cinnamon/issues/3606

외부 모니터 QHD (2560X1440), 내부 / 노트북 모니터 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2880
xrandr --output DP-1 --mode 2560x1440 --scale 2x2 --fb 5120x4680

또는

외부 모니터 FHD (1920x1080), 내부 / 노트북 모니터 3200x1800

xrandr --output eDP-1 --scale 1x1 --pos 0x2160
xrandr --output DP-1 --mode 1920x1080 --scale 2x2 --fb 3840x3960

이러한 기능은 작동하지만 창을 이동하거나 화면 크기를 조정하거나 브라우저에서 스크롤하면 고해상도 모니터 (랩톱)가 찢어 질 수 있습니다. 이것은 소프트웨어 렌딩 솔루션과 같은 느낌입니다 (이러한 모든 문제가 있고 새로 고침이 느림).

2017 년 Linux / Gnome은 다중 모니터 혼합 스케일링 솔루션을 해결해야합니다. Windows 10 및 OS X 모두 부분적으로 작동하는 명령 줄 반창고 수정에 의존하지 않고도이 문제가 해결되었습니다 (게임에 찢어짐 문제는 허용되지 않습니다)


1
이것은 새로운 답변입니까, 아니면 버그를보고하려고합니까?
user68186

기존 답변에 대한 자세한 설명과 활용할 수있는 더 많은 옵션이 있습니다. 위의 @artem에서 제공하는 답변은 이러한 설정의 작동 방식을 설명합니다. QHD 또는 FHD 외부 모니터와 4K 기본 모니터 / 노트북 모니터를 사용하는 사람들을 위해 사용할 수있는 두 가지 옵션을 제공하려고했습니다. 이 솔루션을 사용하면 버그가 발생합니다. 그것은이 접근 방식에 내재되어 있습니다.
Jeets

2
4k 및 다중 해상도 설정이 확산됨에 따라 해결이 필요한 마지막 단락에 동의합니다. 이전에는 그렇게 나쁘지 않았지만 이제는 4k를 가지고 있기 때문에 하나의 모니터에서 설정을 망칠 수 있습니다. Ubuntu 18 LTS가이 문제를 해결하기를 바랍니다.
neuronet

3
그것은 2018 년입니다 ... 여전히 같은 sh1t :)
Stefanos Kalantzis

Wayland는 이것을 위해 잘 작동합니다. 그게 아니라면 ... gnome + wayland보다 wayland + kde에 대한 좋은 경험이 있습니다. X에서만 실행되는 일부 소프트웨어에 대한 지원 부족과 안정성 문제로 인해 X로 돌아 왔습니다. 2018 ...
Victor

4

이 답변은 모두 훌륭하고 이전에 도움이되었지만 최근에

sudo apt-get upgrade 

randr-config를 삭제했습니다! 설정을 복원하려고 할 때 --fb 입력에 관계없이 더 이상 두 번째 화면의 1/4 사분면 이상으로 마우스를 가져올 수 없다는 것을 알았습니다. 에서 https://wiki.archlinux.org/index.php/HiDPI#Side_display 나는 결국 팬을 추가하는 것은 속임수를 썼는지 것을 발견했다. 또한 '--right-of'또는 '--left-of'를 사용하는 것이 '--pos'보다 간단합니다.

"일반적으로 HiDPI 모니터 (랩탑)가 AxB 픽셀이고 일반 모니터 (외부)가 CxD이고 [ExF]로 스케일링하는 경우 오른쪽 명령 줄은 다음과 같습니다."

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1

이것은 흥미롭고 누군가에게 유용 할 것 같습니다.하지만 이것이 이것이이 질문에 대한 대답인지 확실하지는 않습니다. 어쩌면 당신은 자신의 질문을 열고 대답해야합니까? 확실하지 않습니다.
Hee Jin

1
@ 에밀리 :이 답변이 여기에 속하는 것 같습니다. 나는 오늘 artem의 대답을 사용했고 ONECore가 언급 한 정확한 문제가있었습니다 (화면의 왼쪽 상단 사분면 만 마우스로 사용할 수 있음). 운 좋게도 나는이 답변을 보았고 패닝은 즉시 작동했습니다.
BrainCore

네, 죄송합니다. @ artem의 답변에 대한 답변이 되길 원했지만 Stackexchange는 훌륭하고 50 브라우니 포인트를 얻을 때까지 회신하지 않습니다.
ONECore

또한 이것은 영구적이지 않은 것이므로 xorg.conf에 추가하지 않으면 다시 시작할 때마다 사라집니다. 그러나 거기에 추가하면 무엇이든지 상관없이 설정을 강제합니다 (때로는 모니터에 연결하지 않음). 그래서 쉘을 만들고 원할 때 실행하는 것이 매우 쉽다는 것을 알았습니다. 위의 코드를 .sh로 끝나는 텍스트 파일 (예 : resolution.sh)에 추가 한 다음 터미널에서 "chmod 0700 resolution.sh"로 실행 가능하게 만드십시오.
ONECore

@BrainCore뿐만 아니라 경험을 공유해 주셔서 감사합니다!
Hee Jin

1

구식 1024x768 모니터가 있고 구식 노트북에 연결되어 있습니다.
윈도우는 상당히 다른 크기로 렌더링되었으며 외부 모니터에서 훨씬 더 컸습니다 (더 오래된 도트 피치를 가짐).
모니터를 조정하는 명령을 찾았습니다.

xrandr --output VGA-1 --scale 1.5x1.5

VGA-1은 다음 명령을 실행하여 찾은 모니터의 내부 이름입니다.

xrandr --current | grep connected

그 결과 이전 모니터는 노트북과 거의 동일한 크기로 내용이 표시됩니다.

흥미롭게도 x1.5 배율로 작동하지만 1.45에서는 작동하지 않으며 디스플레이 (내 경우)는 검은 색으로 바뀝니다.

스케일 주석을 처음 실행하면 두 화면의 내용이 겹치기 때문에 결과가 무서웠습니다. 예를 들어 커서 포인터가 두 번 나타납니다.

나는 프로그램을 실행했다 :

arandr &

상대 화면 위치를 설정하여 수정하십시오. 설정> 장치> 디스플레이 설정
처럼 작동 합니다.

나는 그것을 설치했다 :

sudo apt-get install arandr

지식을 공유해 주신 @LuisAlvarado와 다른 분들께 감사드립니다!


이것은 일시적으로 작동하지만 다시 시작해도 달라지지 않습니다. 나는 arandr여기서하고있는 일 을 할 수있는 스크립트를 찾은 다음 모든 것을 내 bashrc 나 다른 곳에 넣을 필요가 있다고 생각 합니다. 감사!
최대 폰 히펠

arandr는 구성 파일을 내보낼 수 있습니다. 데스크탑에 파일을 설정하고 재부팅 할 때마다 파일을 arandr에 공급했습니다. 스크립트를 개발하지 않았으며 이제 모니터를 얻었고 더 이상 랜더를 사용하지 않습니다.
Juan Lanus

0

$xrandr모든 출력을 표시하는 주먹 런

Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97   
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02

이 경우 두 번째 모니터가 연결되면 DP-3 다음과 같이 디스플레이를 재판매 할 수 있습니다. $xrandr --output DP-3 --auto --scale 2x2

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.