Usa xrandr per dividere la visualizzazione in due schermate virtuali

Aug 22 2020

Discussioni / siti Web che ho cercato ma non mi hanno aiutato completamente

  • Dividere un display X fisico in due display virtuali?
  • https://chipsenkbeil.com/notes/linux-virtual-monitors-with-xrandr/
  • https://askubuntu.com/questions/150066/split-monitor-in-two/998435#998435

Contesto

Ho uno schermo con una risoluzione dello schermo di 5120x1440px. Voglio dividere questo monitor in due schermi virtuali, in modo da poter lavorare con questo monitor come se fosse una configurazione a doppio monitor. Voglio anche tornare rapidamente a utilizzare solo uno schermo, quindi volevo fare tutto questo in uno script bash, ma al momento non importa.

L'output di xrandrè il seguente

Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 32767 x 32767
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-2 disconnected (normal left inverted right x axis y axis)
DP-3 disconnected (normal left inverted right x axis y axis)
DP-4 connected primary 5120x1440+0+0 (normal left inverted right x axis y axis) 1mm x 1mm
   3840x1080    119.97 +  99.96    59.97  
   5120x1440    119.97*  100.00    59.98  
   2560x1440     59.95  
   2560x1080    119.88   100.00    60.00    59.94  
   1920x1080    119.88   100.00    60.00    59.94  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   640x480       75.00    72.81    59.94  
DP-5 disconnected (normal left inverted right x axis y axis)
USB-C-0 disconnected (normal left inverted right x axis y axis)

Implementazione

Seguendo i tutorial e i post che ho trovato, questo è quello che avrei bisogno di fare

xrandr --setmonitor VIRTUAL-LEFT 2560/0x1440/1+0+0 DP-4
xrandr --setmonitor VIRTUAL-RIGHT 2560/1x1440/1+2560+0 none 

Per spiegare i numeri

  • VIRTUALE-SINISTRA
    • 2560 perché è la metà di 5120
    • 0 perché negli esempi, l'asse (1 mm nel mio caso) è diviso per 2 e il display di sinistra ottiene il numero arrotondato per difetto
    • 1440 perché è l'altezza del mio schermo
    • 1 perché negli esempi, l'altro asse (anche 1mm nel mio caso) viene utilizzato così com'è
    • 0+0 perché è lo stesso dell'output xrandr
    • DP-4 perché questo è il primario connesso
  • VIRTUALE-Destra
    • 2560 perché vedi sopra
    • 1 perché vedi sopra anche se questo prende il numero arrotondato per eccesso
    • 1440 perché vedi sopra
    • 1 perché vedi sopra
    • 2560+0perché quello sarà l'offset da sinistra e viene utilizzato negli esempi
    • none perché è così che è fatto in OGNI esempio

Poiché non ricevo modifiche, faccio come suggerito negli esempi

xrandr --fb 5120x1441
xrandr --fb 5120x1440

Risultato atteso

Ora mi aspetto di avere due schermi virtuali con un desktop pronto all'uso.

Risultato attuale

Gli schermi sono tagliati a metà, lo schermo di sinistra ha il mio desktop attuale, ma lo schermo di destra è completamente nero, tuttavia, posso spostare il mouse sopra, ma non posso configurarlo, non posso vederlo nei display, non posso farlo qualsiasi cosa con esso


Qual è la soluzione qui?

Risposte

1 Krackout Aug 25 2020 at 16:09

Tenendo conto dei commenti, suggerirei DWM (un gestore di finestre dinamico / affiancato) con una falsa patch a schermo intero . Questa patch consente alle app di "schermo intero" nello spazio attualmente assegnato loro, una finestra o metà schermo o qualsiasi altra cosa. Sarebbe l'ideale per il tuo scenario, metà schermo per i giochi (finto pieno) e il resto per altre app. Sebbene l'utilizzo di un WM invece di DE (ambiente desktop come xfce, gnome, ecc.) È una configurazione più avanzata.

Tieni presente che in Linux puoi avviare due server X contemporaneamente con diversi gestori / ambienti. Uno può essere xfce, la tua configurazione attuale, l'altro DWM. Puoi passare da uno all'altro usando ctrl+ alt+ F1 - F12per passare da uno all'altro.

Per quanto riguarda la funzione PBP del tuo monitor, puoi utilizzare due uscite dallo stesso PC: suppongo che tu abbia più di un'uscita sul tuo controller grafico, ad esempio una DisplayPort e HDMI o VGA. Quindi puoi collegare sia DisplayPort che HDMI e agire come se il tuo PC fosse collegato a due schermi. Quindi se il tuo PC ha due uscite (molto probabilmente) hai solo bisogno di un cavo separato, del tipo appropriato ovviamente.

Chris Sep 28 2020 at 04:58

Quindi sto cercando di ottenere risultati simili su Ubuntu 20.04, stesso display (Samsung CRG9), grafica integrata di Intel, qualunque cosa possa essere su un Core i7-9700. La scheda madre ha uscite DP1.4, HDMI2.0 e DVI. Sto utilizzando due cavi: DP e HDMI e l'installazione funziona quasi, tranne quanto segue:

  1. le impostazioni della luce notturna influiscono solo sulla condivisione DP dello schermo, la condivisione HDMI non sembra preoccuparsi
  2. quando lo schermo è spento, sia manualmente che per il suo timeout di inattività, si riaccenderà con la parte HDMI che mostra una ridicola risoluzione 3840x1080, che ovviamente non si adatta a 2560x1440 pixel, quindi l'immagine è un disastro. E le parti DP e HDMI dello schermo cambiano posizione. Questo torna immediatamente alla normalità dopo aver digitato "xrandr" o aperto l'applet delle impostazioni dello schermo. Delle idee su come risolvere i problemi di cui sopra?