From 4dbced6b2345ceb73e3eea66bf52d59e6092d9ba Mon Sep 17 00:00:00 2001 From: daniel watson Date: Sun, 31 Jul 2016 11:10:20 -0700 Subject: [PATCH] add notes on tracking screensaver command bug --- TODO | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/TODO b/TODO index 420ae61..30890d8 100644 --- a/TODO +++ b/TODO @@ -9,3 +9,43 @@ FOR SCREENSAVER: * track down bug * compile gnome-screensaver +http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/#comment-1927 +in c: +#include + +main() { + XScreenSaverInfo *info = XScreenSaverAllocInfo(); + Display *display = XOpenDisplay(0); + + XScreenSaverQueryInfo(display, DefaultRootWindow(display), info); + printf("%u ms\n", info->idle); +} +in ruby inline: +require 'inline' + +class XScreenSaver + class << self + inline do |builder| + builder.add_link_flags '-lXss' + builder.include '' + builder.c %{ + double idle_time() { + static Display *display; + XScreenSaverInfo *info = XScreenSaverAllocInfo(); + + if (!display) display = XOpenDisplay(0); + if (!display) return -1; + + XScreenSaverQueryInfo(display, DefaultRootWindow(display), info); + + return info->idle / 1000.0; + } + } + end + end +end + +if __FILE__ == $0 + loop { puts XScreenSaver.idle_time; sleep 0.2 } +end + -- 2.30.2