tags:

views:

106

answers:

2

Hi,

I am trying to make my window manager conform to the ICCCM specifications. I fully understand the reason for the _NET_SUPPORTING_WM_CHECK atom - this ensures that no invalid information stays whenever the window manager isn't running anymore.

What I don't understand is why are no other atoms like _NET_NUMBER_OF_DESKTOPS expected on the supporting window besides _NET_WM_NAME and _NET_SUPPORTING_WM_CHECK itself.

Window managers are supposed to set and overwrite the data but this can be misleading in the case the new window manager isn't compliant.

+1  A: 

Well the atoms that you are talking about are not the ICCCM. They belong to the newer set of EWMH

So basically it goes like this.

First we had the ICCCM. They are

  • old
  • mature
  • supported by most window managers (in full or in part)
  • easy to implement
  • Unix standard

Then we had EWMH that are

  • newer (GNOME and KDE)
  • not many window managers support them
  • more complex (e.g. virtual desktops)
  • A freedesktop standard.

Freedesktop wanted to make the EWMH as broad as possible (apart from GNOME and KDE) and that is why most of the atoms are SHOULD and not MUST. They are giving a chance to small window manager to claim compliance.

kazanaki
I'm not sure I'd agree that "not many" window managers support EWMH. "Not all" perhaps. Certainly most _users_ with a WM have a WM that supports EWMH.
Havoc P
If users are with Gnome and KDE then yes, you are correct!
kazanaki
+1  A: 

I think the idea is you have to check whether a property is supported, and only use it from the root window if it's supported.

The _NET_SUPPORTING_WM_CHECK window was added later after a lot of the other properties already existed, if I remember right.

Havoc P