X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=TODO;h=30890d889c2eda3cf161d05fd0c40650782ef7a7;hb=4dbced6b2345ceb73e3eea66bf52d59e6092d9ba;hp=420ae61fadf69c4407318a8af339d323630bb20d;hpb=26bd50879406ebe65c482d0aafc27a008f0606c4;p=ozzloy%40gmail.com%2Foble 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 +