/* gcc -o xidletime xidletime.c -lXext -lX11 */ #include #include #include #include #include #include int main(void) { Display *dpy; int i, event, error, count; XSyncSystemCounter *sys; XSyncValue val; dpy = XOpenDisplay(NULL); if (!dpy) return 1; if (!XSyncQueryExtension(dpy, &event, &error)) return 1; sys = XSyncListSystemCounters(dpy, &count); for (i = 0; i < count; i++) if (!strcmp(sys[i].name, "IDLETIME")) { uint64_t v; XSyncQueryCounter(dpy, sys[i].counter, &val); v = ((uint64_t)XSyncValueHigh32(val) << 32) | XSyncValueLow32(val); printf("%" PRIu64 "\n", v); } return 0; }