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