[Gelöst] Benutzeraktivität feststellen
-
Moin,
ich möchte feststellen, ob ein Benutzer am PC ist. Als Kriterium überwacht man dafür sinnigerweise Maus- und Tastaturaktivität. Die Mausposition kann ich mit XQueryPointer bestimmen, aber wie geht man am einfachsten bei der Tastatur vor?
Man scheint wohl xev jeweils auf das gerade aktive Fenster ansetzen zu können, aber das geht doch etwas weit und es interessiert mich auch gar nicht, welche Tasten genau gedrückt werden.
Eine andere Methode scheint zu sein, dass man die atime der entsprechenden Device-Dateien überprüft, z.B. /dev/input/mouse0. Aber auf Debian-basierten Systemen entspricht diese immer der Zeit des letzten Bootvorgangs, das nützt mir also nicht so viel.
Protokolliert der Kernel oder der X-Server vielleicht die Anzahl der Tastenanschläge mit? Oder gibt es sonst noch eine simple Möglichkeit?
-
Das könnte vielleicht gant nützlich für dich sein:
http://www.ekkaia.org/software/xlib/chap6.php
Gruß
zyon
-
Das Problem damit ist, dass die Events normalerweise nur erzeugt werden, wenn ein Fenster des eigenen Programms den Fokus hat und ansonsten nicht. Ich habe allerdings ein Daemon ohne Fenster.
Hab allerdings etwas brauchbares gefunden:
Bei der X11 Screen Saver Extension gibt es XScreenSaverQueryInfo, womit man die gesuchte Idlezeit sogar millisekundengenau bekommt.