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 dots
gemeldet 96x96 dots
, xrdb -query | grep dpi
gemeldet Xft.dpi: 96
, grep DPI /var/log/Xorg.0.log
einige 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 connected
da 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-edid
Paket und führen Sie den Befehl sudo get-edid | parse-edid | grep DisplaySize
im 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.conf
einen 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.conf
manuell 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.log
wird 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 90
in das Feld ein. Speichern Sie die Änderungen und melden Sie sich erneut an. Nun xdpyinfo | grep dots
wird berichtet 90x90 dots
.
Wenn xdpyinfo
immer 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.log
und xdpyinfo
Werte 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 dconf
Sie ihn, wenn Sie es vorziehen):
gsettings set org.gnome.desktop.interface text-scaling-factor 0.9375
Änderungen werden sofort übernommen. xrdb -query | grep dpi
wird 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.