[Bug 1419] please resurrect the "XIdle" extension from X11R5

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Feb 7 11:37:26 PST 2005


Please do not reply to this email: if you want to comment on the bug, go to            
the URL shown below and enter yourcomments there.     
   
https://bugs.freedesktop.org/show_bug.cgi?id=1419          
     




------- Additional Comments From jwz at jwz.org  2005-02-07 11:37 -------
The MIT-SCREEN-SAVER extension takes this approach:

   - when the user is idle, immediately map full screen
     black windows on each screen;

   - inform the screen saver client that the screen is now
     black;

   - when user activity occurs, unmap the windows an inform
     the screen saver client.

The screen saver client can specify a few parameters of that
window, like visual and depth, but that's it.

The way xscreensaver works is:

   - detect when the user is idle;

   - optionally fade the screen slowly to black (by playing
     games with gamma and/or colormaps);

   - map a black window or windows.  note that in xinerama-
     mode, it may map more than one window per X screen (to
     achieve the effect of having different graphics on each
     monitor.)

   - choose a screen saver to run, and choose an appropriate
     visual for it (e.g., different visuals may be needed
     for "normal" X programs than for OpenGL programs.)

   - after a timeout, choose a different screen saver to
     run.  If the new one needs a different visual, create a
     new window for it and destroy the old window.

   - detect user activity;

   - optionally fade the desktop in from black.

So what this comes down to is that xscreensaver just *can't*
use the window that was created by the MIT extension.  It
appears on screen too early, is removed from the screen too
early, its visual cannot be changed after it was created,
and there might be one window instead of four.

There's a lot of complicated logic and policy up there,
related to when and what manner of windows get mapped when
the user is idle.  Currently, the MIT extension is dictating
policy, and that policy belongs in a client, not in the
server.

Also, in my experience, use of the MIT extension led to
occasional server crashes on various systems.  Given its
other shortcomings, I never bothered to track that down, and
instead, just disabled it by default in xscreensaver long
ago.

So, yeah, I don't really have much desire to see the
MIT-SCREEN-SAVER extension fixed, because, not to mince
words, I think it's junk...

SGI had their own SCREEN-SAVER extension that just reported
two events: "user is idle" and "user is no longer idle."  I
was able to make good use of that in xscreensaver.  However,
given the namespace collisions, it wouldn't be possible for
the MIT and SGI savers to exist simultaniously in either the
same X server or the same X client.  So porting/cloning that
extension isn't really an option.

So I think that XIDLE is our best bet.

For my purposes, a single per-display query that gives me
the time at which the last user input occurred would be
sufficient.

If we're talking about extending XIDLE with additional
features, one thing that would be useful would be a way to
feed idle times back upstream: for example, xscreensaver
would sometimes like to say "consider the user to be idle
now" and "consider the user to no longer be idle now."

I don't think that per-Screen idle-reporting would be
particularly useful.  99.9% of the people who have multiple
monitors use Xinerama instead of multiple screens per
display, and such a thing wouldn't work in that case anyway.

The old XIDLE code is here:
http://ftp.rge.com/pub/X/X11R5/contrib/xidle.tar.gz

(I wanted to check out XEVIE and see if perhaps it would be
appropriate for to be making use of that in xscreensaver,
but all the links on http://freedesktop.org/Software/XEvIE
are 404.)          
     
     
--           
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email         
     
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


More information about the xorg-bugzilla-noise mailing list