Wie finde und ändere ich die DPI des Bildschirms?

87

Ich versuche, die Bildschirm- DPI-Einstellung (Punkte pro Zoll) in 12.04 und 12.10 zu finden und zu ändern . Ich kann jedoch keine App oder Konfigurationsdatei finden, die dies ermöglicht. Gibt es dafür eine App oder eine Conf-Datei?

Beachten Sie, dass dies für 12.04+ gilt, sodass Folgendes nicht funktioniert:

Außerdem ändern sie im Grunde genommen die Schriftgröße und nicht die tatsächliche Bildschirm-DPI.

Luis Alvarado
quelle
1
Ich versuche zu trainieren, wie man unterschiedliche dpi auf jedem Monitor hat.
Strg-Alt-Delor
1
Hi @richard, wenn du das tust, würden wir uns freuen, wenn du deine Schritte und Ergebnisse hier ablegst. Danke.
Luis Alvarado

Antworten:

117

Dies ist eine aktualisierte Version meiner vorherigen Antwort, die sich auf Ubuntu 12.04 bezog. In 16.04 (Xenial) sind 3 Schritte erforderlich, um DPI anstelle von 2 richtig einzustellen.

Ich werde am Beispiel des Systems mit Ubuntu 12.04 mit Gnome Classic und einem Monitor mit der Auflösung 1680x1050 erklären. Meine Starteinstellungen: xdpyinfo | grep dotsgemeldet 96x96 dots, xrdb -query | grep dpigemeldet Xft.dpi: 96, grep DPI /var/log/Xorg.0.logeinige seltsame Einstellungen gemeldet NOUVEAU(0): DPI set to (90, 88).

In 16.04 waren die Ausgaben aller dieser 3 Befehle konsistent und betrugen 96. Obwohl ein solcher Konsens besser ist als die Störung von 12.04, ist der gemeldete Wert fest codiert und weit vom tatsächlichen DPI-Wert entfernt.

Berechnen wir die optimale DPI für meinen Monitor. Die tatsächliche Größe des Bildschirms kann mit dem Befehl xrandr | grep -w connected(Ausgabe in Zentimeter konvertieren) oder mit einem langen Lineal von Hand ermittelt werden. In meinem Fall X = 47.4cm:; Y = 29.6cm. Teilen Sie sie mit 2,54 die Größe in Zoll zu bekommen: X ~ 18.66in; Y ~ 11.65in. Teilen Sie zuletzt die tatsächliche Punktanzahl (basierend auf Ihrer Auflösung) durch die Größe in Zoll X = 1680/18.66 ~ 90dpi:; Y = 1050/11.65 ~ 90dpi. Also meine echte dpi ist 90.

Seien Sie gewarnt , die manuelle Messmethode ist möglicherweise genauer als die Ausgabe des Befehls, xrandr | grep -w connectedda die neueren Versionen von X Server die von EDID gemeldete Größe ignorieren und die Größe anhand der Bildschirmauflösung und eines fest codierten DPI-Werts berechnen (weitere Informationen hier) ).
Eine andere Methode, um die Größe des Monitors zu ermitteln, besteht darin, die EDID direkt zu lesen. Installieren Sie das read-edidPaket und führen Sie den Befehl sudo get-edid | parse-edid | grep DisplaySizeim Terminal aus. Die Ausgabe gibt Ihnen die tatsächliche Größe Ihres Monitors in Millimetern. Wenn nicht - benutzen Sie das Lineal.

Fangen wir an, DPI zu reparieren:

1)gksudo gedit Öffnen Sie in 12.04 /etc/lightdm/lightdm.confeinen Parameter unter [SeatDefaults]Abschnitt:

xserver-command=X -dpi 90

In 16.04 gibt es standardmäßig keine solche Datei. Sie müssen sie also lightdm.confmanuell erstellen und in das Verzeichnis einfügen /etc/lightdm/lightdm.conf.d/. Der Inhalt dieser Datei ist der gleiche:

