x11idle.c 632 B

123456789101112131415161718192021
  1. #include <X11/extensions/scrnsaver.h>
  2. #include <stdio.h>
  3. /* Based on code from
  4. * http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/
  5. *
  6. * compile with 'gcc -l Xss x11idle.c -o x11idle' and copy x11idle into your
  7. * path
  8. */
  9. main() {
  10. XScreenSaverInfo *info = XScreenSaverAllocInfo();
  11. Display *display = XOpenDisplay(0);
  12. //check that X11 is running or else you get a segafult/coredump
  13. if (display != NULL) {
  14. XScreenSaverQueryInfo(display, DefaultRootWindow(display), info);
  15. }
  16. XScreenSaverQueryInfo(display, DefaultRootWindow(display), info);
  17. printf("%u\n", info->idle);
  18. return 0;
  19. }