Para fazer um comando que encontre id
da última janela, criada por Firefox
(e para fechá-la), você precisará de wmctrl
para ser instalado:
sudo apt-get install wmctrl
O comando
Em seguida, use o comando:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print }')"
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 }'
irá:
-
listar todas as janelas:
wmctrl -l
-
encontre os (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 na linha (que é a janela -id):
awk '{ print }'
O comando:
wmctrl -ic
irá então matar a janela mais recente do Firefox pelo seu id (graciosamente).
Ou ainda mais confiável:
Embora o comando acima funcione bem em praticamente todos os casos, existe uma pequena chance de conflitos de nomes, se, e. existe outra janela 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 }')"
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 contendo o pid do firefox (como a saída de pgrep firefox
)