Re: Do-not-disturb protocol

On 2006-01-18, Nicolas George <nicolas george ens fr> wrote:
> I wonder if anyone has considered a "do not disturb" protocol (according to
> the archives, the answer seems to be no): a protocol that would allow a
> video player to tell the instant-messaging clients to be quiet while the
> user is watching a movie.
> Such a protocol would probably be rather simple to design and implement (a
> simple property on the root window could almost do the trick), and it seems
> to me a straightforward and useful extension to a modern multimedia desktop
> environment.

Aside from the screen saver, it's the window manager's job to stop programs
from disturbing whatever is going on, and any other program that overrides
the WM is already doing things completely wrong. A simple DO_NOT_DISTURB_HINT
property on the window itself (or flag in some other property) suffices.

If desired, the window manager can then also display an unobtrusive 
hint in full screen mode, indicating that something has happened
elsewhere. Ion already does this for transients and other windows that
have been deemed to not be switched to immediately, or windows that
set the Urgency flag.

However, are there any other uses for such a hint besides video players? In
most cases not disturbing the user should be done differently from such a
passive property. I think no window should be switch to if there's recently
been user activity in the active window (_NET_WM_USER_TIME) unless the new
window was opened by user action from this one (may be separate program!),
but there's no protocol for that. (If there were such a generic protocol for
passing hints to the wm between execs, Ion could do a lot of things more
sanely. Not that I expect to ever
cover such things.) A video player could in such case simply set the user
activity time frequently, although it does eat a bit of resources. So, if
there are no other uses of a DO_NOT_DISTURB property, it being set is linked
to screensaver disablation also, and perhaps those could be fused somehow...


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]