Ist es möglich, unterschiedliche DPI-Konfigurationen für zwei verschiedene Bildschirme zu haben?

123

Ich verwende Ubuntu 12.04.3 mit NVidia-Treibern (319) für meine Quadro K2100M-Grafikkarte, und wenn ich meinen 3200x1800-Laptop-Hauptbildschirm in den Modus 1920x1080 (mit nvidia-settings) versetze , wird die Anzeige unscharf ...

Ich benutze zwei Bildschirme:

  • Mein Hauptbildschirm ist ein LCD mit einer maximalen Auflösung von 1920x1200.
  • Mein Laptop-Bildschirm (Originalauflösung 3200x1800) sitzt rechts davon.

Das Hauptproblem ist, dass unter Ubuntu die Schriftart auf meinem Laptop-Bildschirm viel zu klein ist. Aus diesem Grund wollte ich die Auflösung meines Laptops auf 1920x1080 ändern.

Als ich Galgaleshs Antwort las , versuchte ich meine DPI zu berechnen und hier ist die DPI-Konfiguration, die ich haben sollte:

  • 94x94 für meinen Haupt-LCD-Bildschirm 1920x1200
  • 235x236 für meinen 3200x1800 Laptop-Bildschirm

Gibt es eine Möglichkeit, Dual-DPI-Auflösungen mit einem erweiterten Desktop zu erzielen?

Anthony O.
quelle
3
Wenn Sie einen LCD-Bildschirm mit einer nicht nativen Auflösung betreiben, wird dies unscharf. Das liegt daran, dass die Pixel fest angeordnet sind und das Signal nicht dazu passt. Was genau erwarten Sie? Deaktivieren Sie die Skalierung möglicherweise? Dann wird es jedoch nur in der Mitte des Bildschirms und nicht im Vollbildmodus angezeigt. Für eine optimale Anzeige behalten Sie immer die native Bildschirmauflösung bei. Ich denke, das hat nichts mit Ubuntu zu tun.
Gertvdijk
2
@gertvdijk: Hast du also eine Möglichkeit, beide Monitore auf ihrer nativen Bildschirmauflösung zu halten? Ich denke, das fragt Anthony.
Beldaz
2
@beldaz Meine Antwort war auf Revision 1 der Frage . Im Zusammenhang mit der Einrichtung auf zwei Bildschirmen wurde zu diesem Zeitpunkt nichts erwähnt. Da die Frage erheblich geändert wurde, werden die Augenbrauen für alle nach diesem Datum geänderten Posts hochgezogen. Es macht im Grunde genommen alles, was dazu beigetragen hat, ungültig und mindert meine Motivation, zu helfen. Benutzer sollten stattdessen meiner Meinung nach eine neue Frage stellen.
Gertvdijk
@gertvdijk Sorry, macht jetzt Sinn.
Beldaz
Ich frage mich, ob die Möglichkeit, Wayland im neuesten Ubuntu zu verwenden, die Lösung erleichtert.
Mkataja

Antworten:

120

Es scheint, dass die Leute immer noch Schwierigkeiten haben, mit mehreren Monitoren und HiDPI-Displays zu arbeiten. Eine gute Problemumgehung finden Sie im arch wiki https://wiki.archlinux.org/index.php/HiDPI#Multiple_displays . Also habe ich:

  • Laptop Asus ln303ux: 3200x1800,
  • externer Monitor: 1920x1200

Jetzt benutze ich Ubuntu 14.10 & GNOME Shell 3.12.2, die ziemlich brauchbare HiDPI-Unterstützung hat. Ich verwende also nur die Standardunterstützung von HiDPI - der Skalierungsfaktor ist 2 (kann über die GUI eingerichtet werden). Das bedeutet, dass ich auf einem externen Monitor alles zweimal größer bekomme als akzeptabel. Also benutze ich xrandr; Aber anstatt den Laptop-Bildschirm zu verkleinern, skaliere ich den externen Bildschirm:

xrandr --output HDMI1 --scale 2x2 --mode 1920x1200 --fb 3840x4200 --pos 0x0
xrandr --output eDP1 --scale 1x1 --pos 320x2400

