Respuestas:
Bueno, después de sudo apt-get install wmctrl
-ing, se puede jugar con este script bash:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
Que encontré aquí
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
tiene una -i
opción, que admite trabajar con la ventana con su identificador hexadecimal. Y para que pueda hacer esto wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
, que haría algo similar
Cuando se usa xdotool
, parece difícil poner al frente todas las ventanas para una aplicación o clase dada usando solo un comando. Termino teniendo mejores resultados envolviéndolo en un for
bucle en el nivel de shell. Usando Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Pocos comentarios:
xdotool search
buscará el patrón (aquí Firefox
) en el nombre de la ventana, clase y nombre de clase. Si desea restringir el espacio de búsqueda, usar los pertinentes --class
, --name
o --classname
las opciones.--desktop 0
opción limita la búsqueda al primer escritorio. Esto parece ser una solución alternativa para evitar lo XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
mencionado en algunos comentarios.xdotool
proyecto está estancado desde 2015. Sigue siendo mi herramienta de elección. Por razones personales, Jordan Sissel (el autor original) no es tan activo como lo fue en el pasado, así que no dude en contribuir al proyecto.
xdotool windowraise
lleva la ventana al frente, pero no enfoca la ventana ni cambia al escritorio con la ventana. en cambio,windowactivate
hará los tres.