Tengo un cierto entorno de trabajo con docenas de ventanas abiertas. ¿Cómo puedo traer al frente una ventana con un nombre / título conocido programáticamente o usando la línea de comando?
14
Tengo un cierto entorno de trabajo con docenas de ventanas abiertas. ¿Cómo puedo traer al frente una ventana con un nombre / título conocido programáticamente o usando la línea de comando?
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.Bueno, después de
sudo apt-get install wmctrl
-ing, se puede jugar con este script bash:Que encontré aquí
fuente
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 estowmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
, que haría algo similarCuando 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 unfor
bucle en el nivel de shell. Usando Bash: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 loXGetWindowProperty[_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.Esta es una copia de una respuesta que publiqué en AskUbuntu , pero creo que es independiente del sabor de Linux, por lo que también puede ser útil aquí.
fuente