Configurazione doppio monitor con xrandr: estensione senza / con scorrimento disabilitato


11

Questa non è una domanda, ma piuttosto una soluzione per un problema con Ubuntu, ho riscontrato.

Configurazione:
dato uno schermo per laptop (ad es. "LVDS-1-0") e una seconda schermata (ad es. "DP-1") con la seconda schermata come schermata principale e il monitor a destra dello schermo principale ( o a sinistra) come estensione (vedi foto). La prima schermata è stata sempre estesa praticamente nonostante le esplicite istruzioni xrandr di non farlo. Entrando in questo, sono stato in grado di evitare il fastidioso scorrimento quando spostavo il cursore del mouse verso destra sul monitor principale.

xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0

Successivamente, passa da un monitor all'altro senza scorrere lo schermo.

Aggiornare

Dopo il passaggio alla scheda grafica discreta (NVIDIA è discreta e Intel è integrato per il mio laptop), è necessario modificare l'ordine delle uscite:

output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')

xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary

Per maggiore praticità, ho reso queste variabili più flessibili poiché il passaggio tra schede grafiche discrete e integrate modifica la designazione dei dispositivi di output (ad esempio, LVDS-1-0 vs LVDS-1).

Layout del monitor

Risposte:


6

Ho incontrato lo stesso bug. La tua soluzione non ha funzionato per me. Il tuo trucco è semplicemente un grilletto che impedisce al bug di cadere. Ho scavato un po 'e ho trovato un bravo ragazzo con una soluzione che potrebbe aiutare anche altri qui.

Il problema principale è che il bug che abbiamo riscontrato qui fa sì che il monitor che sta scorrendo nell'altro abbia uno schermo virtuale con la dimensione di entrambi gli schermi sommati. Quindi la soluzione potrebbe sembrare disabilitare quello spazio virtuale aggiuntivo su quello schermo per adattarsi alla risoluzione dei monitor. Questo di solito viene fatto con l' --panning AxBargomento: lo usiamo per impostare la dimensione dello spazio virtuale.

Ecco come potresti farlo:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 --panning 1920x1080 --pos 1920x0 \
  --output HDMI-0   --mode 1920x1080 --panning 1920x1080 --pos 0x0    --primary

( \Aggiunto aggiunto per usare le nuove righe nel comando.)

Purtroppo il problema qui è che il driver (che è il bug) sembra sovrascrivere il panning che impostiamo (o non impostiamo). Ma ciò che non fa è impostare un'altra parte del panning: l'area di tracciamento! L'area di tracciamento è in realtà quella parte dello schermo che la telecamera segue il cursore su quel monitor.

tl; dr: Quindi l'idea è di impostare il panning come driver, limitando invece l'area di tracciamento.

Questo viene fatto con il seguente comando:

xrandr \
  --output LVDS-1-0 --mode 1920x1080 \
  --output HDMI-0   --mode 1920x1080 --panning 3840x1080+0+0/1920x1080+1920+0/0/0/0/0    --primary

"I primi quattro parametri [ panningdell'argomento] specificano l'area di panning totale, i quattro successivi l'area di tracciamento del puntatore (che per impostazione predefinita è la stessa area). Gli ultimi quattro parametri specificano il bordo e il valore predefinito è 0." [ man xrandr ]


Ho inserito l'ultimo comando in uno script della shell che chiamo tramite tastiera (quando cambio hardware di visualizzazione) e pochi secondi dopo il login automatico.
Sebastian Barth,

L'impostazione dell'area di tracciamento è stata fondamentale anche nella mia configurazione.
krlmlr

Alla fine, la tua soluzione non mi ha aiutato, ma ho trovato una soluzione lasciando da sole le risoluzioni. Comando per mirror: xrandr --output HDMI1 --same-as Laptop1e per esteso:xrandr --output Laptop1 --auto --output HDMI1 --auto --left-of Laptop1
Edenshaw,
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.