[SeatDefaults]
xserver-command=X -dpi 90

Starten Sie Ihren Computer neu oder starten Sie X neu. Nun grep DPI /var/log/Xorg.0.logwird die gewünschte Einstellung angezeigt.

2) In meiner früheren Antwort schlug ich vor, eine Datei /etc/X11/Xsession.d/mit einem String zu erstellen xrandr --dpi 90. Dies hat in 12.04 funktioniert, aber in 16.04 ist diese Einstellung nicht dauerhaft. In neueren Systemen können wir den gewünschten Wert beim Sitzungsstart hinzufügen. Führen Sie "Startup Applications" aus, klicken Sie auf "Add", nennen Sie es "Fix DPI" und geben Sie den Befehl xrandr --dpi 90in das Feld ein. Speichern Sie die Änderungen und melden Sie sich erneut an. Nun xdpyinfo | grep dotswird berichtet 90x90 dots.

Wenn xdpyinfoimmer noch 96 angezeigt wird, fügen Sie vor dem Ausführen eine Zeitüberschreitung hinzu xrandr. Bearbeiten Sie den Befehl in "Startup Applications" und ändern Sie ihn in:

bash -c "sleep 15; xrandr --dpi 90"

Referenz

Schritt 2 ist für 12.04 optional, da in älteren Systemen in Schritt 1 beide Xorg.0.logund xdpyinfoWerte korrigiert werden.

3) In GNOME3 ist die DPI-Einstellung fest auf 96 eingestellt und kann nicht direkt geändert werden. Stattdessen kann der Text skaliert werden. Berechnen Sie den gewünschten Multiplikator: desired_DPI / 96(in meinem Fall 90/96 = 0.9375). Führen Sie nun den Befehl aus (oder verwenden dconfSie ihn, wenn Sie es vorziehen):

gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375

Änderungen werden sofort übernommen. xrdb -query | grep dpiwird den gewünschten melden Xft.dpi: 90.

PS Es gibt eine andere Methode, um die DPI-Einstellung zu korrigieren, die viel schwieriger ist und in diesem Handbuch beschrieben wird. Ich habe es auch versucht und das Ergebnis war das gleiche (zumindest in 12.04).

Nach dem Motto: Nur Ubuntu-Entwickler können mit Sicherheit sagen, ob durch die Schritte 1 und 2 geänderte Werte im modernen Ubuntu wirklich von Bedeutung sind oder ob sie unbemerkt ignoriert werden. Nur in Schritt 3 werden die Änderungen sofort sichtbar. Benutzer, die der Ansicht sind, dass bestimmte Apps möglicherweise immer noch auf X-Servereinstellungen angewiesen sind, werden aufgefordert, alle drei oben beschriebenen Schritte auszuführen. Im Übrigen ist Schritt 3 ausreichend - dies ist die einzige Art der Anpassung, die in modernen Ubuntu-Distributionen angewendet wird.

whtyger
quelle
2
Dies ist eine sehr vollständige (Genossen die ganze Sache) Antwort voller neuer Informationen. Danke vielmals. +1
Luis Alvarado
2
Danke für die gute Note. Ich habe mehrere Tage damit verbracht, überall nach der Lösung des Problems zu suchen, und bin jetzt froh, sie mit allen zu teilen.
Whtyger
1
Hier ist eine Tabelle, mit der Sie ein wenig Zeit beim Berechnen der Werte sparen
Tom Carchrae
1
@ RaffiKhatchadourian Es gibt ein Schema org.gnome.desktop.interfaceund einen Schlüssel scaling-factor. Der Standardwert ist 1 und kann nur eine Ganzzahl sein. Es ist für HiDPI-Displays vorgesehen. Es gibt einige Methoden, um einen nicht ganzzahligen Skalierungsfaktor zu erhalten xrandr. Überprüfen Sie diesen Link: wiki.archlinux.org/index.php/HiDPI (das ist Arch Knowledgebase, habe dies nicht in Ubuntu getestet).
Whtyger
28