Also eins nach dem anderen:

  1. --output HDMI1In meinem Fall ist der externe Bildschirm, eDP1ist der Laptop-Bildschirm.
  2. --scale 2x2 - Verkleinere alles auf dem externen Bildschirm zweimal
  3. --mode XxY - explizite Einstellung der Bildschirmauflösung (nicht erforderlich, wenn bereits eingestellt)
  4. --fb XxY- Größe eines virtuellen Bildschirms festlegen (Framebuffer) ( wichtig, ohne diesen können Sie nur einen vierten Teil des Bildschirms verwenden). In meinem Fall war ein Bildschirm über dem anderen, also habe ich die effektiven Höhen 2400 + 1800 = 4200 addiert. Beachten Sie auch, dass die maximale Framebuffer-Größe in xorg.conf angegeben werden kann - dann können Sie sie nicht überschreiten (sie steht in der ersten xrandr -qAusgabezeile).
  5. --pos XxY- In meinem Fall habe ich die absolute Positionierung der Bildschirme festgelegt, sodass sich mein Laptop-Bildschirm direkt am unteren Rand des externen Bildschirms befindet. Der Wert Y ist hier das Doppelte der Höhe des externen Monitors.

Und das ist es! Alles ist so frisch wie es nur sein könnte.

Zu Ihrer Information: Um die Namen der Bildschirme und die verfügbaren Auflösungen zu erhalten, kann man ausführen xrandr --current. Weitere Informationen zum Einstellen der Auflösung finden Sie hier: https://wiki.ubuntu.com/X/Config/Resolution .

UPDATE - OPTION 2: Eine weitere interessante Problemumgehung für Anwendungen, die GTK3 unterstützen. Wenn ich normalerweise nur eine Anwendung auf dem großen Bildschirm verwende (z. B. eine IDE wie Leksah), verkleinere ich den Bildschirm nicht, sondern starte die Anwendung skaliert auf ihre ursprüngliche Größe

