Frage

der X11-Screen Saver Erweiterung Clientbibliothek

Ich versuche, Zeit seit der letzten Benutzereingabe zu erkennen. Ich mache regelmäßig Anrufe XScreenSaverQueryInfo die Leerlaufzeit zu erhalten. Das Problem, das ich bin vor, dass nach jeweils 20 bis 30 Sekunden der Leerlaufzeit, wie durch diesen Aufruf gemeldet, setzt auf 0. Dies geschieht, obwohl es keine tatsächlichen Benutzereingaben in dieser Zeit war. Ich bin total durch diese verwirrt. Das einzige, führen die ich habe ist, dass das Problem verschwindet, wenn ich gnome-screensaver deinstallieren. Meine Frage ist, tut die gnome-screensaver Simulieren Benutzereingaben aus irgendeinem Grund? Ich weiß, es klingt unwahrscheinlich, und wenn ja, es wird auf jeden Fall ein Fehler mit gnome-screensaver sein, aber ich kann jetzt nicht an nichts anderes denken. Weiß jemand, wo ich mehr Informationen darüber, wie gnome-screensaver funktioniert und wie es beeinflusst die XScreenSaverQueryInfo Aufruf durch den Code zu gehen, ohne tatsächlich finden kann. Ich habe durch die Informationen gegangen bei gnome-screensaver Hause konnte aber nichts relevant für mein Problem finden.

Aktualisieren : Ich habe die folgende Ausgabe von dbus-Monitor. Wie interpretiere ich diese:

method call sender=:1.97538 -> dest=org.gnome.ScreenSaver serial=3 path=/org/gnome/ScreenSaver; interface=org.gnome.ScreenSaver; member=SimulateUserActivity

Ich denke, einig Prozess gnome-screensaver zu SimulateUserActivity bittet. Oder ist gnome-screensaver ein SimulateUserActivity Signal zu dbus Senden? Wenn es das erste ist, wie kann ich herausfinden, welches Verfahren gnome-screensaver bittet, das zu tun?

War es hilfreich?

Lösung

Wenn Sie die dbus Sender (wie auf dbus-Monitor angezeigt dort) Sie tun können:

dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetConnectionUnixProcessID string:':1.97538'

in dem eigentlichen Sender anschließen. Das gibt Ihnen die pid, der die Nachricht schickt.

sagen Dann wird die pid 2144, würden Sie tun:

cat /proc/2144/cmdline

als eine Möglichkeit, um zu sehen, was das Programm ist.

Andere Tipps

Ein Programm (Video-Player tut dies während der Videowiedergabe) könnte einen gnome-screensaver-command --poke Befehl aussenden, die ein SimulateUserActivity Ereignis senden die Leerlaufzeit zurückzusetzen, den Bildschirmschoner aktiv wird verhindert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top