Idle detect on multiple X servers

Yan Seiner yan at seiner.com
Thu Jan 12 12:14:03 PST 2012


I have a kiosk that runs several applications on different VTs.  At boot I
start multiple X instances, each on its own vt.  The users can switch
between apllications by the CTRL-ALT-Fn combination.  This works fine.

Now I've been asked to rotate through the displays when the system has
been idle for some time.  this means that I have to detect activity on any
of the vts.  All of the vts run as the same user.

What's the best way to do this?

Can I do something like this:

// loop through possible displays
    display = XOpenDisplay(n);
// if not NULL
    if (XScreenSaverQueryExtension(display, &event_base, &error_base)) {
	XScreenSaverQueryInfo(display, DefaultRootWindow(display), &info);

	seconds = (float)info.idle/1000.0f;
// if all screens have been idle for more than some number of seconds,
start looping through vts

or is there some better way to do this?

-- 
Pain is temporary. It may last a minute, or an hour, or a day, or a year,
but eventually it will subside and something else will take its place. If
I quit, however, it lasts forever.




More information about the xorg mailing list