Existe alguma maneira de alternar o aplicativo em execução em um espaço de trabalho para outro na linha de comando? Eu uso o Ubuntu 10.04
UPDATE1
Conforme as sugestões abaixo
wmctrl -l
0x02200003 -1 bond Bottom Expanded Edge Panel
0x02200049 -1 bond Top Expanded Edge Panel
0x02000020 0 bond x-nautilus-desktop
0x04e00004 0 bond bond@bond: ~
0x0482a380 0 bond OMG! Ubuntu! | wmctrl - Chromium
0x05000072 0 bond how to shift applications from workspace 1 to 2 using command - Ask Ubuntu - Stack Exchange - Google Chrome
agora quando eu digito
wmctrl -r :OMG! Ubuntu! | wmctrl - Chromium: -t 2 No window was specified.
Então, como usá-lo corretamente, qual é o erro acima?
UPDATE2
eu tentei
wmctrl -r 0x05000072 -t 2
mas as janelas não tiveram efeito e permaneceram no mesmo espaço de trabalho.
command-line
workspaces
Usuário Registrado
fonte
fonte
Respostas:
Se você estiver usando um gerenciador de janelas compatível como o Metacity (Unity 2-d), poderá usar o wmctrl para alternar uma janela para outra área de trabalho. A sintaxe é
wmctrl -r :ACTIVE: -t <DESKTOP>
. Você também pode alterar sua área de trabalho atual usandowmctrl -s <DESKTOP>
. Os números da área de trabalho começam em 0. Em uma linha, isso seria:Se você deseja alternar uma janela diferente da ativa para outra área de trabalho, use o texto do título como argumento para -r. Por exemplo:
Como alternativa, você pode usar
wmctrl -l
para listar as janelas disponíveis e passar o número de identificação para -r em vez da sequência especial:ACTIVE:
. Ao passar um ID, você também precisará adicionar -i. Por exemplo:(O wmctrl pode ser instalado no Ubuntu com
sudo apt-get install wmctrl
.) No momento, isso não parece funcionar com o Unity padrão, infelizmente.fonte
wmctrl -r "Chromium" -t 1
como menções ao skyblue em sua resposta, desde que esteja usando um gerenciador de janelas compatível como o Unity-2d.Aqui está um script meu que implementa o que você pergunta: https://github.com/norswap/wmov/blob/master/wmov.sh
Em sua forma atual, ele pode enviar janelas (selecionadas combinando uma sequência que não diferencia maiúsculas de minúsculas do título de substrings, como para a
wmctrl
-r
opção) a outras áreas de trabalho, escolhendo um número explícito da área de trabalho ou indicando a direção da área de trabalho a partir da atual Área de Trabalho.Por exemplo:
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
É possível fazer isso
xdotool
, mas se você estiver usandocompiz
esta solução pode não ser aplicável, lembre-se disso.Para alternar uma janela específica (a janela ativa) para um espaço de trabalho diferente, você pode usar
Ou, para um script, convém alternar as janelas de um programa específico para um determinado espaço de trabalho com:
Este comando pesquisa e localiza as
firefox
janelas e as transfere para o espaço de trabalho 1, onde elas aparecerão minimizadas. Para retornarfirefox
à área de trabalho padrão, basta substituir o 1 por um 0 no final do comando. Para enviar uma janela diferente para outro espaço de trabalho, substituafirefox
por outro nome de programa.É crucial que você use
%@
para representar as janelas passadas a partir do--search
parâmetro, como se você não tivesse nenhuma janela será transferida.Para mais informações, consulte
man xdotool
e o Ubuntu manpages online.fonte
Se você estiver usando o compiz, veja aqui no wiki do compiz . Lá você encontra vários exemplos. Veja o plugin "put".
Exemplo
fonte
Primeiramente, os dois pontos fazem parte do
:ACTIVE:
token mágico para indicar a janela ativa. Você não quer isso normalmente. Segundo, você precisa citar cadeias de caracteres com espaços nelas.Você também pode obter o ID da janela (
0x...
no início de cada linha) e usá-lo em vez de tentar fazer o título funcionar.fonte
xwininfo
e clicar na janela cujo ID você deseja.wmctrl -m
)wmctrl
não vai funcionar. (Especificamente, ele tem que ouvir paraPropertyChange
eventos janela de raiz pelas propriedades particulares e, em seguida, agir sobre o conteúdo dessas propriedades.)Modificando um pouco o script fornecido como solução para esta pergunta , o seguinte "traz" uma determinada janela para o espaço de trabalho atual (no compiz):
Se um espaço de trabalho arbitrário for desejado, é uma questão de adicionar / subtrair o
$SCREEN_W
/ correspondente$SCREEN_H
, quantas vezes os espaços de trabalho uma janela estiver longe da de destino.fonte
Tentar:
deixe-me explicar: na ajuda de wmctrl shows
wmctrl -d
pode listar todos os espaços de trabalho, no meu computador agora mostra o seguinte:* significa o espaço de trabalho atual
BTW,
wmctrl -l
é listar todas as janelas (que você já conhece), no meu computador agora elas são:como o "DESK" deve ser o número, eu uso
grep “workspace name” | cut -d" " -f1
para obtê-lo.Por exemplo, se eu quiser mover o Firefox para o "código" da área de trabalho, posso usar:
ou
mas
Apenas trabalhe comigo uma vez e não sei por quê!
fonte