Estou tentando fazer uma lista rápida no iniciador do Workspace Switcher que permite a troca rápida para um determinado espaço de trabalho. (Às vezes, meu amigo usa meu computador e simplesmente não gosta de atalhos de teclado, então eu quero ajudá-lo.)
Então, existe um comando que se possa digitar em um terminal que force uma determinada área de trabalho a ser focada?
Respostas:
Você pode usar wmctrl .
Comandos básicos:
wmctrl -d
para mostrar todos os seus espaços de trabalho.wmctrl -s <workspace_name>
para mudar para um espaço de trabalho específico.Se você estiver usando o Compiz, precisará executar um truque, porque os "espaços de trabalho" do Compiz são na verdade viewports de um único espaço de trabalho.
Instruções para truques
Verifique a saída de
wmctrl -d
Por exemplo, a minha é:Isso significa que, na verdade, tenho um espaço de trabalho de 4098 x 2304 em vez do que "penso" que tenho (nove "espaços de trabalho", 3 x 3).
Eu estava no que deveria ser o "espaço de trabalho" 2, mas na verdade estava na viewport (VP) 1366,0 (4098/3 = 1366), como mostra a saída acima.
Portanto, é assim que funciona: pegamos todo o espaço de trabalho e dividimos pelo número de "espaços de trabalho" que "pensamos" que temos. No meu caso: 4098/3 = 1366 e 2304/3 = 768.
Se eu quiser ir para o meu "espaço de trabalho" 1, o comando é:
Então, se eu quiser ir para o meu "espaço de trabalho" 4, o comando é:
Se eu quiser ir para o meu "espaço de trabalho" 8, o comando é:
Se eu quiser ir para o meu "espaço de trabalho" 9, o comando é:
Consegui? ;-)
O
-o
sinalizador "trunca" seus valores. Em outras palavras, ele altera o "espaço de trabalho" ao qual o pixel real pertence. Os seguintes são equivalentes:fonte
É lindamente simples alcançar o que você deseja
xdotool
, com várias opções para gerenciar diferentes áreas de trabalho (também conhecidas como 'áreas de trabalho' na documentação do programa). Acho que pode ser muito interessante e criativo encadear comandos deman xdotool
; os comandos que formulei abaixo podem ser úteis em scripts.Nota: Em alguns gerenciadores de janelas, ou se você estiver usando
compiz
, pode ser necessário usarxdotool
comandos comoset_desktop_viewport
eget_desktop_viewport
. Você pode precisar especificar os comandos de uma maneira diferente, como desgua sugere acima, mas, para mim, os comandosset_desktop
e seset_desktop_for_window
mostraram mais úteis em um sistema não compiz.)( A solução é mais útil para usuários do Xubuntu / Lubuntu ou para aqueles que não estão executando o compiz, etc. )
Para listar o número de áreas de trabalho atuais, insira
Os seguintes comandos só funcionarão se você tiver pelo menos 1 outro espaço de trabalho.
Para alterar o foco para o seu espaço de trabalho 1, basta digitar
Em seguida, para retornar ao espaço de trabalho padrão, insira
A área de trabalho só precisa ser especificada como o último valor no comando (1 ou 2 ou 3, etc).
Para encontrar o número da área de trabalho em que você está atualmente, você pode usar
Esses comandos podem ser usados em scripts e devem ser muito úteis para conseguir o que você quer.
Para saber como alternar aplicativos para uma área de trabalho específica, consulte minha resposta aqui:
Para obter mais opções úteis disponíveis para alternar na área de trabalho, consulte
man xdotool
.fonte
xdotool set_desktop --relative -- -1
Eu implementei um script que faz o que você deseja. Aqui está: https://github.com/norswap/wmov/blob/master/wmov.sh
Funciona de fato como descrito no post de desgua. Ele também possui os recursos para enviar janelas para outros espaços de trabalho.
fonte
Existe um script chamado compiz-send.py no wiki do compiz que parcialmente responde à sua pergunta: não é um espaço de trabalho específico, mas você pode encontrar o próximo a ele.
Com isso, você pode emitir um comando
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
e fazer com que a viewport vá 1 para a esquerda ou para a direita.
fonte
Ir para um espaço de trabalho específico e executar ações pode ser implementado com o Python e a biblioteca pyautogui , que permite que os scripts do Python executem cliques do mouse, pressionamentos de teclas, etc.
Escrevi um breve tutorial no fórum do Peppermint OS sobre como iniciar um aplicativo em um local de trabalho específico.
fonte