Я пытаюсь определить время с момента последнего ввода пользователя с помощью клиентской библиотеки расширения X11 Screen Saver. Я делаю периодические звонки на XScreenSaverQueryInfo
, чтобы получить время простоя. Проблема, с которой я сталкиваюсь, заключается в том, что через каждые 20-30 секунд время простоя, как сообщается в этом вызове, сбрасывается до 0. Это происходит, даже если в это время не было никакого действительного пользовательского ввода. Я полностью озадачен этим. Единственное, что у меня есть, - проблема исчезнет, если я удалю gnome-screensaver
. У меня вопрос: gnome-screensaver
имитирует ли пользовательский ввод по какой-то причине? Я знаю, что это звучит маловероятно, и если это произойдет, это определенно будет ошибка с gnome-screensaver
, но я не могу думать ни о чем другом прямо сейчас. Кто-нибудь знает, где я могу найти больше информации о том, как работает gnome-screensaver
и как он влияет на вызов XScreenSaverQueryInfo
без необходимости проходить через код. Я просмотрел информацию на gnome-screensaver
home , но не смог найти ничего, имеющего отношение к моей проблеме.
Обновление : я получил следующий вывод от dbus-monitor. Как мне это интерпретировать:
method call sender=:1.97538 -> dest=org.gnome.ScreenSaver serial=3 path=/org/gnome/ScreenSaver; interface=org.gnome.ScreenSaver; member=SimulateUserActivity
Я думаю, что какой-то процесс запрашивает заставку gnome для SimulateUserActivity. Или гном-заставка отправляет сигнал SimulateUserActivity на dbus? Если это первое, как я могу узнать, какой процесс запрашивает у gnome-screensaver?