Re: _NET_WM_HERE (was Re: Do-not-disturb protocol)

On 2006-01-23, Lubos Lunak <l lunak suse cz> wrote:
>  Well, first of all, I disagree with the preferably all part. Most apps seem 
> to do just fine with wherever the WM puts them and they should at most 
> remember their size.

But the WM can't make a good decision without the application giving
enough information.

>  Saving window position in apps has the problem that those apps can never know 
> as much as the WM. 

Which is why it would be better to store some more abstract data reported
by the WM.

>> WM_CLASS/ROLE doesn't do the same thing, as it isn't usually unique for each
>> window. Session management is closer, but it only works over entire stored
>> sessions.
>  But CLASS/ROLE should uniquely identify a window within an application. If 
> some app can't get this right I don't think it'd get something else similar 
> right either.

The number of applications that bother to set class/role to anything
meaningful can be calculated with the fingers of one hand. Most of those
that bother with role at all seem to be KDE/Qt apps. And what about multiple
running instances of the application? Not that _NET_WM_HERE would help over
restarts there either, but it would for running applications popping up
windows. Of course, if programs bothered to set instance to something
different for every running instance of the program, or for every different
"session" that the same process may be running, the properties could be

But I don't think there's any hope of most programs setting the properties
to anything sane, and thus the properties being nevertheless usually set to
something instead of being unset, become useless. Indeed, X session
management doesn't use the class/instance/role properties either. Infact,
another way to think of _NET_WM_HERE would be _NET_WM_UNIQUE_IDENTIFIER for
single-application session management within or across X sessions. A kind of
dynamically configurable class/instance/role with the configuration
interface on the window manager side.


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