Wie richte ich die Unterkanten zweier Monitore mit xrandr aus?

20

Ich habe zwei Ausgänge, die ich auf meinem Laptop verwenden möchte:

  • LVDS1 - 1366 × 768
  • HDMI1 - 1920 × 1080

Ich stelle meine Monitore so ein:

xrandr --output LVDS1 --auto --output HDMI1 --auto --right-of LVDS1

Das ist alles schön und gut, aber mein Laptop ist erheblich niedriger als mein externer Monitor, und da die oberen Ränder der Bildschirme ausgerichtet sind, ist der Sprung von einem Bildschirm zum anderen eher uninteressant. Kann ich stattdessen die Unterkanten ausrichten? Ich dachte, ich könnte die --posFlagge verwenden, aber ich habe versucht, keinen Unterschied zu erkennen (vielleicht weiß ich nicht, wie ich sie richtig verwenden soll).

elynnaie
quelle

Antworten:

36
 xrandr --output LVDS1 --auto --pos 0x312 --output HDMI1 --auto --pos 1366x0

Grundsätzlich gibt --pos die Position der oberen linken Ecke des Bildschirms im virtuellen Bildschirmbereich an. Der virtuelle Bildschirm ist ein Bildschirm, der sich über Ihre gesamten physischen Bildschirme erstreckt. Dies ist eine sehr allgemeine Methode zum Festlegen von Bildschirmpositionen.

Sie möchten diese Konfiguration:

(virtual screen coordinates)
     0       1366                 1366+1920

   0           A-----------------------
               |                      |
               |                      |
               |                      |
  x? B---------|         HDMI         |
     |         |                      |
     |  LVDS   |       1920x1080      |
     |1366x768 |                      |
1080 ----------------------------------

Und Sie müssen die Koordinaten von A und B in der --posOption verwenden. xwird leicht gelöst als 1080 - 768 = 312, also liegt A bei (1366,0) und B bei (0,312).

Daher sind die entsprechenden --pos-Optionen --pos 1366x0 für HDMI und --pos 0,312 für LVDS. Die Größe des virtuellen Bildschirms muss nicht mehr angegeben werden, sondern wird automatisch angepasst.

Beachten Sie, dass --posdies missbraucht werden kann, um beispielsweise ein Loch zwischen Ihren beiden Bildschirmen oder eine Überlappung zu erzeugen. Die meisten (alle?) WM werden das nicht schaffen.

EDIT: oh, du willst umgekehrt, das behoben.

BatchyX
quelle
Heh, habe das gleich herausgefunden, bevor du gepostet hast. Könnten Sie erklären, wie das Flag --pos funktioniert?
Elynnaie
Danke, das macht sehr viel Sinn! Ich denke, Sie möchten in Ihrem Beispiel 1600 durch 1080 ersetzen.
Elynnaie
@denaje: Behoben.
BatchyX
2
Gibt es keine Möglichkeit, dies in xrandr zu tun, ohne magische Werte zu verwenden? Ich hätte gerne ein Skript, das unabhängig von der Auflösung des von mir eingesteckten Bildschirms funktioniert. Wenn nicht, könnte ich die Werte aus der Ausgabe von xrandr extrahieren, aber das klingt ein wenig langweilig ...
Khaur
5

Zusätzlich zu der hervorragenden Antwort von @ BatchyX könnte eine Alternative - und bequemere IMO-Option - die Verwendung von ARandR (was für "Another XRandR GUI" steht) sein:

ARandR wurde entwickelt, um ein einfaches visuelles Frontend für XRandR bereitzustellen. Relative Monitorpositionen werden grafisch angezeigt und können per Drag & Drop geändert werden.

Möglicherweise müssen Sie es zuerst installieren, es ist jedoch in den meisten Distributionsspeichern verfügbar . So sieht es bei LXDE für mich aus, bei einem Setup mit einem externen Monitor, der über VGA angeschlossen ist, und dem nativen Monitor (Netbook-Größe) darunter:

ARandR Screenshot

waldyrisch
quelle
3

Wenn Sie eine GUI-basierte Drag & Drop-Lösung suchen, kann ich Ihnen ARandR empfehlen .

Hier können Sie die wichtigsten XRandR-Einstellungen vornehmen, z. B. Bildschirmposition und Auflösung, die dann in Form eines Shell-Skripts gespeichert werden können, das xrandrmit den entsprechenden Parametern aufgerufen wird.

Florian Franzen
quelle