Para hacer un comando que encuentre el id
de la última ventana, creado por Firefox
(y para cerrarlo), deberá wmctrl
estar instalado:
sudo apt-get install wmctrl
El comando
Luego usa el comando:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Explicación:
wmctrl -l
enumera todas las ventanas, pero una propiedad importante del comando es que enumera las ventanas en el orden en que fueron creadas .
Por lo tanto:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
será:
enumerar todas las ventanas:
wmctrl -l
encuentre las (las líneas) con 'Mozilla Firefox' en su nombre:
grep 'Mozilla Firefox'
encuentra el último (que también es el último creado):
tail -1
extraer la primera cadena en la línea (que es la ventana -id):
awk '{ print $1 }'
El comando:
wmctrl -ic
luego matará la ventana más reciente de Firefox por su id (gracefuly).
O incluso más confiable:
Mientras que el comando anterior funciona bien en la práctica totalidad de los casos, no es una pequeña posibilidad de conflictos de nombres, por ejemplo, si existe otra ventana con "Mozilla Firefox" en su nombre, pero no una ventana de Firefox
(poco probable, pero aún así).
Por lo tanto, lo que debería funcionar "a prueba de agua" es identificar las ventanas en la lista de ventanas (usando wmctrl -lp
) mediante el pid de firefox
, en lugar de la cadena en el nombre de la ventana:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Como puede ver, en este comando,
wmctrl -l | grep 'Mozilla Firefox'
la producción de las líneas que contienen 'Mozilla Firefox' se reemplaza por:
wmctrl -lp | grep "$(pgrep firefox)"
produciendo las líneas que contienen el pid de firefox (como la salida de pgrep firefox
)