Wie kann ich X-Client-Nachrichten ausspionieren?

8

In einem ständigen Kampf gegen ein hässliches Symbol stellte ich fest, dass Anwendungen mit der Taskleiste kommunizieren können, indem sie X-Client-Nachrichten senden. Gibt es ein Dienstprogramm zum Ausspionieren dieser Nachrichten?

Shawn J. Goff
quelle

Antworten:

8

Führen Sie die Anwendung unter xtrace aus . Die gesamte Kommunikation zwischen der Anwendung und dem X-Server wird protokolliert, einschließlich des Befehls zum Senden oder Empfangen einer X-Client-Nachricht.

xtrace myapp
Gilles 'SO - hör auf böse zu sein'
quelle
Das ist eine Art von dem, was ich zu lösen versuche - welche Anwendung bringt das da hin? Ich habe den Klassennamen des Klassenfensters gnome-power-manager:, aber es gibt keine Anwendung, die so genannt wird. Es gibt nichts, was mit " Power " als Daemon übereinstimmt .
Shawn J. Goff
1
@ ShawnJ.Goff Verfolgen Sie die Serverseite, dh die Taskleiste.
Gilles 'SO - hör auf böse zu sein'
Oh, und sind Sie sicher, dass die Kommunikation über Fensterereignisse und nicht über dbus erfolgt?
Gilles 'SO - hör auf böse zu sein'
1
@ ShawnJ.Goff gnome-power-managerist heutzutage Teil vongnome-settings-daemon
Ulrich Dangel
3

Befehl

    xev -id WINDOW_ID

druckt X11 "Fensterereignisse". In X11 werden diese Dinge "Ereignisse" genannt. (Im Gegensatz zu "Nachrichten" in Microsoft Windows).

Verwenden Sie xwininfo, um die Fenster-ID zu erhalten.

Mann xev, Mann xwininfo.

Andrei
quelle
2
Eine [Client-Nachricht] [1] scheint eine Art Ereignis zu sein. Das freedesktop [Taskleistenspezifikation] [2] spricht speziell von einer "x Client-Nachricht". Auf jeden Fall habe ich das richtige Fenster, xevgebe aber keine Informationen darüber, welches Programm welches Ereignis an dieses Fenster sendet, aber sein Status wird definitiv durch etwas aktualisiert. [1]: tronche.com/gui/x/xlib/events/client-communication/… [2] : standards.freedesktop.org/systemtray-spec/…
Shawn J. Goff