Advertisement
Guest User

Untitled

a guest
Nov 20th, 2022
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.05 KB | Source Code | 0 0
  1. /*
  2.  * sudo apt-get install libxss-dev
  3.  * gcc -Wall idletime.c -o idletime -L/usr/X11R6/lib/ -lX11 -lXext -lXss
  4.  */
  5. #include <time.h>
  6. #include <stdio.h>
  7. #include <unistd.h>
  8. #include <X11/Xlib.h>
  9. #include <X11/Xutil.h>
  10. #include <X11/extensions/scrnsaver.h>
  11.  
  12. int GetIdleTime () {
  13.         time_t idle_time;
  14.         static XScreenSaverInfo *mit_info;
  15.         Display *display;
  16.         int screen;
  17.         mit_info = XScreenSaverAllocInfo();
  18.         if((display=XOpenDisplay(NULL)) == NULL) { return(-1); }
  19.         screen = DefaultScreen(display);
  20.         XScreenSaverQueryInfo(display, RootWindow(display,screen), mit_info);
  21.         idle_time = (mit_info->idle) / 1000;
  22.         XFree(mit_info);
  23.         XCloseDisplay(display);
  24.         return idle_time;
  25. }
  26.  
  27. void SwitchOffMonitor() {
  28.     /* xset dpms force off */
  29.     execl("/usr/bin/xset", "/usr/bin/xset", "dpms", "force", "off", (char*)0);
  30. }
  31.  
  32. int main() {
  33.     int idle_time = GetIdleTime();
  34.     if (idle_time >= 60) {
  35.         SwitchOffMonitor();
  36.     }
  37.         printf("%d\n", idle_time);
  38.         return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement