¿Cómo puedo espiar los mensajes del cliente X?

8

En una batalla constante contra un icono feo , descubrí que las aplicaciones pueden comunicarse con la bandeja del sistema enviando mensajes de cliente X. ¿Hay alguna utilidad para espiar estos mensajes?

Shawn J. Goff
fuente

Respuestas:

8

Ejecute la aplicación bajo xtrace . Registrará todas las comunicaciones entre la aplicación y el servidor X, incluido el comando para enviar o recibir un mensaje de cliente X.

xtrace myapp
Gilles 'SO- deja de ser malvado'
fuente
Eso es algo de lo que estoy tratando de resolver: ¿qué aplicación está poniendo eso allí? Tengo el nombre de clase de la ventana de clase: gnome-power-managerpero no hay ninguna aplicación llamada así. No hay nada que coincida con " poder " corriendo como un demonio.
Shawn J. Goff
1
@ ShawnJ.Goff Rastree el lado del servidor, es decir, la bandeja del sistema.
Gilles 'SO- deja de ser malvado'
Ah, y ¿estás seguro de que la comunicación es a través de eventos de ventana y no a través de dbus?
Gilles 'SO- deja de ser malvado'
1
@ ShawnJ.Goff gnome-power-manageres hoy en día parte degnome-settings-daemon
Ulrich Dangel
3

Mando

    xev -id WINDOW_ID

imprimirá X11 "eventos de ventana". En X11, estas cosas se llaman "eventos". (A diferencia de los "mensajes" en Microsoft Windows).

Para obtener la identificación de la ventana, use xwininfo.

man xev, man xwininfo.

Andrei
fuente
2
Un [mensaje del cliente] [1] parece ser un tipo de evento. El freedesktop [especificación de la bandeja del sistema] [2] habla específicamente sobre un "mensaje de cliente x". En cualquier caso, tengo la ventana correcta, pero xevno estoy dando ninguna información sobre qué programa está enviando qué evento a esa ventana, pero su estado definitivamente se está actualizando por algo. [1]: tronche.com/gui/x/xlib/events/client-communication/… [2]: standards.freedesktop.org/systemtray-spec/…
Shawn J. Goff el