Come allineare i bordi inferiori di due monitor con xrandr?


20

Ho due uscite che vorrei utilizzare sul mio laptop:

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

Ho impostato i miei monitor in questo modo:

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

Va tutto bene, ma il mio laptop si trova notevolmente più in basso rispetto al mio monitor esterno e, con i bordi superiori degli schermi allineati, rende il passaggio da uno schermo all'altro piuttosto non intuitivo. C'è un modo in cui posso allineare i bordi inferiori invece? Pensavo di poter usare la --posbandiera per farlo, ma ho provato e non ho visto alcuna differenza (forse non so come usarlo correttamente).

Risposte:


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

Fondamentalmente, --pos specifica la posizione dell'angolo in alto a sinistra dello schermo nello spazio dello schermo virtuale. Lo schermo virtuale è uno schermo che copre tutti i tuoi schermi fisici. Questo è un modo molto generico per specificare le posizioni dello schermo.

Vuoi questa configurazione:

(virtual screen coordinates)
     0       1366                 1366+1920

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

E hai bisogno delle coordinate di A e B da usare --posnell'opzione. xè facilmente risolto come 1080 - 768 = 312, quindi A è a (1366,0) e B è a (0,312).

Pertanto, le opzioni --pos appropriate sono --pos 1366x0 per HDMI e --pos 0,312 per LVDS. Non è necessario specificare le dimensioni dello schermo virtuale (più), viene ridimensionato automaticamente.

Si noti che --pospuò essere abusato, ad esempio per creare un buco tra i due schermi o creare sovrapposizioni. La maggior parte (tutti?) WM non sarà in grado di gestirlo.

EDIT: oh, vuoi il contrario, risolto questo.


Heh, l'ho capito subito prima di pubblicare. Saresti in grado di spiegare come funziona la bandiera --pos?
elynnaie,

Grazie, questo ha molto senso! Penso che tu voglia sostituire 1600 con 1080 nel tuo esempio, però.
Elynnaie,

@denaje: risolto.
BatchyX,

2
Non c'è modo di farlo all'interno di xrandr senza usare i valori magici? Mi piacerebbe avere uno script che funzioni indipendentemente dalla risoluzione dello schermo che collego. Altrimenti credo di poter estrarre i valori dall'output di xrandr, ma suona un po 'noioso ...
Khaur

5

Oltre all'eccellente risposta di @ BatchyX, un'opzione alternativa - e IMO più conveniente - potrebbe essere l'utilizzo di ARandR (che sta per "Another XRandR GUI"):

ARandR è progettato per fornire un front-end visivo semplice per XRandR. Le posizioni relative del monitor vengono visualizzate graficamente e possono essere modificate in modo trascinamento.

Potrebbe essere necessario installarlo prima, ma è disponibile nei repository della maggior parte delle distribuzioni . Ecco come mi cerca su LXDE, per un'installazione con un monitor esterno collegato tramite VGA, sopra, e il monitor nativo (dimensione netbook) sotto di esso:

Schermata di ARandR


3

Se stai cercando una soluzione basata su GUI drag-and-drop, posso consigliare ARandR .

Consente di configurare le impostazioni XRandR più importanti, ad es. Posizione e risoluzione dello schermo, che possono quindi essere salvate sotto forma di uno script di shell che chiama xrandrcon i parametri corrispondenti.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.