Jak znaleźć i zmienić DPI ekranu?


87

Próbuję znaleźć, a następnie zmienić ustawienie DPI ekranu (punktów na cal) w 12.04 i 12.10. Jednak nie mogę znaleźć aplikacji lub pliku konfiguracyjnego, który mógłby to zrobić. Czy jest na to jakaś aplikacja lub plik conf?

Pamiętaj, że dotyczy to wersji 12.04+, więc następujące elementy nie będą działać:

Co więcej, zasadniczo zmieniają rozmiar czcionki, a nie rzeczywisty DPI ekranu.


1
Próbuję poćwiczyć, jak mieć różne dpi na każdym monitorze.
ctrl-alt-delor

1
Cześć @richard, jeśli tak, chcielibyśmy, abyś umieścił tutaj swoje kroki i wyniki. Dziękuję Ci.
Luis Alvarado,

Odpowiedzi:


117

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.


2
To jest bardzo kompletna (podobała się cała) odpowiedź pełna nowych informacji. Dzięki, whtyger. +1
Luis Alvarado

2
Dzięki za wysoką ocenę. Spędziłem kilka dni wszędzie, szukając rozwiązania problemu i teraz z przyjemnością dzielę się nim ze wszystkimi.
whtyger

1
oto arkusz kalkulacyjny, aby zaoszczędzić trochę czasu na obliczaniu wartości: docs.google.com/spreadsheet/...
Tom Carchrae


1
@RaffiKhatchadourian Jest schemat org.gnome.desktop.interfacei klucz scaling-factor. Wartość domyślna to 1 i może być tylko liczbą całkowitą. Jest przeznaczony do wyświetlaczy HiDPI. Istnieją pewne metody uzyskiwania współczynnika skalowania niecałkowitego przy użyciu xrandr. Sprawdź ten link: wiki.archlinux.org/index.php/HiDPI (to baza wiedzy Arch, nie testowałem tego w Ubuntu).
whtyger 12.04.17

28

Począwszy od 14.04 mamy opcję, która trochę pomaga:

Wsparcie skalowania

Na poniższym obrazku widzimy skalowanie na poziomie 0,75 na czcionkach i paskach tytułowych:

wprowadź opis zdjęcia tutaj

Na poniższym obrazku widzimy skalowanie, jakie ma na 1,38 na czcionkach i paskach tytułowych:

wprowadź opis zdjęcia tutaj


3
To działało dla mnie w Ubuntu 14.04 (niemiecki: „Anzeigegeräte”) Musiałem przywrócić domyślny współczynnik skalowania czcionek do 1,0 (ustawiłem go na 2,0 berfore) i przeskalować rozmiar Launchera w „Wszystkie ustawienia” -> „Darstellung „
rubo77,

4
Czy to nie zmienia tylko menu i pasków tytułowych, w tym Launchera, a NIE całkowitego DPI?
John Scott

1
@FuzzyToothpaste, dlatego powiedziałem „trochę pomaga”. Chodzi o to, że po obniżeniu skali, oprócz zmiany menu, paska tytułu i ikon programu uruchamiającego, rzeczywisty rozmiar okien, z powodu zmiany, będzie mniejszy. To trochę pomaga, jeśli masz na przykład rozdzielczość 1280x720 (jak laptop) i chcesz dopasować okna do tego 720. Obniżenie skali do 0,8 lub mniej będzie „czuć”, jakbyś używał 1080 zamiast 720. To oczywiście jest z Non Hi-DPI, podobnie jak produkty jabłkowe. Myślę, że efekt byłby większy na tego typu sprzęcie.
Luis Alvarado,

Witam, przepraszam za mój komentarz; Chcę wyświetlić ustawienia wyświetlania jak na twoich zdjęciach za pomocą sesji xserver: czy jest na to sposób?

9

O ile mam doświadczenie w Ubuntu, zmiana ustawienia DPI czcionek zmienia znacznie więcej niż tylko sposób renderowania czcionek. Dotyczy to również na przykład ikon i wielkości menu.

Po prostu Xorg podpowiada środowisku pulpitu o tym, jaka jest DPI fizycznego wyświetlacza. I tak, możesz to zmienić w Xorg.conf, ale ma to ten sam efekt, co zmiana ustawienia w twoim DE. Na przykład w Kubuntu / KDE:

wprowadź opis zdjęcia tutaj


3
Czy istnieje wersja tego menedżera czcionek dla systemu Ubuntu (Unity).
Luis Alvarado,

