Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * sudo apt-get install libxss-dev
- * gcc -Wall idletime.c -o idletime -L/usr/X11R6/lib/ -lX11 -lXext -lXss
- */
- #include <time.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <X11/Xlib.h>
- #include <X11/Xutil.h>
- #include <X11/extensions/scrnsaver.h>
- int GetIdleTime () {
- time_t idle_time;
- static XScreenSaverInfo *mit_info;
- Display *display;
- int screen;
- mit_info = XScreenSaverAllocInfo();
- if((display=XOpenDisplay(NULL)) == NULL) { return(-1); }
- screen = DefaultScreen(display);
- XScreenSaverQueryInfo(display, RootWindow(display,screen), mit_info);
- idle_time = (mit_info->idle) / 1000;
- XFree(mit_info);
- XCloseDisplay(display);
- return idle_time;
- }
- void SwitchOffMonitor() {
- /* xset dpms force off */
- execl("/usr/bin/xset", "/usr/bin/xset", "dpms", "force", "off", (char*)0);
- }
- int main() {
- int idle_time = GetIdleTime();
- if (idle_time >= 60) {
- SwitchOffMonitor();
- }
- printf("%d\n", idle_time);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement