XRandR DPI w systemie Linux z wieloma głowicami

18

Mam wiele ekranów z różnymi poprawnymi ustawieniami DPI. Mogę użyć xrandr --dpi Xdo zmiany DPI dla wszystkich ekranów, czy można ustawić różne DPI dla każdego ekranu? Jak sprawić, by aplikacje ponownie obliczały rozmiary czcionek po przeniesieniu ich na inny ekran? xrandr --dpi Xwpływa tylko na nowe okna, stare okna nadal używają starej wartości DPI.

Marek Sapota
źródło

Odpowiedzi:

3

Jeszcze tego nie wypróbowałem, ale tutaj jest dobrze wyglądająca odpowiedź , która sugeruje użycie xrandropcji, scale która powinna zapewnić ci oczekiwany efekt.

AKTUALIZACJA: To działa, napisałem tutaj streszczenie instrukcji .

Jamie Kitson
źródło
3
Proszę zawsze kopiować i wklejać instrukcje do odpowiedzi. Jest to środek zapobiegający utracie informacji w pytaniach historycznych. Prędzej czy później większość linków zewnętrznych będzie martwych, a to sprawi, że twoja odpowiedź będzie bezcelowa ... W każdym razie większość użytkowników chciałaby zobaczyć odpowiedzi na jednej stronie, ...
kravemir
Nawet jeśli ta strona jest inną witryną StackExchange?
Jamie Kitson,
Polecenie skalowania wydaje się być bardzo intensywne na GPU w porównaniu z konfiguracją wielu monitorów w systemie Windows 10. Skala oznacza bezpośrednie skalowanie pikseli, podczas gdy Windows 10 zmienia rozmiar tekstu.
Kun
3

Udało mi się to rozwiązać (z problemami) przy użyciu szczegółów opisanych w następującej dyskusji na githubie: https://github.com/linuxmint/Cinnamon/issues/3606

Monitor zewnętrzny QHD (2560 x 1440), monitor wewnętrzny / laptop 3200 x 1800

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

LUB Monitor zewnętrzny FHD (1920x1080), monitor wewnętrzny / laptop 3200x1800

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

Te działają, ale znaczna część jest rozdzierająca na monitorze o wysokiej rozdzielczości (laptopie), gdy poruszam oknami, zmieniam rozmiar ekranów lub przewijam w przeglądarce. To wydaje się być rozwiązaniem do renderowania oprogramowania (które ma wszystkie te problemy związane z rozrywaniem i powolnym odświeżaniem).

W Linuksie / Gnome w 2017 r. Należy rozwiązać problem mieszanego skalowania na wielu monitorach. Zarówno Windows 10, jak i OS X rozwiązały ten problem bez konieczności uciekania się do poprawek wspomagania pasma linii poleceń, które częściowo działają (problem z rozrywaniem jest niedopuszczalny w grach)

Jeets
źródło
2

możesz ustawić różne wartości dla każdego ekranu za pomocą:

xrandr --output <Display1> --dpi X --output <Display2> --dpi Y

Aby zobaczyć, jakie są dostępne, użyj xrandrponownie, aby ponownie uruchomić czcionkę. Myślę, że możesz wyłączyć wyświetlacz i włączyć go ponownie za pomocą:

xrandr --output <Display1> --off
xrandr --output <Display1> --auto

ale nie jestem do końca pewien

Agomezl
źródło
2
O ile widzę, „--dpi” nie jest ustawieniem na wyjście. Powoduje wywołanie XRRSetScreenSize dla całego ekranu. O ile widzę X11 po prostu nie obsługuje ustawiania różnych wartości DPI dla różnych wyjść. Co by ssało ...
Arnout Engelen
2
Ach, faktycznie dane wyjściowe RandR mają szerokość / wysokość określoną zarówno w pikselach, jak i milimetrach, więc różne dane wyjściowe mogą mieć różne DPI - ale w AFAICS nie ma wywołania RandR do manipulowania fizycznym rozmiarem danych wyjściowych.
Arnout Engelen
5
Różne źródła, w tym wiki.archlinux.org/index.php/HiDPI#External_displays sugerują, że tylko jedno ustawienie DPI jest możliwe jednocześnie (w jednej instancji Xserver). Polecenie xrandr sugerowane przez Agomezla nie działa.
Vladimír Čunát,