Assegna aree di lavoro su i3 a più schermi


15

Ho acceso usando i3 sul mio laptop Linux. Di solito sto usando solo il monitor interno del laptop (display eDP1), ma quando sono al lavoro tendo a collegare un monitor secondario alla porta HDMI del mio computer (display HDMI2). Finora, ho fatto bene questo lavoro aggiungendo questi comandi al mio file di configurazione i3:

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

In altre parole, quando collego il mio display HDMI premo solo Mod+ Mper far sì che i3 lo rilevi, lo posizioni a destra del mio display principale e deleghi a esso 5 aree di lavoro denominate (6-10).

Ecco il problema: a casa, ho un altro monitor che posso connettere con VGA (display DP2). Posso eseguire il xrandrcomando sopra per posizionare questo display anche a destra del mio display principale, ma non riesco ad assegnare le aree di lavoro a questo display per impostazione predefinita, a meno che non sostituisca le regole che ho già per il mio monitor HDMI. Vorrei che entrambe queste aree di lavoro funzionassero allo stesso modo, indipendentemente dal monitor che utilizzo, quindi questa non è un'opzione.

TL; DR C'è un modo per assegnare aree di lavoro a due diversi display, a seconda di quale schermo è collegato (supponendo che non saranno mai collegati contemporaneamente)?

Risposte:


21

Non è possibile assegnare più output a un unico spazio di lavoro, consultare: https://github.com/i3/i3/issues/555

Quindi l'unico modo è cambiare la configurazione di i3 in modo dinamico. Potresti assegnare allo script di tasti di scelta rapida che farà 2 cose: cambiare le uscite del monitor con xrandre spostare le aree di lavoro con i3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

Con lo script sopra sposterai 6-10 aree di lavoro in DP2 e finirai per rimanere nell'area di lavoro 10.

Aggiornamento 2019: l' assegnazione di più uscite è stata implementata a partire dalla v4.16, consultare https://i3wm.org/docs/userguide.html#workspace_screen . Ora potresti usarli così:

workspace "6: S1" output HDMI2 VGA

Verrà quindi utilizzato il primo output disponibile.


2

Secondo la guida dell'utente , sintassi:

workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA

dovrebbe funzionare.

Oppure puoi definire l'output primario sui tuoi computer, se non impostato ( xrandr --output <output> --primary), e usare questa sintassi:

workspace 1 output primary
...
workspace 6 output secondary
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.