Como posso criar um atalho para percorrer os espaços de trabalho no GNOME 3?

Como posso criar um atalho para percorrer os espaços de trabalho no GNOME 3?

Estou usando o Ubuntu 18.04. Posso encontrar a opção de alterar os atalhos do teclado para ir para o espaço de trabalho 1, 2, etc., mas não parece haver uma opção para ir para o 'próximo espaço de trabalho', percorrer os espaços de trabalho existentes, como faria com alt+ tabpara alternar entre janelas.

Clicando no '+' na janela 'atalhos de teclado' para criar um atalho personalizado provavelmente resolveria o problema. Mas não sei qual seria o comando que teria que usar.

Responder1

OMudança de ambiente de trabalhoA extensão GNOME Shell permite o ciclo. Istooficialmentesuporta até GNOME Shell v3.32, mas na prática funciona até no Ubuntu 20.04 LTS (Focal Fossa).

Atualização de junho de 2022: também funciona perfeitamente no Ubuntu 22.04 LTS.

Responder2

Percorrer os espaços de trabalho

Não existe um comando para percorrer os espaços de trabalho, mas como sempre, podemos fazer isso.

Execute o script abaixo a partir de um atalho conveniente e ele fará exatamente como você descreveu: percorrer os espaços de trabalho existentes. Uma vez alcançado o último, ele volta para o primeiro.

ObservaçãoEsses espaços de trabalho dinâmicos precisam ser configurados parafalse

O roteiro

Usando Wnck, podemos obter informações sobre os (lista de) espaços de trabalho, bem como sobre o atual. Posteriormente, podemos passar para qualquer outro espaço de trabalho listado de forma organizada.

Certifique-se Wnckde que esteja instalado:

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

Em seguida, copie o script abaixo em um arquivo vazio, salve-o como cycle_workspaces.py,torná-lo executávele execute-o a partir de um atalho de sua escolha. (correndo: /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())

Aproveitar!

informação relacionada