env GDK_SCALE=0.5 GDK_DPI_SCALE=0.5 CLUTTER_SCALE=0.5 appname
artem
quelle
7
habe ein error of failed request: BadValue (integer parameter out of range for operation):-(
Juh_
4
Die --fbOption scheint nicht mehr als ein Viertel des 2x2Bildschirms zu aktivieren (der Mauszeiger kann nicht über den oberen linken Quadranten
bewegt werden
2
Das Skalieren funktioniert, aber verlieren Sie nicht den HiDPI? Alles wirkt skaliert und verschwommen.
Andy
8
Für ein Setup nebeneinander mit einem externen 1920 x 1080-Monitor links neben meinem 3200 x 1800-HiDPI-Laptop:xrandr --output eDP1 --scale 1x1 --pos 3840x0 ; xrandr --output HDMI1 --scale 2x2 --mode 1920x1080 --fb 7680x2160 --pos 0x0
Daniel Bower,
2
Der Parameter --fb ist 2 * externer Monitor + Laptop-Bildschirm
Brian C.
10

Warum ist es verschwommen?

Ihr Bildschirm zeigt immer 3200x1800 Pixel an. Wenn Sie die Bildschirmauflösung auf Ihrem Computer verringern, bedeutet dies lediglich, dass Ihr Bildschirm das Bild an Ihren Bildschirm anpassen muss. Abhängig vom Verhältnis zwischen Ihrer nativen Auflösung und der aktuellen Auflösung führt diese Skalierung zu einem verschwommenen Bild.

Weitere Informationen zur Skalierung und nativen Auflösung finden Sie hier: https://en.wikipedia.org/wiki/Native_resolution

Wie kann ich den Text vergrößern?

Wenn der Text zu klein ist, haben Sie zwei Möglichkeiten:

1. Ändere Ubuntus Schriftgröße

Wie ändere ich Schriftarten und passe ihre Größe an?

2. DPI ändern (vergrößert die gesamte Oberfläche, nicht nur den Text)

Wie finde und ändere ich die DPI des Bildschirms? (Antwort von @whtyger)

Galgalesh
quelle
1
Nur als Hinweis zur Vergrößerung der Schriftgröße. Erhöhen Sie lieber die DPI, damit die gesamte Benutzeroberfläche skaliert. Dies sollte automatisch richtig erkannt werden (Lesen der EDID von Ihrem Display). Wenn dies jedoch fehlschlägt: Wie finde und ändere
Gertvdijk
23
Eigentlich ist das keine Antwort auf meine Frage. Ich verwende zwei verschiedene Bildschirme mit unterschiedlichen Auflösungen . Ich habe die Berechnung durchgeführt: Mein linker Haupt-LCD-Bildschirm sollte eine Auflösung von 94 x 94 DPI haben, während mein rechter Laptop-Bildschirm eine Auflösung von 235 x 235 DPI haben sollte ... Und ich finde keine Möglichkeit, zwei verschiedene DPI-Auflösungen einzustellen, außer wenn ich nvidia so konfiguriere, dass es 2 ausführt X getrennt, und dann kann ich nicht ein Fenster von links nach rechts passieren ... Windows ist weit besser, um dieses Problem zu behandeln :(
Anthony O.
9
-1 für das vollständige Ignorieren des Punktes der Frage
Martin Konecny
8
@AnthonyO. Bitte ändern Sie Ihre Frage nicht wesentlich, nachdem eine Antwort gepostet wurde, die Ihnen nicht gefällt. Zu dem Zeitpunkt, als diese Antwort gepostet wurde, haben Sie nichts im Zusammenhang mit einem Dual-Screen-Setup erwähnt (siehe Revision 1 ). Wenn Sie Ihre Frage ändern, wird alles, was bereits gepostet wurde, ungültig und Sie sollten dies nicht tun. Setzen Sie stattdessen die bearbeiteten Fragen zurück und posten Sie stattdessen eine neue Frage.
Gertvdijk
5
@MartinKonecny ​​Der ursprüngliche Fragesteller hat seine Frage im Wesentlichen bearbeitet. Diese Antwort beantwortet seine ursprüngliche Frage. Überprüfen Sie die Überarbeitungen.
Jamie Kitson
7

Ich habe artmems Lösung verwendet, bin aber auf das von EoghanM erwähnte Mausproblem gestoßen. Die Problemumgehung, die ich in dem alten Fehlerbericht gefunden habe, auf den er verlinkt hat, bezog sich auf --panning.

Ich fotografiere für: - DP1-2 3840x2160 in native DIP. - eDP1 1366 x 768, so skaliert, dass es rechts von DP1-2 angemessen aussieht.

Ich bekomme das, indem ich einen Frame Buffer habe, der wie DP1-2 + (2x eDP1) ist, dann skaliere ich alles, was zu eDP1 geht, um 1/2.

Dies sollte einfach sein, aber xrandr ist etwas knifflig.

Hier wird --scale verwendet, um alles, was nach eDP1 geht, um die Hälfte zu reduzieren. - Das Schwenken ist dasselbe wie bei eDP1 im ursprünglichen Bildspeicher mit der Position (+ 3840 + 0) rechts neben DP1-2. + 0 + 2160 wäre darunter.

xrandr -d :0 --fb 6572x3696 --output DP1-2 --mode 3840x2160 --scale 1x1 --rate 60 --pos 0x0 --primary

# sometimes panning get applied incorrectly when switching from some other mode, running it twice is a work around
xrandr -d :0 --output eDP1 --off
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0
xrandr -d :0 --fb 6572x3696 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+3840+0

Ich habe auch Xft.dpi auf 185 gesetzt

$ cat ~/.Xresources
Xft.dpi: 185

Wenn ich vom externen Monitor ausstecke, führe ich Folgendes aus:

xrandr -d :0 --output DP1-2 --off
xrandr -d :0 --fb 2732x1536 --output eDP1  --mode 1366x768  --scale 2x2 --panning 2732x1536+0+0 --pos 0x0 --primary

Das sieht nicht gut aus, aber ich bin nicht viel von meinem Schreibtisch entfernt. Sie können dies umgehen, indem Sie Xft.dpi ändern und alle Ihre Desktop-Programme neu starten. Ich kenne keine Möglichkeit, Xft.dpi zu ändern und Clients dazu zu bringen, es zu verwenden, ohne sie neu zu starten.

Brian C.
quelle
Schwenken war der letzte Teil des Puzzles - es löste den Cursor, der auf einem Viertel des Bildschirmproblems feststeckte. Danke @Brian!
Rtindru
2
"zweimal laufen" ???? heiliges Pixel, es funktioniert (ich habe das Schwenken bereits angewendet, aber es wird nur korrekt angewendet, wenn ich denselben Befehl zweimal ausführe).
Riccardo Galli
Ja, mir ist aufgefallen, dass es jedes Mal funktioniert, wenn ich es gestartet habe, also dachte ich, ich würde es zweimal versuchen, und nun, hier sind wir.
Brian C.
In Ordnung, so funktioniert das nicht mit dem Kernel 4.5.2. Ich habe nur diesen Kernel installiert, um ein Docker-Problem in 4.5.1 zu beheben, und jetzt zeigt das obige Skript einen schwarzen Bildschirm an. Um dies in 4.5.2 zu beheben, führe ich die eDP1-Befehle zuerst ohne --off und dann ohne DP1-2 aus.
Brian C.
1
Endlich mit Panning gearbeitet! Ich habe immer noch eine fehlerhafte Maus und einen fehlerhaften Bildschirm (seit ich xrandr benutze). Irgendeine Idee?
hsandt
4

Ich konnte dies (mit Problemen) mithilfe der Details in der folgenden Github-Diskussion lösen: https://github.com/linuxmint/Cinnamon/issues/3606

Externer Monitor QHD (2560X1440), interner / Laptop-Monitor 3200x1800

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

ODER

Externer Monitor FHD (1920 x 1080), interner Monitor / Laptop-Monitor 3200 x 1800

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

Diese funktionieren, aber der hochauflösende Monitor (Laptop) kann beim Verschieben von Fenstern, Ändern der Bildschirmgröße oder Scrollen in einem Browser erheblich beschädigt werden. Dies fühlt sich an wie eine Software-Rending-Lösung (die all diese Probleme mit Zerreißen und langsamen Aktualisierungen hat).

Linux / Gnome 2017 muss sich mit der gemischten Multi-Monitor-Skalierungslösung befassen. Sowohl Windows 10 als auch OS X haben dieses Problem behoben, ohne auf Band-Aid-Fixes für die Befehlszeile zurückgreifen zu müssen, die teilweise funktionieren (das Problem des Aufreißens ist für Spiele nicht akzeptabel).

Jeets
quelle
1
Ist dies eine neue Antwort oder versuchen Sie einen Fehler zu melden?
User68186
Es ist eine Ausarbeitung einer bestehenden Antwort mit mehr Optionen, die man nutzen kann. Die Antwort von @artem oben erklärt, wie diese Einstellungen funktionieren. Ich habe lediglich versucht, zwei Optionen bereitzustellen, die für Benutzer mit einem externen QHD- oder FHD-Monitor und einem primären 4K-Monitor / Laptop-Monitor verwendet werden können. Der Fehler ist in der Träne, die Sie mit dieser Lösung sehen. Das ist mit diesem Ansatz verbunden.
Jeets
2
Mit der Verbreitung von 4k- und Multi-Resolution-Setups stimme ich dem letzten Absatz zu, für den eine Auflösung erforderlich ist. War vorher nicht so schlimm, aber jetzt ruiniert es einfach mein Setup auf einem Monitor, jetzt habe ich einen 4k. Hoffentlich werden sie Ubuntu 18 LTS haben dies behoben.
Neuronet
3
Es ist 2018 ... immer noch das gleiche sh1t :)
Stefanos Kalantzis
Wayland arbeitet großartig dafür. Aber das ist nur für diesen Zweck ... Habe auch gute Erfahrungen mit wayland + kde gemacht, besser als mit gnome + wayland. Ich kehre zu X zurück, da einige Programme, die nur auf X laufen, nicht unterstützt werden und Stabilitätsprobleme bestehen. 2018 ...
Victor
4

Diese Antworten sind alle großartig und haben mir früher geholfen, aber vor kurzem

sudo apt-get upgrade 

hat meine randr-config gelöscht! Beim Versuch, meine Einstellungen wiederherzustellen, stellte ich fest, dass ich die Maus nicht mehr über den oberen 1/4-Quadranten des zweiten Bildschirms hinausbewegen konnte, unabhängig von der --fb-Eingabe. Aus https://wiki.archlinux.org/index.php/HiDPI#Side_display habe ich schließlich herausgefunden, dass das Hinzufügen von Panning den Trick macht. Außerdem ist die Verwendung von "--right-of" oder "--left-of" einfacher als "--pos".

"Wenn Ihr HiDPI-Monitor (Laptop) AxB-Pixel hat und Ihr normaler Monitor (extern) CxD ist und Sie mit [ExF] skalieren, lautet die Befehlszeile für das Recht auf:"

xrandr --output eDP-1 --auto --output HDMI-1 --auto --panning [C*E]x[D*F]+[A]+0 --scale [E]x[F] --right-of eDP-1
ONECore
quelle
Das ist interessant, und es scheint definitiv nützlich für jemanden zu sein, obwohl ich nicht genau sicher bin, ob dies als Antwort auf diese Frage gilt. Vielleicht solltest du öffnen und dann deine eigene Frage beantworten? Nicht wirklich sicher.
Hee Jin
1
@Emily: Ich denke diese Antwort gehört hierher. Ich habe heute die Antwort von artem verwendet und hatte das genaue Problem, das ONECore angegeben hat (nur der obere linke Quadrant des Bildschirms konnte mit der Maus verwendet werden). Zum Glück habe ich diese Antwort gesehen und das Schwenken hat sofort funktioniert.
BrainCore
Ja, tut mir leid, ich wollte, dass es eine Antwort auf @ artems Antwort ist, aber Stackexchange ist super toll und lässt mich erst dort oben antworten, wenn ich 50 Brownie-Punkte bekomme.
ONECore
Beachten Sie auch, dass dies nicht dauerhaft zu sein scheint. Wenn Sie es also nicht zu xorg.conf hinzufügen, wird es bei jedem Neustart gelöscht. Aber wenn Sie es dort hinzufügen, erzwingt es diese Einstellung, egal was passiert (manchmal schließe ich den Monitor nicht an). Daher finde ich es super einfach, eine Shell zu erstellen und auszuführen, wann immer ich möchte. Fügen Sie einfach den obigen Code zu einer Textdatei mit der Endung .sh hinzu (z. B. resolution.sh) und machen Sie sie dann mit "chmod 0700 resolution.sh" im Terminal ausführbar.
ONECore
Vielen Dank, dass Sie auch Ihre Erfahrungen mit @BrainCore geteilt haben!
Hee Jin
1

Ich habe einen veralteten 1024x768-Monitor, der an ein (weniger veraltetes) Notebook angeschlossen ist.
Die Fenster wurden in ganz unterschiedlichen Größen gerendert, viel größer auf dem externen Monitor (der einen älteren, größeren Punktabstand hat).
Ich habe einen Befehl zum Skalieren des Monitors gefunden:

xrandr --output VGA-1 --scale 1.5x1.5

VGA-1 ist der interne Name des Monitors, der durch Ausführen des folgenden Befehls ermittelt wird:

xrandr --current | grep connected

Dies hat zur Folge, dass der Inhalt des alten Monitors jetzt fast so groß ist wie das Notebook.

Merkwürdigerweise funktioniert die Skalierung mit 1,5-facher Vergrößerung, nicht jedoch mit 1,45-facher Vergrößerung. Das Display (in meinem Fall) wird schwarz.

Als ich den Skalenkommentar zum ersten Mal ausfüllte, war das Ergebnis erschreckend, da sich der Inhalt beider Bildschirme überschnitt. Zum Beispiel tauchte der Cursor zweimal auf.

Ich habe ein Programm gestartet:

arandr &

um die relativen Bildschirmpositionen festzulegen.
Dies funktioniert wie die Einstellung Einstellungen> Geräte> Anzeigen .

Ich habe es installiert mit:

sudo apt-get install arandr

Vielen Dank an LuisAlvarado und andere für das Teilen Ihres Wissens!

Juan Lanus
quelle
Das funktioniert bei mir vorübergehend, bleibt aber nicht hängen, wenn ich neu starte. Ich denke, ich muss ein Skript finden, um das zu tun, was arandrhier gemacht wird, und dann das Ganze in meinen bashrc oder so. Vielen Dank!
Max von Hippel
arandr kann eine Konfigurationsdatei exportieren. Ich habe die Datei auf meinem Desktop gespeichert und sie bei jedem Neustart in arandr eingespeist. Habe kein Skript entwickelt und jetzt habe ich einen Monitor und benutze arandr nicht mehr.
Juan Lanus
0

Erster Lauf $xrandr, um alle Ausgaben anzuzeigen

Screen 0: minimum 320 x 200, current 7680 x 2160, maximum 8192 x 8192
eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   3840x2160     60.00*+  59.98    59.97  
   3200x1800     59.96    59.94  
   2880x1620     59.96    59.97   
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 connected 3840x2160+3840+0 (normal left inverted right x axis y axis) 521mm x 294mm
   1920x1080     60.00*+  50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02

Wie Sie in diesem Fall sehen können, ist der zweite Monitor mit verbunden. DP-3 Dann können Sie die Anzeige weiterverkaufen: $xrandr --output DP-3 --auto --scale 2x2

Abdelhak
quelle