Eu não imagino que isso esteja embutido no sistema, mas é possível fazê-lo sem muito trabalho?
Digamos que eu abro um programa específico com uma tecla de atalho e, quando pressiono novamente, a janela do programa é trazida para a frente.
Eu quero fazer isso no Ubuntu 9.04.
Talvez com o D-Bus? Algum especialista?
Atualização : Aqui está o que eu acabei no caso de ajudar alguém:
#!/bin/bash
if [ -f "/tmp/myterm.pid" ]; then
WID=`cat /tmp/myterm.pid`
xdotool windowactivate $WID
if [ "$?" != "0" ]; then
WID=""
fi
else
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
fi
if [ "$WID" == "" ]; then
/usr/bin/gnome-terminal --window-with-profile=MYPROFILE "$@"
WID=`xdotool search --title "UNIQUE TITLE" | head -1`
echo $WID > /tmp/myterm.pid
else
xdotool windowactivate $WID
fi
Certamente isso pode ser simplificado, mas eu não sou bash
inteligente. Além disso, para o meu exemplo funcionar, criei um perfil personalizado no Terminal que aplica um título exclusivo à janela para que possa ser encontrado posteriormente. As possibilidades são infinitas!
Respostas:
O
wmctrl
programa é exatamente o que você está procurando (sudo apt-get install wmctrl
). Você pode usar owmctrl -a "AppTitle"
comando para trazer o aplicativo para a frente.wmctrl -l
listará todas as janelas disponíveis; portanto, deve ser fácil escrever um script de shell que verifique se o seu programa está sendo executado e o inicia ou o traz à frente. Em seguida, você pode vincular isso a um atalho de teclado.Primeiro salve o script a seguir em algum lugar, eu usarei
/home/jtb/code/bringToFront
. São necessários dois argumentos, o primeiro é o que você digitaria no terminal para iniciar o programa, o segundo é uma substring do título da janela do programa. Se não houver uma seqüência única e constante no título, você precisará trabalhar um pouco mais para encontrar a janela do programa.Com o script no diretório atual, execute
chmod +x bringToFront
para tornar o script executável. Então verifique se funciona; para iniciar / focar o firefox que você pode executar./bringToFront firefox "Mozilla Firefox"
.Agora precisamos vincular uma tecla de atalho. Execute
gconf-editor
e navegue na estrutura de pastas à esquerda para/apps/metacity/keybinding_commands
.Clique duas vezes no primeiro
command
com um valor em branco, provavelmentecommand_1
. Digite o caminho completo para o script e forneça os dois parâmetros, por exemplo/home/jtb/code/bringToFront firefox Firefox
.No painel à esquerda, selecione
global_keybindings
a próxima pasta para cima. Encontre arun
entrada correspondente ao comando que você acabou de definir, provavelmenterun_command_1
. Clique duas vezes nele e digite o atalho do teclado que você deseja usar. Coloque os modificadores entre colchetes, por exemplo<Ctrl><Alt>F
.Agora o Control+ Alt+ Ftrará a janela do firefox para a frente ou a inicie se ainda não estiver em execução.
fonte
Aqui está outra maneira de fazer isso
xdotools
. O processo de pop-up é reconhecido pela linha de comando emitida para executá-lo (nenhum arquivo pid ou título exclusivo da janela é necessário).fonte
obrigado por isso. Eu uso uma versão modificada para criar um script de atalho da janela que também suporta alternar entre várias instâncias. Se você estiver interessado:
http://somanov.wordpress.com/2009/12/02/window-shortcuts-for-linux-desktops/
Felicidades :)
fonte
A resposta postada por jtb anteriormente é excelente, mas às vezes você deseja combinar títulos exatos (por exemplo, você deseja abrir "GitKraken", mas o título do seu navegador "GitKraken vs CLI" também corresponde à consulta).
Então agora você pode chamar seu script bringToFront da seguinte maneira:
fonte
Esta solução não é parametrizada, mas eu a usei para focar ou iniciar a calculadora gnome.
A opção -R localiza a janela ou falha, se encontrada, é movida para a área de trabalho atual, aumentada e focada. O nome da calculadora gnome é sua janela com o nome Calculadora , poderia ser facilmente parametrizado, mas eu nunca achei necessário fazê-lo. Eu tenho isso mapeado para
Ctrl-Alt-c
.fonte