¿Cómo puedo crear un acceso directo para recorrer los espacios de trabajo en GNOME 3?

¿Cómo puedo crear un acceso directo para recorrer los espacios de trabajo en GNOME 3?

Estoy usando Ubuntu 18.04. Puedo encontrar la opción para cambiar los atajos de teclado para pasar al espacio de trabajo 1, 2, etc. pero no parece haber una opción para ir al 'siguiente espacio de trabajo', recorrer los espacios de trabajo existentes, como lo haría con alt+ tabpara cambiar entre ventanas.

Al hacer clic en '+' en la ventana 'atajos de teclado' para crear un atajo personalizado probablemente funcionaría. Pero no sé cuál sería el comando que tendría que utilizar.

Respuesta1

ElEnvoltura del cambio de espacio de trabajoLa extensión GNOME Shell permite el ciclismo. Éloficialmenteadmite hasta GNOME Shell v3.32, pero en la práctica funciona incluso en Ubuntu 20.04 LTS (Focal Fossa).

Actualización de junio de 2022: también funciona perfectamente bien en Ubuntu 22.04 LTS.

Respuesta2

Recorrer los espacios de trabajo

No existe ningún comando para recorrer los espacios de trabajo, pero, como siempre, podemos hacerlo.

Ejecute el siguiente script desde un acceso directo conveniente y hará exactamente lo que usted describe: recorrer los espacios de trabajo existentes. Una vez que se llega al último, vuelve al primero.

NotaQue los espacios de trabajo dinámicos deben configurarse parafalse

La secuencia de comandos

Usando Wnck, podemos obtener información tanto de la (lista de) espacios de trabajo como del actual. Posteriormente, podremos desplazarnos a cualquier otro de los espacios de trabajo listados de forma organizada.

Por favor asegúrese de Wnckque esté instalado:

sudo apt install python3-gi gir1.2-wnck-3.0

Luego copie el siguiente script en un archivo vacío, guárdelo comocycle_workspaces.py ,hacerlo ejecutabley ejecútelo desde un acceso directo de su elección. (correr: /path/to/cycle_workspaces.py)

#!/usr/bin/env python3
import gi
gi.require_version("Wnck", "3.0")
gi.require_version("Gtk", "3.0")
from gi.repository import Wnck, Gtk

scr = Wnck.Screen.get_default()
scr.force_update()

# list existing workspaces
workspaces = scr.get_workspaces()
# get the (index of) current one
currws = workspaces.index(scr.get_active_workspace())
# since first in list has index 0, subtract 1, if index is last,
# move to first index of the list (workspaces)
if currws == len(workspaces) - 1:
    next_workspace = workspaces[0]
# else pick the next in list
else:
    next_workspace = workspaces[currws + 1]
# and activate it...
next_workspace.activate(Gtk.get_current_event_time())

¡Disfrutar!

información relacionada