Ab 14.04 haben wir eine Option, die ein bisschen hilft:

Skalierungsunterstützung

In der Abbildung unten sehen wir die Skalierung der Schriftarten und Titelleisten bei 0,75 :

Bildbeschreibung hier eingeben

In der Abbildung unten sehen wir die Skalierung der Schriftarten und Titelleisten bei 1,38 :

Bildbeschreibung hier eingeben

Luis Alvarado
quelle
3
Das hat bei mir in Ubuntu 14.04 geklappt ("Anzeigegeräte"). Ich musste den Standard-Font-Skalierungsfaktor auf 1.0 zurücksetzen (ich habe ihn vorher auf 2.0 gesetzt) ​​und die Größe des Launcher-Icons in "Alle Einstellungen" -> "Darstellung" neu skalieren "
rubo77
4
Ändert dies nicht nur die Menü- und Titelleisten, einschließlich des Launchers, und NICHT die gesamte DPI?
John Scott
1
@FuzzyToothpaste deshalb habe ich gesagt "hilft ein bisschen". Das heißt, wenn Sie den Maßstab verkleinern, wird die tatsächliche Größe der Fenster, abgesehen von der Änderung des Menüs, der Titelleiste und der Startsymbole, aufgrund der Änderung kleiner. Es ist also hilfreich, wenn Sie zum Beispiel eine Auflösung von 1280 x 720 (wie ein Laptop) haben und die Fenster in diese 720 einpassen möchten. Wenn Sie die Skala auf 0,8 oder weniger absenken, "fühlen" Sie sich, als würden Sie 1080 anstelle von 720 verwenden Natürlich ist bei Non-Hi-DPI wie bei den Apfelprodukten. Ich denke, der Effekt wäre bei dieser Art von Hardware größer.
Luis Alvarado
Hallo, Entschuldigung für meinen Kommentar; Ich möchte die Anzeigeeinstellungen wie auf Ihren Bildern über die xserver-Sitzung anzeigen: Gibt es eine Möglichkeit, dies zu tun?
9

Nach meiner Erfahrung in Ubuntu ändert sich die DPI-Einstellung der Schrift wesentlich mehr als nur die Art und Weise, wie Schriftarten gerendert werden. Dies gilt zum Beispiel auch für Symbole und die Größe von Menüs.

Es ist nur so, dass Xorg die Desktop-Umgebung darauf hinweist, wie hoch die DPI des physischen Displays ist. Und ja, Sie können dies in der Xorg.conf überschreiben, aber es hat den gleichen Effekt wie das Ändern der Einstellung in Ihrer DE. Zum Beispiel in Kubuntu / KDE:

Bildbeschreibung hier eingeben

gertvdijk
quelle
3
Gibt es eine Ubuntu (Unity) Version dieses Font Managers?
Luis Alvarado
@LuisAlvarado Nein, es scheint, dass dies nur GNOME2 und KDE anbieten ... Gnome-Tweak-Tool sollte dies können, aber meine 12.10 Unity VM stürzt ab, wenn die Schriftgröße geändert wird.
Gertvdijk
9

Hatte ein ähnliches Problem, auf einem 2880x1620 Bildschirm. Siehe http://ubuntuforums.org/showthread.php?t=2106549 Durch Putten gelöst

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

in mein ~ / .xprofile

Anstelle von "DP-0" geben Sie was auch immer ein

xrandr

sagt Ihnen als Gerätenamen.

Sie können natürlich die Skalierung anpassen, aber 0.5 sah auf meinem Bildschirm irgendwie nicht gut aus.