@LuisAlvarado Nie, wygląda na to, że jest to tylko GNOME2 i KDE oferujące to ... Gnome-tweak-narzędzie powinno być w stanie to zrobić, ale powoduje awarię mojej maszyny wirtualnej Unity 12.10 przy każdej zmianie rozmiaru czcionki.
gertvdijk

9

Miał podobny problem na ekranie 2880 x 1620. Zobacz http://ubuntuforums.org/showthread.php?t=2106549 Rozwiązane przez wprowadzenie

xrandr --output DP-0 --scale 0.75x0.75

do mojego ~ / .xprofile

Zamiast „DP-0” wpisz cokolwiek

xrandr

mówi jako nazwę urządzenia.

Możesz oczywiście dostosować skalę, ale 0,5 jakoś nie wyglądało ładnie na moim ekranie.


3
Jest to tylko obejście, ponieważ powoduje utratę rzeczywistej rozdzielczości. Dzięki takiemu skalowaniu monitor wyświetla tylko połowę piksela zamiast renderować go w skalowanej rozdzielczości
rubo77

1
Niestety, mysz nie skaluje się z tą samą szybkością, co ekran: --( Podczas skalowania w dół, gdy jesteś, jest to nieszkodliwe, ponieważ mysz po prostu bada puste miejsce poza ekranem, ale podczas skalowania w górę, aby uzyskać złożoną aplikację do dobrego wyświetlania na mniejszych ekranach mysz nie dociera do krawędzi ekranu, co sprawia, że ​​jest to bezużyteczne w tym przypadku użycia
marsbard

7

Chociaż powyższe xserver-command=X -dpi ...i xrandr --dpi ...podane powyżej mogły działać bardzo dobrze we wcześniejszych wersjach Ubuntu, w Ubuntu 13.10 (co mam) Unity ignoruje te ustawienia i utrzymuje stałą rozdzielczość (w przypadku X serwera na poziomie 96 dpi).

A xrandr --scale ...polecenie skaluje ekran zgodnie z opisem, ale skaluje go w taki sposób, że tekst i ikony są nieco rozmyte. Ale to działa.

Wygląda na to, że w Ubuntu 13.10 najlepszą opcją może nie być próba zmiany ustawienia dpi dla serwera X, ale zamiast tego użyj unity-tweak-tooldo zmiany domyślnych czcionek używanych przez Unity i domyślnego współczynnika skalowania czcionek. Możesz pobrać unity-tweak-toolz Centrum oprogramowania Ubuntu. Po otwarciuunity-tweak-toolprzejdź do przycisku Czcionki i spróbuj zmienić współczynnik skalowania czcionek na 1,2 lub 1,25 (lub wyższy lub niższy), aby uzyskać odpowiedni rozmiar czcionek. W tym panelu sterowania możesz także zmienić domyślne czcionki używane przez Unity. Wprawdzie to rozwiązanie nie skaluje wszystkiego na ekranie, tylko tekst, ale działa naprawdę dobrze na moim laptopie z ekranem o rozdzielczości 166 dpi. Wygląda na to, że przeglądarki internetowe, takie jak Firefox i Chromium, nie zauważają tego ustawienia, ale zarówno Firefox, jak i Chromium umożliwiają ustawienie minimalnego rozmiaru czcionki w ustawieniach aplikacji w celu skalowania czcionek na stronach internetowych w ten sam sposób.


Dobre badania Carl.
Luis Alvarado

5

W Ubuntu 14.10 z 15-calowym laptopem o rozdzielczości 1920x1080 (345 mm x 145 mm) i gęstości 143ppi / dpi zrobiłem następujące rzeczy.

W /etc/X11/xorg.conf.d/xorg.conf dodałem następujące informacje:

# xdpyinfo | grep -B2 resolution
# https://wiki.archlinux.org/index.php/xorg#Display_size_and_DPI
Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize             345 195    # In millimeters
EndSection

Ustawia to ogólnosystemowe ustawienia dpi na właściwe 143dpi:

$ xdpyinfo | grep dots
resolution:    142x142 dots per inch

Zrobiłem również wszystkie wyżej wymienione poprawki:

  • Ustawienia systemowe (w panelu Unity) -> Wyświetlacze -> Skala dla pasków menu i tytułów: 1.25
  • W chromie zaczynam od: chrome-browser --enable_hidpi = 1
  • W przeglądarce Firefox ustawiłem about: config -> layout.css.devPixelsPerPx: 1.4
  • W atom.io skomentowałem ten problem

Prawie muszę dostosować każdą aplikację, którą zamierzam użyć. Również w przeglądarkach ten zoom powoduje również rozmycie obrazu (ikony, przyciski na stronach internetowych itp.), Ponieważ również się powiększa. Chciałbym ustawić obraz na rozmiar 1: 1 i 2: 1 jednym kliknięciem lub gestem.

Mam nadzieję, że dodaje kilka przydatnych informacji od 9 października 2014.


Myślę, że możesz naprawić rozmycie poprzez skalowanie wielokrotności 12. W twoim przypadku ustaw rozdzielczość na 144
Martin Konecny

+1 za umieszczenie daty w poście. Czasami to robię, ale przypominasz mi, że muszę to robić częściej. (wskazówka dla wszystkich innych).
WinEunuuchs2Unix

3

Zainstaluj Ubuntu-Tweak http://ubuntu-tweak.com/

Otwórz i przejdź do „Tweaks> Czcionki”. Następnie zmień „Współczynnik skalowania tekstu”

Działa świetnie. Cieszyć się.


3

Możesz skalować wszystko za pomocą xrandr, co prawdopodobnie jest tym, czego szukasz. Nie jestem pewien, jak to działa wewnętrznie, ale efekt wydaje się być zmianą dpi.

Aby skalować rozdzielczość, najpierw znajdź nazwę swojego wyświetlacza za pomocą xrandr:

lars:~$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 1600 x 1600
LVDS connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768       60.0*+
   1280x768       60.0 +
   1280x720       60.0 +
   1024x768       60.0 +
   1024x600       60.0 +
   800x600        60.0 +
   800x480        60.0 +
   720x480        60.0 +
   640x480        60.0 +
DFP1 disconnected (normal left inverted right x axis y axis)
CRT1 disconnected (normal left inverted right x axis y axis)

Tak więc w moim przypadku mój wyświetlacz laptopa nazywa się LVDS.

Następnie wykonaj następujące czynności, aby skalować rozdzielczość:

xrandr --output LVDS --scale 0.75x0.75

Program uruchamiający i panel mogą zniknąć na chwilę, ale po prostu najedź na nich kursorem i powinny się ponownie pojawić. Być może trzeba będzie zmienić rozmiar wszystkich otwartych okien, aby pasowały do ​​mniejszej rozdzielczości.


Ten zaciera wynik
Beernarrd,

2

Kiedy skończyłem na tym pytaniu, szukając skalowania HiDPI dla systemu Windows w Ubuntu Gnome, oto mój dodatek do losowych sugestii, dzięki czemu znajdę go, gdy będę go ponownie potrzebować. :)

