| 1 | (track this down: |
| 2 | dginn% ./oble -c ~/Downloads/haarcascade_frontalface_alt.xml |
| 3 | Corrupt JPEG data: 160038 extraneous bytes before marker 0x69 |
| 4 | ERROR: frame is null...) |
| 5 | FOR SCREENSAVER: |
| 6 | * gnome-screensaver-command --poke |
| 7 | * find irc channel to ask if my understanding is correct |
| 8 | * file bug |
| 9 | * track down bug |
| 10 | * compile gnome-screensaver |
| 11 | |
| 12 | http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/#comment-1927 |
| 13 | in c: |
| 14 | #include <X11/extensions/scrnsaver.h> |
| 15 | |
| 16 | main() { |
| 17 | XScreenSaverInfo *info = XScreenSaverAllocInfo(); |
| 18 | Display *display = XOpenDisplay(0); |
| 19 | |
| 20 | XScreenSaverQueryInfo(display, DefaultRootWindow(display), info); |
| 21 | printf("%u ms\n", info->idle); |
| 22 | } |
| 23 | in ruby inline: |
| 24 | require 'inline' |
| 25 | |
| 26 | class XScreenSaver |
| 27 | class << self |
| 28 | inline do |builder| |
| 29 | builder.add_link_flags '-lXss' |
| 30 | builder.include '<X11/extensions/scrnsaver.h>' |
| 31 | builder.c %{ |
| 32 | double idle_time() { |
| 33 | static Display *display; |
| 34 | XScreenSaverInfo *info = XScreenSaverAllocInfo(); |
| 35 | |
| 36 | if (!display) display = XOpenDisplay(0); |
| 37 | if (!display) return -1; |
| 38 | |
| 39 | XScreenSaverQueryInfo(display, DefaultRootWindow(display), info); |
| 40 | |
| 41 | return info->idle / 1000.0; |
| 42 | } |
| 43 | } |
| 44 | end |
| 45 | end |
| 46 | end |
| 47 | |
| 48 | if __FILE__ == $0 |
| 49 | loop { puts XScreenSaver.idle_time; sleep 0.2 } |
| 50 | end |
| 51 | |