tkruse
quelle
3
Dies ist nur eine Problemumgehung, da Sie die tatsächliche Auflösung verlieren. Mit dieser Skalierung zeigt Ihr Monitor nur die Hälfte des Pixels an, anstatt es erneut in der skalierten Auflösung zu
rendern
1
Leider skaliert die Maus dabei nicht mit der gleichen Geschwindigkeit wie der Bildschirm :-( Beim Verkleinern wie Sie ist dies harmlos, da die Maus nur den leeren Bereich außerhalb des Bildschirms erkundet, aber beim Vergrößern, um eine komplexe Anwendung gut darzustellen Bei kleineren Bildschirmen reicht die Maus nicht bis zum Rand des Bildschirms, was dies in diesem Anwendungsfall unbrauchbar macht
Marsbard
7

Während das oben angegebene xserver-command=X -dpi ...und xrandr --dpi ...in früheren Versionen von Ubuntu sehr gut funktioniert haben, ignoriert Unity in Ubuntu 13.10 (was ich auch habe) diese Einstellungen und hält die dpi fest (soweit es den X-Server mit 96 dpi betrifft).

Und der xrandr --scale ...Befehl skaliert den Bildschirm zwar wie beschrieben, aber so, dass Text und Symbole ein wenig verschwommen sind. Aber es funktioniert.

Es scheint, dass in Ubuntu 13.10 die beste Option darin besteht, nicht zu versuchen, die dpi-Einstellung für den X-Server unity-tweak-toolzu ändern, sondern stattdessen die von Unity verwendeten Standardschriftarten und den Standardschriftarten-Skalierungsfaktor zu ändern. Sie können die unity-tweak-toolvom Ubuntu Software Center herunterladen . Wenn Sie das öffnenunity-tweak-toolGehen Sie zur Schaltfläche "Schriftarten" und versuchen Sie, den Skalierungsfaktor für Schriftarten auf 1,2 oder 1,25 (oder höher oder niedriger) zu ändern, damit die Schriftarten für Sie eine gute Größe haben. In diesem Bedienfeld können Sie auch die von Unity verwendeten Standardschriftarten ändern. Zugegeben, diese Lösung skaliert nicht alles auf dem Bildschirm, nur den Text, aber sie funktioniert auf meinem Laptop mit 166 dpi sehr gut. Es sieht so aus, als würden Webbrowser wie Firefox und Chromium diese Einstellung nicht bemerken. In Firefox und Chromium können Sie jedoch in den Anwendungseinstellungen eine Mindestschriftgröße festlegen, um die Schriftarten auf Webseiten auf die gleiche Weise zu skalieren.

CarlGWatts
quelle
Gute Forschung Carl.
Luis Alvarado
5

In Ubuntu 14.10 habe ich mit einem 15-Zoll-Laptop mit einer Auflösung von 1920 x 1080 (345 mm x 145 mm) und einer Dichte von 143 ppi / dpi die folgenden Schritte ausgeführt.

In /etc/X11/xorg.conf.d/xorg.conf habe ich Folgendes hinzugefügt:

# 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

Dies setzt die systemweiten dpi-Einstellungen auf die richtigen 143 dpi:

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

Ich habe auch alle oben genannten Optimierungen vorgenommen:

  • Systemeinstellungen (im Unity-Bedienfeld) -> Anzeigen -> Skala für Menü- und Titelleisten: 1.25
  • In Chrom beginne ich mit: Chrom-Browser --enable_hidpi = 1
  • In Firefox habe ich ungefähr folgendes eingestellt: config -> layout.css.devPixelsPerPx: 1.4
  • In atom.io habe ich dieses Problem kommentiert

Eigentlich muss ich jede Anwendung optimieren, die ich verwenden möchte. Auch in Browsern führt dieser Zoom zu unscharfen Bildern (Symbole, Schaltflächen auf Webseiten usw.), da auch gezoomt wird. Ich würde gerne ein Bild mit einem Klick oder einer Geste auf 1: 1 und 2: 1 einstellen.

Hoffe, dass es ab dem 9. Oktober 2014 einige nützliche Informationen gibt.

user12933
quelle
Ich denke, Sie können die Unschärfe beheben, indem Sie ein Vielfaches von 12 skalieren. Stellen Sie in diesem Fall die dpi auf 144 ein
Martin Konecny
+1 für das Einfügen des Datums in Ihren Beitrag. Ich mache das manchmal, aber du erinnerst mich daran, dass ich es öfter machen muss. (Hinweis für alle anderen).
WinEunuuchs2Unix
3

Installieren Sie Ubuntu-Tweak http://ubuntu-tweak.com/

Öffne es und gehe zu 'Tweaks> Fonts'. Dann ändere den 'Text Skalierungsfaktor'

Funktioniert super. Genießen.

Royer
quelle
3

Sie können alles mit xrandr skalieren, was wahrscheinlich genau das ist, wonach Sie suchen. Ich bin nicht sicher, wie es intern funktioniert, aber der Effekt scheint eine Änderung der Auflösung zu sein.

Um Ihre Auflösung zu skalieren, suchen Sie zuerst den Namen Ihres Displays mit 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)

