|EWMH(1)||General Commands Manual||EWMH(1)|
ewmh — EWMH
ewmh is a user-space daemon that listens
for X notify events, and respond to them by setting Extended Window Manager
Hints on the root window, as specified by the specification.
Some applications require an EWMH compliant window manager in order to function properly. Many window managers, however do not comply to the specification, which end up with unexpected behavior for these applications, when they even start at all.
ewmh aims to provide a sane amount of
hints, so that most applications can function properly with a non EWMH
compliant window manager.
The whole specification cannot be fully implemented in an external tool, for multiple reasons (need to redirect root window events, keep track of window states, …).
Only the following atoms are supported by
The specification require that a running window manager creates a
window and point the hint to this window.
set the override_redirect property on this window so that non-EWMH compliant
window manager will ignore it as well.
The only supported state in _NET_WM_STATE_FULLSCREEN. When such
event is sent to the root window,
ewmh will respond
to the event accordingly. When setting a window fullscreen, its current
position, size and border width are saved in an atom named ORIGINAL_SIZE.
ewmh needs this atom to revert the window back to
its original state.
These atoms hold the list of windows that are managed by the window manager (override_redirect unset), and/or have the hint _NET_WM_WINDOW_TYPE set to one of those values
Because we don't know the order in which the running window manager is storing the windows, _NET_CLIENT_LIST also displays the window IDs in their stacking order.
All other windows will have their override_redirect attribute forcely set to 1, so that window managers without support for EWMH atoms can ignore them.
This hint is updated whenever an event of type FOCUS_IN is generated. This should usually match the currently active window from the window manager point of view.
Willy Goiffon <firstname.lastname@example.org>