Asigne espacios de trabajo en i3 a múltiples pantallas

15

Encendí usando i3 en mi computadora portátil Linux. Por lo general, estoy usando solo el monitor interno de la computadora portátil (pantalla eDP1), pero cuando estoy en el trabajo tiendo a conectar un monitor secundario al puerto HDMI de la computadora (pantalla HDMI2). Hasta ahora, he hecho que esto funcione bien agregando estos comandos a mi archivo de configuración 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

En otras palabras, cuando conecto mi pantalla HDMI solo presiono Mod+ Mpara que i3 lo detecte, lo coloco a la derecha de mi pantalla principal y delego 5 espacios de trabajo con nombre (6-10).

Aquí está el problema: en casa, tengo otro monitor que puedo conectar con VGA (pantalla DP2). También puedo ejecutar el xrandrcomando anterior para colocar esta pantalla a la derecha de mi pantalla principal, pero no puedo asignar los espacios de trabajo a esta pantalla de manera predeterminada, a menos que reemplace las reglas que ya tengo para mi monitor HDMI. Me gustaría que estos dos espacios de trabajo funcionen igual sin importar qué monitor use, por lo que esta no es una opción.

TL; DR ¿Hay alguna forma de asignar espacios de trabajo a dos pantallas diferentes, dependiendo de la pantalla que esté conectada (suponiendo que nunca se conecten al mismo tiempo)?

Frxstrem
fuente

Respuestas:

21

No puede asignar múltiples salidas a un solo espacio de trabajo, consulte: https://github.com/i3/i3/issues/555

Entonces, la única forma es cambiar la configuración de i3 dinámicamente. Puede asignar una secuencia de comandos de teclas de acceso rápido que hará 2 cosas: cambiar las salidas del monitor con xrandry mover espacios de trabajo 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 el script anterior, moverá 6-10 espacios de trabajo a DP2 y terminará permaneciendo en el espacio de trabajo 10.

Actualización 2019: se implementó la asignación de múltiples salidas a partir de la v4.16, consulte https://i3wm.org/docs/userguide.html#workspace_screen . Ahora puedes usarlos así:

workspace "6: S1" output HDMI2 VGA

Se utilizará la primera salida disponible.

anlar
fuente
2

Según la guía del usuario , la sintaxis:

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

Deberia trabajar.

O puede definir la salida primaria en sus máquinas, si no se establece ( xrandr --output <output> --primary), y usar esta sintaxis:

workspace 1 output primary
...
workspace 6 output secondary
caseneuve
fuente