Este es un seguimiento de una pregunta anterior sobre cómo iniciar automáticamente las aplicaciones en espacios de trabajo individuales con el administrador de ventanas i3 y qué se puede y no se puede hacer dentro del ~/.i3/config
archivo de configuración.
Primero, la solución provista basada en la documentación de Arch Linux y una actualización provista por op donde él empuja la lógica aún más:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
También es interesante este intercambio sobre aprovechar algo de eso directamente en la línea de comando sin duplicar:
i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium
Pero nunca he visto una configuración que inicie automáticamente muchas ventanas / aplicaciones en cada espacio de trabajo de acuerdo con un diseño vertical u horizontal deseado. Mi objetivo es iniciar automáticamente esta configuración simple que uso:
_____ _____ ___________ ___________
| lx | lx | | |u_| | | | proportions:
|_____|_____| | FF |lx| |spacefm | 1- 25% each
|medit| lx | | |__| | | vlc | 2- 75/25 x 25/50/25
|_____|_____| |________|u_| |_____|_____| 3- 50/50
1 2 3
Entonces comienza con algo como esto en el config
archivo:
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'
Pero, ¿cómo logras el tipo de diseño y la división vertical / horizontal que deseas? Lo intento, pero no está claro cómo se "mezclan" la ejecución y el diseño. La sintaxis se siente idiosincrásica al comenzar porque está ejecutando i3-img
dentro de la configuración de i3. ¿Utiliza split h
(o v) - layout split v
- exec layout split v
- focus down
(o derecha) entre cada exec
llamada?
Para un solo espacio de trabajo, la configuración inicia todas las aplicaciones, ya sea vertical u horizontalmente, y parece que no puedo influir en el diseño, o el último split
comando en la cadena decide si las ventanas se agregan vertical u horizontalmente. i3-msg
aparentemente ignora partes del comando que no están formateadas correctamente en algunos casos, por lo que es difícil de depurar. Esto se ve agravado por el hecho de que realmente necesita salir de X y startx
nuevamente cada vez para verificar los resultados, ya que solo actualizar la configuración mod+shift+R
no lo cortará, incluso si cierra todo en cada uno de los espacios de trabajo.
¿Cuál es la forma correcta de configurar esto? ¿Alguien tiene una solución que implemente algo así? La documentación es bastante buena, pero no proporciona que pueda ver un ejemplo detallado que combina la ejecución y el diseño en múltiples espacios de trabajo.
Respuestas:
Creo que está buscando la nueva característica de ahorro de diseño que se introdujo en i3 v4.8 (15/06/2014). La documentación vinculada parece bastante exhaustiva.
Citando de la documentación:
... y las notas de lanzamiento :
1. Es posible que necesite los paquetes perl-anyevent-i3 y perl-json-xs para usar la
i3-save-tree
utilidad.fuente
lxterminal
ourxvt
para un solo espacio de trabajo, entonces debe diferenciarlas--name something
cuando las ejecute en .i3 / config. El ejemplo en el documento funciona, pero cuando uso una exportación de uno de mi espacio de trabajo, parece que no puedo hacer que funcione. Utiliza class para el nombre y la instancia para lo que usaste con --name. En este caso, solo puedo esperar seriamente una herramienta de interfaz gráfica de usuario , ya que el formato json tiene muchos corchetes..i3/config
versiones anteriores, pero una vez que inicie sesión correctamente, todo funciona bien. Lo que hice fue organizar algunos diseños y guardarlos, luego solo edite las variables de clase de los archivos json. Luego, algo asíi3-msg workspace 2\; append_layout mylayout.json\;
y luegoi3-msg exec lxterminal\; exec lxterminal\; exec lxterminal\; exec medit
debería restaurar su primer diseño deseado. // Gracias por mejorar mi respuesta, por cierto.