Area di lavoro separata per la seconda schermata


16

Vorrei ottenere un comportamento del genere: quando uso lo schermo del mio laptop viene utilizzato il mio primo spazio di lavoro. Quando collego una seconda schermata (tramite HDMI) viene utilizzata una seconda area di lavoro e tutte le nuove finestre aperte su questa seconda schermata verranno visualizzate nel secondo spazio, tranne per il passaggio dell'area di lavoro sulla seconda schermata in un'altra area di lavoro.

Quando scollego il mio secondo schermo, tutte le finestre rimarranno nelle aree di lavoro in cui sono state create e posso cambiare le aree di lavoro sul mio laptop per vederle.

Questo comportamento è già possibile?


Sono già riuscito ad abilitare le aree di lavoro con Aspetto -> Behvior e le aree di lavoro verticali disabilitate con Gestione impostazioni CompizConfig. Ci sono anche plugin per Switcher e Expoport Viewer che sembrano essere in grado di fare quello che voglio, ma ho paura di cambiare le impostazioni senza sapere lì.
velop,

La tua domanda è un po 'confusa. Se stai chiedendo di creare schermi come due aree di lavoro separate, la risposta è no, impossibile. Se stai chiedendo di cambiare automaticamente il numero di aree di lavoro quando colleghi la seconda schermata, allora è possibile. Per favore, chiarisci / semplifica ciò che stai chiedendo
Sergiy Kolodyazhnyy,

2
Ho trovato l'opzione Compiz -> Desktop Wall -> Viewport Switching -> Multimonitor bahvior -> Switch separatamente. Ma a quanto pare questo non funziona.
velop,

@velop, puoi modificare questi commenti nella domanda?
SDsolar,

Risposte:


1

Questo comportamento è già possibile?

Tutto è possibile in Linux. Avrai bisogno di alcune conoscenze di base su Xserver , un po 'di tempo e un sistema su cui testare, poiché stai scherzando con la tua X e sicuramente avrai bisogno del browser in esecuzione se hai bisogno di aiuto :-)

Secondo me ci sono tre possibili soluzioni:

  • Le configurazioni multimonitor utilizzano Xinerama . La soluzione più semplice che mi viene in mente è quella di aggiungere un terzo schermo virtuale alla tua configurazione e spostare semplicemente le finestre lì usando xdotool. Ci sono alcuni aspetti negativi di questa soluzione, ma non richiederebbe lo sforzo di spostare le finestre tra i diversi Xserver, cosa che in generale non è possibile.

  • Dal momento che non è possibile spostare finestre tra Xserver diversi , abbiamo bisogno di una sorta di proxy come xmove o Xpra per fare questo per noi. Penso che le finestre vivano quindi in una sessione Xfvb separata per nascondere le finestre. È possibile allegare e staccare alla sessione.

  • Indipendentemente dal metodo utilizzato, è necessario un evento quando il monitor viene scollegato. L'evento dovrebbe essere attivato quando lo schermo è disconnesso e anche quando ricollegato. Puoi demonizzare lo script per guardare l'evento.

Preferirei la soluzione usando Xpra per vari motivi. Posso solo darti alcuni suggerimenti su come farlo. Le soluzioni non sono complete ma dovrebbero iniziare.

Soluzione di Xinerama

Impostare

L'installazione di Xinerama deve essere estesa per avere una configurazione statica: vedi https://help.ubuntu.com/community/XineramaHowTo

vedi anche il terzo schermo falso e Xdummy

Windows interessato

Possiamo usare xdotool per cercare windows. Successivamente possiamo controllare la loro posizione e spostarli. Sto assumendo due monitor con 1920x1080configurazione. Quanto segue sposta tutte le finestre da destra a sinistra sullo schermo xinerama.

while read xwindowid; do
    eval $(xdotool getwindowgeometry --shell "$xwindowid")
    if (( X > 1920 && X <= (1920 * 2))); then
        xdotool windowmove --relative $WINDOW -1920 y
    fi
done <<< "$(xdotool search --screen 0 '.*')"

Ora puoi spostare tutte le finestre dallo schermo del tuo laptop (schermo 0) a un terzo schermo (virtuale) se viene collegato un monitor. Allo stesso tempo, puoi spostare qualsiasi finestra memorizzata nella terza schermata nella prima schermata.

Soluzione XPRA

Per poter usare Xpra per spostare le finestre, tutte le finestre devono essere gestite da Xpra prima. Devi avviare l'intero desktop usando Xpra all'avvio del sistema. Due volte uno è il desktop principale in cui lavori e l'altro è principalmente un desktop virtuale.

xpra start-desktop :99
xpra start-desktop :1 --exit-with-children −−attach

Ora puoi avere Windows per lo schermo disconnesso in esecuzione in una sessione xpra separata e collegarti / staccarti da esso quando il monitor cambia.

xpra attach :99
xpra detatch :99

Esiste anche un'estensione della shell di gnome che potrebbe essere utile se si desidera spostare manualmente una finestra da quella nascosta :99a quella normale :0tra i display xpra avviati.

L'evento

  • È possibile controllare la disconnessione / riconnessione di un display specifico

  • forse cerca le dimensioni modificate del tuo xinerama usando xwininfo per averlo indipendente dal monitor non collegato se vuoi, ad esempio, estendere la configurazione a 3 monitor e scollegare un dispositivo arbitrario. Nota che funzionerà solo con la soluzione xpra.

    xwininfo -display :0 -root | grep -e "-geometry"

    -geometry 5760x2160+0+0

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.