Necesito una solución para obtener la información de ventana activa (enfocada) actual en un escritorio Gnome 2. Estoy principalmente interesado en el proceso que ejecuta esa ventana y el título de la ventana.
¿Es posible?
SOLUCIÓN:
Obtener el título de la ventana:
xwininfo -root -children | grep $(printf '%x\n' $(xdotool getwindowfocus)) | grep -oEi '"[^"]+"' | head -1
Obteniendo el nombre del proceso:
ps -e | grep $(xdotool getwindowpid $(xdotool getwindowfocus)) | grep -v grep | awk '{print $4}'
o:
cat /proc/$(xdotool getwindowpid $(xdotool getwindowfocus))/comm
Más simple (IMO) que la solución de OP (es decir
ps
, singrep
yawk
), para obtener el nombre del proceso:O si quieres un final de línea:
fuente
cat /proc/
es agradable (y podría decirse que es más rápido, ya que no implica englobar todo elps
resultado). Lo agregué a la solución en el cuerpo de la pregunta, para que los futuros usuarios puedan encontrarlo.Pruebe el comando xwininfo, http://www.xfree86.org/4.2.0/xwininfo.1.html , definitivamente devuelve el título de la ventana y, en lo que respecta al proceso, bueno ...
X le asignó un ID y se convirtió en el PID principal de la ventana y también lo ocultaría de manera predeterminada, por lo tanto, suponiendo que Gnome tenga soporte para NET_WM_PID, como lo indica este parche de 2001, http://mail.gnome.org/ archives / gtk-devel-list / 2001-October / msg00238.html , luego podemos revisar esta publicación, http://www.mail-archive.com/[email protected]/msg05809.html , donde el autor escribe un programa C corto para convertir la identificación de la ventana en PID, listo.
fuente
xwininfo
me obliga a seleccionar manualmente la ventana necesaria. Esperaba una forma de obtener la ventana enfocada de bash.Sé que la pregunta es antigua, pero creo que
xprop
también debería mencionarse aquí. Está disponible en X. Se puede usar de forma interactiva:xprop
y seleccione la ventana que desea con el cursor del mouse, luegoWM_NAME
te da el título de la ventana, te_NET_WM_PID
da el pidO puede decir directamente
xprop
qué ventana necesita al pasar-id
u-name
opción. Utilizandoawk
puedes obtener la identificación de la ventana activa y volver a pasarla asíxprop
(tomada de aquí ):Finalmente, usando Your Favourite Tool ™ (p. Ej.
grep
Osed
) puede obtener los valores necesarios. Por ejemplo, parapid
la salida del comando anterior se puede canalizar ased
:sed -nE 's/^_NET_WM_PID.*= ([0-9]+)/\1/p'
fuente