evilwm standards support

evilwm (1.1 pre-release) supports a subset of the X Desktop Group's Extended Window Manager Hints (EWMH), version 1.3. This page lists what is supported, what is not yet supported and where ambiguities have not yet been resolved.

EWMH root window properties (and related messages)

_NET_SUPPORTED
This property is set on each managed root window, and lists all EWMH atoms used within evilwm. This includes all the relevant _NET_WM_ACTION atoms, although I'm not sure it makes sense to include those, as they get listed under the similar per-client _NET_WM_ALLOWED_ACTIONS property.
_NET_CLIENT_LIST
_NET_CLIENT_LIST and _NET_CLIENT_LIST_STACKING are kept up to date.
_NET_NUMBER_OF_DESKTOPS
This is currently always set to 8 (the number of virtual desktops evilwm has historically supported). Clients cannot yet alter this value, though I intend to add that ability.
_NET_DESKTOP_GEOMETRY
Set to the display geometry. Modifying not allowed.
_NET_DESKTOP_VIEWPORT
Always set to (0,0).
_NET_CURRENT_DESKTOP
Property is supported, and client messages requesting desktop change are accepted.
_NET_ACTIVE_WINDOW
Property is supported, and client messages requesting a change of active window are accepted if their source indication suggests they came as a result of direct user action.
_NET_WORKAREA
Currently always indicates the entire display as work area (does not calculate anything based on struts).
_NET_SUPPORTING_WM_CHECK
Will refer to evilwm's supporting window.

Other EWMH root window messages

_NET_CLOSE_WINDOW
Message is respected if source indication suggests it came from direct user action.
_NET_MOVERESIZE_WINDOW
Message is respected if source indication suggests it came from direct user action.
_NET_RESTACK_WINDOW
Message is respected if source indication suggests it came from direct user action.
_NET_REQUEST_FRAME_EXTENTS
evilwm always estimates the configured border width for each frame edge. A better value could be determined by analysing the window hints in the same way as creating a new window, but it's only got to be an estimate, so I've not done that yet.

EWMH application window properties

_NET_WM_NAME
This is set to "evilwm" on the supporting window, but not currently consulted for client window titles (the title in WM_NAME is used instead).
_NET_WM_DESKTOP
This is maintained on all client windows. On virtual desktop change, this property is changed for any "fixed" windows to be the new virtual desktop. It is also accepted as a client message indicating user action to change a window's current virtual desktop.
_NET_WM_WINDOW_TYPE
These window types affect behaviour:
_NET_WM_WINDOW_TYPE_DESKTOP
evilwm ignores windows of this type, allowing them to act as a fake root window (e.g., Nautilus).
_NET_WM_WINDOW_TYPE_DOCK
Applications that declare themselves to be a dock can have their visibility toggled with a key combination.
_NET_WM_STATE
Some states are supported:
_NET_WM_STATE_MAXIMIZED_VERT
_NET_WM_STATE_MAXIMIZED_HORZ
_NET_WM_STATE_HIDDEN
Advertised but never set: pagers should show "Iconic" windows (on other virtual desktops) that don't have _NET_WM_STATE_HIDDEN set.
_NET_WM_STATE_FULLSCREEN
Currently, as evilwm does not calculate any sort of "work area", the fullscreen hint is considered equivalent to having both the vertically and horizontally maximised hints set. These hints are respected on initial management of a window, and clients can send _NET_WM_STATE messages to change them.
_NET_WM_ALLOWED_ACTIONS
Some actions are allowed:
_NET_WM_ACTION_MOVE
_NET_WM_ACTION_RESIZE
Listed only if window is capable of being resized (min height != max height).
_NET_WM_ACTION_MAXIMIZE_HORZ
_NET_WM_ACTION_MAXIMIZE_VERT
_NET_WM_ACTION_FULLSCREEN
As noted above, requesting fullscreen is currently equivalent to requesting both vertical and horizonal maximisation.
_NET_WM_ACTION_CHANGE_DESKTOP
_NET_WM_ACTION_CLOSE
_NET_WM_PID
This property is set on the supporting window, but is not consulted when dealing with client windows. Additionally, the WM_CLIENT_MACHINE property is not yet set.
_NET_FRAME_EXTENTS
Each frame extent is set to the border width that applies to the client.

Unsupported EWMH properties

_NET_DESKTOP_NAMES
_NET_VIRTUAL_ROOTS
evilwm does not use virtual root windows.
_NET_DESKTOP_LAYOUT
_NET_SHOWING_DESKTOP
evilwm does not have a "showing the desktop" mode.
_NET_WM_MOVERESIZE
_NET_WM_VISIBLE_NAME
The real WM_NAME is displayed when requested.
_NET_WM_ICON_NAME
_NET_WM_VISIBLE_ICON_NAME
evilwm does not support iconification.
_NET_WM_WINDOW_TYPE
These window types are unsupported:
_NET_WM_WINDOW_TYPE_TOOLBAR
_NET_WM_WINDOW_TYPE_MENU
_NET_WM_WINDOW_TYPE_UTILITY
_NET_WM_WINDOW_TYPE_SPLASH
_NET_WM_WINDOW_TYPE_DIALOG
_NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_STATE
These states are unsupported:
_NET_WM_STATE_MODAL
_NET_WM_STATE_STICKY
_NET_WM_STATE_SHADED
_NET_WM_STATE_SKIP_TASKBAR
_NET_WM_STATE_SKIP_PAGER
_NET_WM_STATE_ABOVE
_NET_WM_STATE_BELOW
_NET_WM_STATE_DEMANDS_ATTENTION
_NET_WM_ALLOWED_ACTIONS
These actions are unsupported:
_NET_WM_ACTION_MINIMIZE
_NET_WM_ACTION_SHADE
_NET_WM_ACTION_STICK
_NET_WM_STRUT
_NET_WM_STRUT_PARTIAL
_NET_WM_ICON_GEOMETRY
_NET_WM_ICON
_NET_WM_HANDLED_ICONS
evilwm does not support iconification.
_NET_WM_USER_TIME
_NET_WM_PING
_NET_WM_SYNC_REQUEST