Como dizer a um aplicativo para abrir em um espaço de trabalho específico?
Mais informações:
Eu gosto de ter meu IDE C ++ na área de trabalho 2, meu IDE Java na área de trabalho 3 e meu email, navegador e diversos na área de trabalho quatro. Eu também uso um script de shell que é executado após o logon:
#!/bin/bash
gnome-terminal & # WS 1
netbeans-6-9-1 & # WS2
qtcreator-2-0-1 & # WS 3
firefox & # WS 4
thunderbird & # WS 4
É claro que atualmente tudo é aberto no espaço de trabalho atual ... Existe uma maneira de especificar em qual espaço de trabalho cada comando deve iniciar?
Desde já, obrigado!
Respostas:
Você pode usar o devilspie para definir regras para quais janelas vão em qual espaço de trabalho.
Veja os documentos para um exemplo exatamente disso.
Mas MrStatic também tem uma boa sugestão. Experimente primeiro, talvez você nem precise do seu script de shell.
Se você precisar que seja um comando que possa ser usado em um script de shell, consulte wmctrl .
fonte
Eu tentei a
wmctrl
ferramenta e descobri que a solução mais fácil que funcionou para mim é mover a janela com o seguinte comando:Observe que os números da área de trabalho começam em 0. Por fim, você pode ir para a sua área de trabalho preferida com o comando:
fonte
Eu uso essa estrutura básica em scripts para abrir um conjunto específico de aplicativos em áreas de trabalho específicas ... o exemplo abre meu terminal e o move para a área de trabalho 1 ...
fonte
Instale o wmctrl
E crie um script (neste exemplo, thunderbird no segundo espaço de trabalho (
-t 1
)):Para saber o nome do seu aplicativo no wmctrl, você pode visualizá-lo tocando no seu terminal:
E substitua-o pelo nome correto no script.
Tenha cuidado com a letra maiúscula ("Thunderbird" e não "thunderbird") !!
Outro exemplo com o Firefox no espaço de trabalho 3d (
-t 2
):Trabalhe no Debain 10 com canela. Mas deve funcionar para todos
fonte
Estou bastante certo de que é impossível fazer isso. O motivo é que ambientes com janelas como o GNOME esperam que o software lide com isso, e os fabricantes de software esperam que os ambientes com janelas lidem com isso.
Devilspie é uma boa idéia, mas faz a correspondência de padrões (por exemplo, se name == 'google-chrome'). Então, o que acontece se eu abrir dois navegadores? Ambos são movidos para o mesmo espaço de trabalho? Eu tenho 6x3 = 18 espaços de trabalho, cada um com uma instância específica do chrome. Ajudaria se eu pudesse renomear esses programas (por exemplo, 'google-chrome1', 'google-chrome2' ...), mas não consigo encontrar uma maneira de fazer isso. Então, temos que usar wmctrl.
wmctrl é um pouco melhor b / c, além de usar títulos de janela, você também pode usar IDs de janela ou apenas usar a janela destacada no momento. Os IDs de janela são difíceis de obter porque não são gerados imediatamente. Ver abaixo
mas, em seguida, o controle não será retornado para a linha de comando até que o Gedit seja encerrado. Tudo o que precisamos fazer para contornar isso é colocar um
&
sinalmas agora o controle é, 99,999% do tempo, retornado à linha de comando ANTES que o gerenciador de janelas inicie a janela e não há como encontrar o ID da janela. É preciso configurar uma técnica de loop muito complexa para testar se alguma nova janela foi criada e adivinhar se é a janela que estamos procurando.
A verificação da janela ativa por meio do sinalizador
:ACTIVE:
tem o mesmo problema, e não espera o término da execução do programa.wmctrl
me parece um programa muito estranho. Parece que foi projetado para pessoas sem mouse ou incapazes de arrastar fisicamente seus programas pelos espaços de trabalho.fonte