¿Hay un comando para ir a un espacio de trabajo específico?


22

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?


También existe la posibilidad de establecer un atajo de teclado en la configuración del sistema5 para kwin (cambiar de escritorio u otro) u otro administrador de configuraciones de escritorio. luego use xdotool para simular las teclas de acceso directo como xdotool key ctrl + alt + b;
intika

Respuestas:


34

Puedes usar wmctrl .

Comandos básicos:
wmctrl -dpara 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 -dPor ejemplo, el mío es:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

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:

wmctrl -o 0,0

Entonces, si quiero ir a mi "espacio de trabajo" 4, el comando es:

wmctrl -o 0,768

Si quiero ir a mi "espacio de trabajo" 8, el comando es:

wmctrl -o 1366,1536

Si quiero ir a mi "espacio de trabajo" 9, el comando es:

wmctrl -o 2732,1536

¿Lo tengo? ;-)

La -obandera "trunca" sus valores. En otras palabras, cambia el "espacio de trabajo" al que pertenece el píxel real. Los siguientes son equivalentes:

wmctrl -o 0,0
wmctrl -o 1365,767

1
¿Hay alguna forma de llegar al "escritorio actual + 1"?
xjcl

9

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 desde man 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 utilizar xdotoolcomandos como set_desktop_viewporty get_desktop_viewport. Es posible que tenga que especificar los comandos de una manera diferente, como desgua sugiere anteriormente, pero para mí los comandos set_desktopy set_desktop_for_windowresultaron 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

xdotool get_num_desktops

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

xdotool set_desktop 1 

Luego, para volver al espacio de trabajo predeterminado, ingrese

xdotool set_desktop 0

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

xdotool get_desktop

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.


Me gusta esta respuesta mejor que la aceptada, gracias. Utilicé esto para establecer dos esquinas activas para cambiar fácilmente entre dos espacios de trabajo.
timetofly

También es útil: cambie al siguiente escritorio a la izquierda / derecha utilizando el indicador relativo:xdotool set_desktop --relative -- -1
xjcl


0

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.


0

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.