Como mudar para o programa que já está em execução usando o terminal?
Por exemplo:
firefox abre uma nova janela do firefox.
Existe um comando que focalizará a janela do firefox já aberta?
Como mudar para o programa que já está em execução usando o terminal?
Por exemplo:
firefox abre uma nova janela do firefox.
Existe um comando que focalizará a janela do firefox já aberta?
Respostas:
Supondo que você tenha o wmctrl instalado (execute sudo apt-get install wmctrlse não):
O comando:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Levantaria a últimagedit janela aberta . Substitua-o por qualquer outro aplicativo.
pgrep gedit
recebe o pid do gedit
wmctrl -lp
lista todas as janelas e os detalhes a que pertencem
awk '{ print $1 }'
divide o id da janela (a primeira string da linha)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
portanto, localiza o ID da janela da última janela criada de gedit(a saída de wmctrl -lplista as janelas em uma ordem cronológica de criação, se o aplicativo tiver várias janelas, tail -1retorna a última).
wmctrl -ia
posteriormente levanta a janela por sua window-id
... para ser executado com o aplicativo como argumento:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shExecute-o como (por exemplo)
/path/to/switchto.sh firefox
Teoricamente, o comando:
xdotool search --class gedit windowactivate
deve fazer (mais ou menos) o mesmo; deve elevar a primeira janela encontradagedit neste caso.
Parece menos robusta no entanto. No meu sistema (Unity), não fez nada.
Se você executou o firefox usando, firefox &pode usar jobspara ver seu número. Para trazê-lo para o primeiro plano, escreva o %n firefoxque nsignifica seu número. Exemplo:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Além disso, você pode "matar" o programa:
sabrina@ubuntu:~$ kill %1