Question

Je suis en train de détecter fois depuis la dernière entrée d'utilisateur à l'aide de la bibliothèque client de l'écran X11 Saver extension. Je fais des appels périodiques à XScreenSaverQueryInfo pour obtenir le temps d'inactivité. Le problème que je suis confronté est que, après toutes les 20-30 secondes le temps d'inactivité, tel que rapporté par cet appel, se remet à 0. Cela se produit même si il n'y a pas d'entrée d'utilisateur réel dans ce moment-là. Je suis tout à fait perplexe par cela. Le qu'aboutir j'est que le problème disparaît si je désinstaller gnome-screensaver. Ma question est, fait les entrées utilisateur de gnome-screensaver Simuler pour une raison quelconque? Je sais que cela semble peu probable, et si elle le fait, il sera très certainement un bug avec gnome-screensaver, mais je ne peux pas penser à autre chose en ce moment. Est-ce que quelqu'un sait où je peux trouver plus d'informations sur la façon dont gnome-screensaver fonctionne et comment il influe sur l'appel XScreenSaverQueryInfo sans avoir à passer par le code. Je suis passé par l'info à gnome-screensaver maison mais n'a pas pu trouver quoi que ce soit pertinent à ma question.

Mise à jour : Je suis la sortie suivante de dbus-moniteur. Comment puis-je interpréter ceci:

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

Je pense que certains processus demande gnome-screensaver à SimulateUserActivity. Ou, est-gnome-screensaver envoyer un signal SimulateUserActivity à dbus? Si elle est la première, comment puis-je savoir quel processus demande gnome-screensaver de le faire?

Était-ce utile?

La solution

Une fois que vous avez l'expéditeur dbus (comme indiqué sur dbus-moniteur là-bas) vous pouvez faire:

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

brancher l'expéditeur réel. Cela vous donne le pid qui est l'envoi du message.

Ensuite, dire le pid est 2144, vous feriez:

cat /proc/2144/cmdline

comme un moyen de voir ce que le programme est.

Autres conseils

Un programme (lecteurs vidéo fait cela tout en jouant la vidéo) pourrait être l'envoi d'une commande gnome-screensaver-command --poke qui enverra un événement SimulateUserActivity pour réinitialiser le temps d'inactivité qui empêchera écran devient actif.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top