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"
wmctrltiene una -iopció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 forbucle en el nivel de shell. Usando Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Pocos comentarios:
xdotool searchbuscará 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, --nameo --classnamelas opciones.--desktop 0opció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.xdotoolproyecto 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 windowraiselleva la ventana al frente, pero no enfoca la ventana ni cambia al escritorio con la ventana. en cambio,windowactivatehará los tres.