Estoy tratando de hacer una lista rápida en el iniciador de Workspace Switcher que permita cambiar rápidamente a un determinado espacio de trabajo. (Mi amigo a veces usa mi computadora y simplemente no disfruta de los atajos de teclado, así que quiero ayudarlo).
Entonces, ¿hay un comando que se pueda escribir en una terminal que obligaría a centrar un determinado espacio de trabajo?
Respuestas:
Puedes usar wmctrl .
Comandos básicos:
wmctrl -d
para mostrar todos sus espacios de trabajo.wmctrl -s <workspace_name>
para cambiar a un espacio de trabajo específico.Si está utilizando Compiz, tendrá que hacer un truco porque los "espacios de trabajo" de Compiz son en realidad Viewports de un único espacio de trabajo.
Instrucciones de truco
Verifique el resultado de
wmctrl -d
Por ejemplo, el mío es:Esto significa que en realidad tengo un espacio de trabajo de 4098 x 2304 en lugar de lo que "creo" que tengo (nueve "espacios de trabajo", 3 x 3).
Estaba en lo que se suponía que era "espacio de trabajo" 2, pero en realidad estaba en la ventana gráfica (VP) 1366,0 (4098/3 = 1366) como se muestra en el resultado anterior.
Así es como funciona: tomamos todo el espacio de trabajo y lo dividimos por la cantidad de "espacios de trabajo" que "creemos" que tenemos. En mi caso: 4098/3 = 1366 y 2304/3 = 768.
Si quiero ir a mi "espacio de trabajo" 1, el comando es:
Entonces, si quiero ir a mi "espacio de trabajo" 4, el comando es:
Si quiero ir a mi "espacio de trabajo" 8, el comando es:
Si quiero ir a mi "espacio de trabajo" 9, el comando es:
¿Lo tengo? ;-)
La
-o
bandera "trunca" sus valores. En otras palabras, cambia el "espacio de trabajo" al que pertenece el píxel real. Los siguientes son equivalentes:fuente
Es maravillosamente simple lograr lo que desea
xdotool
, que tiene múltiples opciones para administrar diferentes espacios de trabajo (también conocidos como 'escritorios' dentro de la documentación del programa). Creo que puede ser muy interesante y creativo juntar comandos desdeman xdotool
; Los comandos que he formulado a continuación pueden ser útiles en los scripts.Nota: con algunos gestores de ventanas, o si está utilizando
compiz
, es posible que necesite utilizarxdotool
comandos comoset_desktop_viewport
yget_desktop_viewport
. Es posible que tenga que especificar los comandos de una manera diferente, como desgua sugiere anteriormente, pero para mí los comandosset_desktop
yset_desktop_for_window
resultaron más útiles en un sistema que no es compiz).( La solución es más útil para los usuarios de Xubuntu / Lubuntu, o aquellos que no están ejecutando compiz, etc. )
Para enumerar el número de espacios de trabajo actuales, ingrese
Los siguientes comandos solo funcionarán si tiene al menos 1 espacio de trabajo más.
Para cambiar el enfoque a su espacio de trabajo 1, solo ingrese
Luego, para volver al espacio de trabajo predeterminado, ingrese
El espacio de trabajo solo necesita especificarse como el último valor en el comando (1 o 2 o 3, etc.).
Para encontrar el número del espacio de trabajo en el que se encuentra actualmente, puede usar
Estos comandos podrían usarse en scripts y deberían ser muy útiles para lograr lo que usted hace.
Para saber cómo cambiar las aplicaciones a un escritorio en particular, vea mi respuesta aquí:
Para obtener más opciones útiles disponibles para el cambio de espacio de trabajo, consulte
man xdotool
.fuente
xdotool set_desktop --relative -- -1
He implementado un script que hace lo que quieres. Aquí está: https://github.com/norswap/wmov/blob/master/wmov.sh
Funciona de hecho como se describe en la publicación de desgua. También tiene la capacidad de enviar ventanas a otros espacios de trabajo.
fuente
Hay un script llamado compiz-send.py en el wiki de compiz que responde en parte a su pregunta: no es un espacio de trabajo específico, pero puede acceder al que está al lado.
Con esto, puede emitir un comando
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
y hacer que la ventana gráfica vaya 1 a la izquierda o a la derecha.
fuente
Ir a un espacio de trabajo específico y realizar acciones allí se puede implementar con Python y la biblioteca pyautogui , que permite que los scripts de Python realicen clics del mouse, pulsaciones de teclas, etc.
Escribí un breve tutorial en el foro para Peppermint OS sobre cómo iniciar una aplicación en un lugar de trabajo específico.
fuente