Per creare un comando che trova l' id
ultima finestra, creata da Firefox
(e per chiuderla), dovrai wmctrl
installare:
sudo apt-get install wmctrl
Il comando
Quindi utilizzare il comando:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Spiegazione:
wmctrl -l
elenca tutte le finestre, ma un'importante proprietà del comando è che elenca le finestre nell'ordine in cui sono state create .
Perciò:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
volere:
elenca tutte le finestre:
wmctrl -l
trova quelli (le righe) con "Mozilla Firefox" nel loro nome:
grep 'Mozilla Firefox'
trova l'ultimo (che è anche l'ultimo creato):
tail -1
estrarre la prima stringa nella riga (che è la finestra -id):
awk '{ print $1 }'
Il comando:
wmctrl -ic
ucciderà quindi la finestra di Firefox più recente con il suo ID (con grazia).
O ancora più affidabile:
Mentre il comando di cui sopra funziona bene in quasi tutti i casi, v'è una piccola possibilità di nome scontri, se ad esempio un altro finestra esiste con "Mozilla Firefox" nel suo nome, ma non di una finestra da Firefox
(improbabile, ma ancora).
Ciò che dovrebbe funzionare "waterproof" è quindi identificare le finestre nell'elenco delle finestre (usando wmctrl -lp
) tramite il pid di firefox
, anziché la stringa nel nome della finestra:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Come puoi vedere, in questo comando,
wmctrl -l | grep 'Mozilla Firefox'
producendo le righe contenenti "Mozilla Firefox", è sostituito da:
wmctrl -lp | grep "$(pgrep firefox)"
producendo le righe contenenti il pid di firefox (come output di pgrep firefox
)