From: daniel watson Date: Sun, 31 Jul 2016 18:10:20 +0000 (-0700) Subject: add notes on tracking screensaver command bug X-Git-Url: http://challenge-bot.com/repos/?p=ozzloy%40gmail.com%2Foble;a=commitdiff_plain;h=4dbced6b2345ceb73e3eea66bf52d59e6092d9ba add notes on tracking screensaver command bug --- 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 +