diff options
author | toni <matzeton@googlemail.com> | 2015-10-08 14:10:35 +0200 |
---|---|---|
committer | toni <matzeton@googlemail.com> | 2015-10-08 14:10:35 +0200 |
commit | 1e941c775f36817747715152e147452ce78a8d8b (patch) | |
tree | 6b458ada044703ea39522b828f87fdb07bdf571a /xidle.c | |
parent | d41bf82bb2d189fdebc7fa4958d2c01fada1afba (diff) |
stuff
Diffstat (limited to 'xidle.c')
-rw-r--r-- | xidle.c | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +#include <stdio.h> +#include <X11/Xlib.h> +#include <X11/extensions/scrnsaver.h> + + +/* Report amount of X server idle time. */ +/* gcc xidle.c -o xidle -lX11 -lXext -lXss */ + +int main(int argc, char *argv[]) +{ + Display *display; + int event_base, error_base; + XScreenSaverInfo info; + float seconds; + unsigned int d_seconds = 0; + + if (argc == 2) { + d_seconds = atoi(argv[1]); + } + + display = XOpenDisplay(""); + + if (XScreenSaverQueryExtension(display, &event_base, &error_base)) { + XScreenSaverQueryInfo(display, DefaultRootWindow(display), &info); + + seconds = (float)info.idle/1000.0f; + if ( d_seconds > 0 ) { + if (d_seconds <= (unsigned int) seconds) { + return 1; + } + } else { + printf("%f\n",seconds); + } + return 0; + } else { + fprintf(stderr,"Error: XScreenSaver Extension not present\n"); + return -1; + } +} + |