On Mon, Feb 23, 2004 at 03:12:33AM -0500, Mike wrote:
> Requires EWMH...  I seem to recall reading Tuomo's opinion on this
> standard...  I believe he called it "brain damaged," I am not familiar
> with the details, perhaps someone can englighten us (me?) as to the
> problems...  only concern i see is that it seems to be very much
> oriented toward a "standard" floatWS like environment.

There are a couple of useful hints, lots of useless over-engineered
"modern desktop" and pager crap, and at least one totally brain-damaged
hint.

Ion currently supports the following subset:

    _NET_WM_NAME 
        UTF8 titles
    _NET_WM_STATE == _NET_WM_STATE_FULLSCREEN
        The proper way to for applications go to full screen mode,
        ask the wm to do it
    _NET_VIRTUAL_ROOTS
        This was originally intended to list "virtual root windows" for
        separate workspaces, but Ion uses it to list the virtual root
        window it creates for each Xinerama screen to get around
        Xinerama's root window sharing.

And of course the couple properties that are used to indicate WM
support.

The _NET_WM_PID property together with WM_CLIENT_MACHINE might be useful
if more programs supported it.

The workspace/"desktop" properties do not map nicely to Ion as not 
all our "workspaces" are actually workspaces but single client windows
in full screen mode. 

I don't see a point in generic pager support as they are very tied to 
how the window manager manages windows.

There's no point in apps supporting moving/resizing themselves, so there' 
no need for a _NET_MW_MOVERESIZE message, although it is better than the
apps just doing it all by themselves.

Getting to the over-engineered part, there are a lot of "modern desktop" 
window state/type properties that should not be supported by any WM. The 
ICCCM is enough. Shaded or iconified, what does it matter? And yet there's
no state for just being unviewable, although telling apps the window is
iconified is more than sufficient. All transients should essentially be 
modal, period. The program has no need to control stacking or the appereance
of windows in different lists. What little use I can imagine for these
could be replaced with more abstract hints, for example, some of those in
_NET_WM_WINDOW_TYPE. Although it is in principle a good property, most
of the _NET_WM_WINDOW_TYPEs, esp. -DESKTOP, -MENU and -TOOLBAR  should
never be used, IMO.

Now to the totally brain-damaged part:




     Setting the ICCCM WM_TRANSIENT_FOR property to None or the root
     window means that the window is transient to a whole group of
     windows. This is an absolutely perveted notion, and also in 
     violation of the ICCCM.
     
     
     
     
-- 
Tuomo

Reply via email to