Esempio n. 1
0
std::chrono::milliseconds Xidle::operator()() const
{
  XScreenSaverInfo ssi;

  if (!XScreenSaverQueryInfo(display, DefaultRootWindow(display), &ssi)) {
    throw std::runtime_error("could not get screen saver info");
  }

  auto milliseconds = workaroundCreepyXServer(display, ssi.idle);
  return std::chrono::milliseconds{milliseconds};
}
Esempio n. 2
0
long get() {
    if (NULL == dpy || NULL == ssi) {
        return -2;
    }

    if (!XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), ssi)) {
        return -1;
    }

    return workaroundCreepyXServer(dpy, ssi->idle);
}
Esempio n. 3
0
int main(int argc, char *argv[])
{
  XScreenSaverInfo *ssi;
  Display *dpy;
  int event_basep, error_basep;

  if (argc != 1) {
    usage(argv[0]);
    return 1;
  }
  
  dpy = XOpenDisplay(NULL);
  if (dpy == NULL) {
    fprintf(stderr, "couldn't open display\n");
    return 1;
  }
  
  if (!XScreenSaverQueryExtension(dpy, &event_basep, &error_basep)) {
    fprintf(stderr, "screen saver extension not supported\n");
    return 1;
  }

  ssi = XScreenSaverAllocInfo();
  if (ssi == NULL) {
    fprintf(stderr, "couldn't allocate screen saver info\n");
    return 1;
  }   
  
  if (!XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), ssi)) {
    fprintf(stderr, "couldn't query screen saver info\n");
    return 1;
  }
  
  printf("%lu\n", workaroundCreepyXServer(dpy, ssi->idle));

  XFree(ssi);
  XCloseDisplay(dpy);
  return 0;
}
Esempio n. 4
0
unsigned long getIdleTime()
{
  XScreenSaverInfo ssi;
  Display *dpy;
  int event_basep, error_basep;

  dpy = XOpenDisplay(NULL);
  if (dpy == NULL) {
    //fprintf(stderr, "Couldn't open display\n");
    return -1;
  }
  
  if (!XScreenSaverQueryExtension(dpy, &event_basep, &error_basep)) {
    //fprintf(stderr, "Screen saver extension not supported\n");
    return -1;
  }
  
  if (!XScreenSaverQueryInfo(dpy, DefaultRootWindow(dpy), &ssi)) {
    //fprintf(stderr, "Couldn't query screen saver info\n");
    return -1;
  }
  
  return workaroundCreepyXServer(dpy, ssi.idle);
}