Aby uzyskać dostęp do tego okna dialogowego, otwórz Gnome Tweaks i przejdź do sekcji Windows.

Gnome Tweaks - Windows


0

Używam Zorin8 (oparty na Ubuntu13.x).

Możesz skalować ekran za pomocą myszy (1024/800 = 1,28, 768/600 = 1,28):

xrandr --output LVDS1 --mode 800x600 --panning 1024x768 --scale 1.28x1.28

Lub tylko przesuwać ekran, więc musisz użyć myszy, aby zobaczyć części, które nie są widoczne na ekranie:

xrandr --output LVDS1 --mode 800x600 --panning 1024x768

-2

Nie można tak naprawdę zmienić fizycznego ppi monitora. Rzeczywiste ppi to rzeczywiste ppi sprzętowe, jednak większość oprogramowania przyjmie wartość ppi 72 dpi ze względów historycznych, chociaż 96 dpi nie jest obecnie rzadkością.

Możesz zmienić rozdzielczość monitora, co zmienia przetłumaczone ppi, i możesz zmienić takie rzeczy, jak rozmiar czcionki.

Jeśli zainstalujesz MyUnity, możesz między innymi zmienić DPI czcionki.

Jeśli posiadasz monitor o rozdzielczości 1024 x 768 pikseli (rozdzielczość) i to prawda 72 dpi, to będzie to monitor o przekątnej 17 cali. Jeśli ustawisz rozmiar czcionki 72, wysokość znaku będzie wynosić 1. Jeśli ustawisz wyświetlanie na rozdzielczość 800x600, czcionka będzie większa, a ustawienie 1600x1200 sprawi, że czcionka będzie się wydawać mniejsza.


Co z opcjami xorg, takimi jak „UseEDIDDpi” i „DPI”? Przeczytałem, że na przykład pierwszy z nich może wyłączyć odczyt EDID z karty graficznej na wypadek, gdyby został odczytany nieprawidłowo i za pomocą DPI możesz zmienić DPI. To mnie dezorientuje.
Luis Alvarado,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.