To jest zaktualizowana wersja mojej poprzedniej odpowiedzi, która była związana z Ubuntu 12.04. W 16.04 (Xenial) potrzebne są 3 kroki, aby poprawnie ustawić DPI zamiast 2.
Wyjaśnię na przykładzie systemu z Ubuntu 12.04 z Gnome Classic i monitorem o rozdzielczości 1680x1050. Moje ustawienia początkowe: xdpyinfo | grep dotszgłaszane 96x96 dots, xrdb -query | grep dpizgłaszane Xft.dpi: 96, grep DPI /var/log/Xorg.0.logzgłaszane dziwne ustawienia NOUVEAU(0): DPI set to (90, 88).
W 16.04 wyniki wszystkich tych 3 poleceń były spójne i równe 96. Chociaż taki konsensus jest lepszy niż zaburzenie z 12.04, podawana wartość jest zakodowana na stałe i daleka od rzeczywistej wartości DPI.
Obliczmy optymalne DPI dla mojego monitora. Rzeczywisty rozmiar ekranu można znaleźć za pomocą polecenia xrandr | grep -w connected(przekonwertuj wyjście na centymetry) lub ręcznie za pomocą długiej linijki. W moim przypadku X = 47.4cm:; Y = 29.6cm. Podzielić je przez 2,54, aby uzyskać rozmiar w calach: X ~ 18.66in; Y ~ 11.65in. Wreszcie podzielić faktyczną ilość kropek (na podstawie swojej uchwały) przez wielkość w calach: X = 1680/18.66 ~ 90dpi; Y = 1050/11.65 ~ 90dpi. Tak więc moja rzeczywista rozdzielczość wynosi 90.
Uwaga: ręczna metoda pomiaru może być dokładniejsza niż wynik polecenia, xrandr | grep -w connectedponieważ nowsze wersje serwera X ignorują rozmiar zgłaszany przez EDID i obliczają rozmiar przy użyciu rozdzielczości ekranu i zakodowanej wartości DPI (więcej informacji tutaj ).
Inną metodą znalezienia rozmiaru monitora jest bezpośredni odczyt jego EDID. Zainstaluj read-edidpakiet i uruchom polecenie sudo get-edid | parse-edid | grep DisplaySizew terminalu. Jego moc wyjściowa da ci rzeczywisty rozmiar twojego monitora w milimetrach. Jeśli nie - użyj linijki.
Zacznijmy naprawiać DPI:
1) W uruchomieniu 12.04 gksudo geditotwórz /etc/lightdm/lightdm.confi dodaj parametr w [SeatDefaults]sekcji:
xserver-command=X -dpi 90
Domyślnie takiego pliku nie ma w 16.04, więc musisz go utworzyć lightdm.confręcznie i włożyć do /etc/lightdm/lightdm.conf.d/. Zawartość tego pliku jest taka sama:
[SeatDefaults]
xserver-command=X -dpi 90
Uruchom ponownie komputer lub uruchom ponownie X. Teraz grep DPI /var/log/Xorg.0.logpokaże żądane ustawienie.
2) W mojej poprzedniej odpowiedzi zaproponowałem utworzenie pliku /etc/X11/Xsession.d/zawierającego ciąg znaków xrandr --dpi 90. Działało to w 12.04, ale w 16.04 to ustawienie nie jest trwałe. W nowszych systemach możemy dodać pożądaną wartość na początku sesji. Uruchom „Aplikacje startowe”, naciśnij przycisk „Dodaj”, nazwij go „Napraw DPI” i ustaw polecenie xrandr --dpi 90w polu. Zapisz zmiany i ponownie się zaloguj. Teraz xdpyinfo | grep dotszgłosi się 90x90 dots.
Jeśli xdpyinfonadal pokazuje 96, dodaj limit czasu przed uruchomieniem xrandr. Edytuj polecenie w „Aplikacjach startowych” i zmień je na:
bash -c "sleep 15; xrandr --dpi 90"
Odniesienie
Krok 2 jest opcjonalny dla 12.04, ponieważ w starszych systemach krok 1 naprawia zarówno wartości, jak Xorg.0.logi xdpyinfowartości.
3) W GNOME3 ustawienie DPI jest zakodowane na 96 i nie można go zmienić bezpośrednio, ale zamiast tego można skalować tekst. Oblicz żądany mnożnik: desired_DPI / 96(w moim przypadku 90/96 = 0.9375). Teraz uruchom polecenie (lub użyj, dconfjeśli wolisz):
gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375
Zmiany zostaną zastosowane od razu. xrdb -query | grep dpizgłosi żądane Xft.dpi: 90.
PS Istnieje inna metoda naprawy ustawienia DPI, która jest znacznie trudniejsza i została opisana w tym przewodniku. Próbowałem też i wynik był taki sam (przynajmniej w 12.04).
Posłowie: tylko programiści Ubuntu mogą z całą pewnością stwierdzić, czy wartości zmodyfikowane w krokach 1 i 2 naprawdę mają znaczenie w nowoczesnym Ubuntu, czy też są po cichu ignorowane. Tylko krok 3 powoduje zmiany, które są natychmiast zauważalne. Użytkownicy, którzy uważają, że niektóre aplikacje mogą nadal polegać na ustawieniach serwera X, są zachęcani do wykonania wszystkich 3 opisanych wyżej kroków. Co do reszty, krok 3 jest wystarczający - to jedyny sposób dostosowywania przyjęty w nowoczesnych dystrybucjach Ubuntu.