Para criar um comando que encontre a id
última janela criada por Firefox
(e para fechá-la), você precisará wmctrl
estar instalado:
sudo apt-get install wmctrl
O comando
Em seguida, use o comando:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Explicação:
wmctrl -l
lista todas as janelas, mas uma propriedade importante do comando é que ele lista as janelas na ordem em que foram criadas .
Portanto:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
vai:
listar todas as janelas:
wmctrl -l
encontre aqueles (as linhas) com 'Mozilla Firefox' em seu nome:
grep 'Mozilla Firefox'
encontre o último (que também é o último criado):
tail -1
extraia a primeira string da linha (que é o id da janela):
awk '{ print $1 }'
O comando:
wmctrl -ic
então matará a janela mais recente do Firefox por seu ID (graciosamente).
Ou ainda mais confiável:
Enquanto o comando acima funciona bem em praticamente todos os casos, não é uma pequena chance de conflitos de nome, se por exemplo, uma outra janela existe com "Mozilla Firefox" em seu nome, mas não uma janela de Firefox
(improvável, mas ainda).
O que deve funcionar "à prova d'água" é, portanto, identificar as janelas na lista de janelas (usando wmctrl -lp
) pelo pid de firefox
, em vez da string no nome da janela:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Como você pode ver, neste comando,
wmctrl -l | grep 'Mozilla Firefox'
produzindo as linhas que contêm 'Mozilla Firefox', é substituído por:
wmctrl -lp | grep "$(pgrep firefox)"
produzindo as linhas que contêm o pid do firefox (como a saída de pgrep firefox
)