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