¿Cómo le digo a una aplicación que se abra en un espacio de trabajo específico?
Más información:
Me gusta tener mi IDE de C ++ en el espacio de trabajo 2, mi IDE de Java en el espacio de trabajo 3 y mi correo electrónico, navegador y misceláneos en el espacio de trabajo cuatro. También uso un script de shell que se ejecuta al iniciar sesión:
#!/bin/bash
gnome-terminal & # WS 1
netbeans-6-9-1 & # WS2
qtcreator-2-0-1 & # WS 3
firefox & # WS 4
thunderbird & # WS 4
Por supuesto, actualmente todo se abre en el espacio de trabajo actual ... ¿Hay alguna forma de especificar en qué espacio de trabajo debe comenzar cada comando?
¡Gracias por adelantado!
Respuestas:
Puede usar devilspie para establecer reglas para qué ventanas van a qué espacio de trabajo.
Ver los documentos para un ejemplo de exactamente eso.
Pero Mr Static también tiene una buena sugerencia. Pruebe primero, es posible que ni siquiera necesite su script de shell.
Si necesita que sea un comando que puede usar en un script de shell, eche un vistazo a wmctrl .
fuente
He probado la
wmctrl
herramienta y descubrí que la solución más fácil que me funcionó es mover la ventana con el siguiente comando:Tenga en cuenta que los números del espacio de trabajo comienzan desde 0. Por último, puede moverse a su espacio de trabajo preferido con el comando:
fuente
Utilizo esta estructura básica en scripts para abrir un conjunto específico de aplicaciones en espacios de trabajo específicos ... el ejemplo abre mi terminal y lo mueve al espacio de trabajo 1 ...
fuente
Instalar wmctrl
Y cree un script (en este ejemplo, Thunderbird en el segundo espacio de trabajo (
-t 1
)):Para conocer el nombre de su aplicación en wmctrl, puede verla tocando su terminal:
Y reemplácelo con el nombre correcto en el script.
¡Tenga cuidado con la letra mayúscula ("Thunderbird" no "thunderbird")!
Otro ejemplo con firefox en el espacio de trabajo 3d (
-t 2
):Trabaja en Debain 10 con canela. Pero debería funcionar para todos
fuente
Estoy bastante seguro de que es imposible hacerlo. La razón parece ser que los entornos de ventanas como GNOME esperan que el software maneje esto, y los fabricantes de software esperan que los entornos de ventanas manejen esto.
Devilspie es una buena idea, pero coincide con el patrón (es decir, si name == 'google-chrome'). Entonces, ¿qué sucede si abro dos navegadores? ¿Ambos se trasladan al mismo espacio de trabajo? Tengo 6x3 = 18 espacios de trabajo, cada uno con una instancia particular de cromo. Sería útil si pudiera cambiar el nombre de estos programas (es decir, 'google-chrome1', 'google-chrome2' ...) pero no puedo encontrar una manera de hacerlo. Entonces tenemos que usar wmctrl.
wmctrl es un poco mejor b / c además de usar títulos de ventanas, también puede usar ID de ventana o simplemente usar la ventana resaltada actualmente. Las ID de ventanas son difíciles de obtener b / c, no se generan de inmediato. Vea abajo
pero luego el control no se devuelve a la línea de comando hasta DESPUÉS de que sale gedit. Todo lo que tenemos que hacer para evitar esto es poner una
&
señalpero ahora el control es, el 99.999% de las veces, regresó a la línea de comando ANTES de que los administradores de la ventana inicien la ventana y no hay forma de encontrar la identificación de la ventana. Hay que configurar una técnica de bucle muy compleja para comprobar si se han creado ventanas nuevas y adivinar si es la ventana que estamos buscando.
Verificar la ventana activa a través de la bandera
:ACTIVE:
tiene el mismo problema, no espera a que el programa termine de ejecutarse.wmctrl
me parece un programa muy extraño. Parece que fue diseñado para personas sin mouse o incapaces de arrastrar físicamente sus programas a través de espacios de trabajo.fuente