In meinem Fall heißt mein Laptop-Display also LVDS.

Führen Sie dann Folgendes aus, um Ihre Auflösung zu skalieren:

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

Der Startbildschirm und das Bedienfeld werden möglicherweise für einen Moment ausgeblendet. Bewegen Sie den Mauszeiger jedoch über sie, und sie sollten wieder angezeigt werden. Möglicherweise müssen Sie auch die Größe aller geöffneten Fenster ändern, damit sie der kleineren Auflösung entsprechen.

Lars Nyström
quelle
Dieser verwischt die Ausgabe
Beernarrd
2

Als ich auf diese Frage stieß und nach Windows HiDPI-Skalierung in Ubuntu Gnome suchte, habe ich hier einige Vorschläge, damit ich sie finde, wenn ich sie wieder brauche. :)

Um auf dieses Dialogfeld zuzugreifen, öffnen Sie Gnome Tweaks und gehen Sie zum Windows-Bereich.

Gnome Tweaks - Windows

andersoyvind
quelle
0

Ich benutze Zorin8 (basierend auf Ubuntu13.x).

Sie können den Bildschirm mit der Maus skalieren (1024/800 = 1,28, 768/600 = 1,28):

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

Oder schwenken Sie nur den Bildschirm, sodass Sie mit der Maus Teile sehen müssen, die auf dem Bildschirm nicht sichtbar sind:

xrandr --output LVDS1 --mode 800x600 --panning 1024x768
DaanP
quelle
-2

Sie können den physischen ppi Ihres Monitors nicht ändern. Der tatsächliche ppi ist der tatsächliche Hardware-ppi, jedoch wird die meiste Software aus historischen Gründen einen ppi von 72 dpi annehmen, obwohl 96 dpi derzeit keine Seltenheit sind.

Sie können die Auflösung des Monitors ändern, wodurch sich die übersetzten ppi ändern, und Sie können beispielsweise die Schriftgröße ändern.

Wenn Sie MyUnity installieren, können Sie unter anderem die Schriftart DPI ändern.

Wenn Sie einen echten Monitor mit einer Auflösung von 1024 x 768 Pixel (und 72 dpi) hätten, wäre dies ein 17-Zoll-Monitor. Wenn Sie eine Schriftgröße von 72 einstellen, wäre ein Zeichen 1 Zoll hoch. Wenn Sie die Anzeige auf eine Auflösung von 800 x 600 einstellen, ist die Schrift größer, während bei einer Auflösung von 1600 x 1200 die Schrift kleiner erscheint.

Hersteller4
quelle
Was ist mit xorg-Optionen wie "UseEDIDDpi" und "DPI"? Ich habe gelesen, dass zum Beispiel der erste das Lesen der EDID von der Grafikkarte deaktivieren kann, falls sie falsch gelesen wird, und mit DPI können Sie DPI ändern. Das verwirrt mich.
Luis Alvarado