This Plugin can't capture keyboard event when I am at other application (eg. Word) . So if I use other application for a long time and only use keyboard, Spark will be idle (away), but I am not away !
This problem does not appear in MSN, etc.
UserIdlePlugin use global EventQueue capture KeyEvent, this is only useful when current focus on Spark.
I know Java can't capture low level keyboard event unless use native method.
I found use JNA(Java Native Access, https://jna.dev.java.net/ ) can achieve. For examples, on Windows, implements a LowLevelKeyboardProc and set this hook in system.
Attachment is a patch for UserIdlePlugin in trunk which can capture system key event on Win32. This use jna's lib (jna.jar & platform.jar ) .download link : https://jna.dev.java.net/servlets/ProjectDocumentList?folderID=12329&expandFolde r=12329&folderID=0 . On other os, jna does not seem to provide support.