Como posso ligar uma chave para alternar entre espaços de trabalho?

7

Estou usando agora 2 espaços de trabalho e gostaria de poder percorrê-los usando um único atalho. No momento, eu posso fazer Ctrl + Alt + Direito para mudar para a área de trabalho 2, e Esquerda muda para 1, mas gostaria de uma única chave (ou combinação de teclas) para mudar para o espaço de trabalho que não estou agora. Dessa forma, eu só precisaria desse atalho e não precisaria de dois.

Estou executando o Ubuntu em uma máquina antiga, e isso impede que eu habilite o compiz. Eu tentei escrever um script usando wmctrl e xdotool , mas nenhum deles funciona corretamente (não importa o que eu faça, os dois só mudarão para o espaço de trabalho 1 e nunca para 2).

Alguma sugestão?

    
por Malabarba 05.10.2010 / 18:48

2 respostas

5

Aqui está um script que muda para o próximo espaço de trabalho, voltando para o primeiro após o último. Observe que os espaços de trabalho são numerados de 0, talvez seja isso que te lançou quando você tentou escrever um script.

#!/bin/sh
total=$(wmctrl -d | wc -l)
current=$(wmctrl -d | sed -n 's/^\([0-9]\+\) *\*.*//p')
if [ -z "$total" ] || [ -z "$current" ]; then
  echo 1>&2 "$0: Could not obtain workspace information!"
  exit 2
fi
target=$(($current+1))
if [ $target = $total ]; then
  target=0
fi
wmctrl -s $target
    
por Gilles 05.10.2010 / 20:42
2

Eu sei que isso é antigo, mas aqui estão minhas versões:

Para vários espaços de trabalho (como na resposta de Gilles):

wmctrl -s 'wmctrl -d | awk '$2=="*"{cur=NR} END{print cur % NR}''

Para várias viewports:

wmctrl -o 'wmctrl -d | awk '{gsub(/[^0-9]/," ",$0);x = ($4 + $6 + $8) % $2; if( 
x == 0 ) y = ($5 + $7 + $9) % $3; else y = $5; print x","y}''
    
por palindrom 16.08.2012 / 16:38