tewmh.1 - glazier - window management experiments
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
tewmh.1 (2742B)
---
1 .Dd 2020-06-07
2 .Dt EWMH 1
3 .Os POSIX.1
4 .Sh NAME
5 .Nm ewmh
6 .Nd EWMH compliance daemon
7 .Sh SYNOPSIS
8 .Nm ewmh
9 .Op Fl h
10 .Sh DESCRIPTION
11 .Nm
12 is a user-space daemon that listens for X notify events, and respond to
13 them by setting Extended Window Manager Hints on the root window, as specified by
14 the specification.
15 .Pp
16 Some applications require an EWMH compliant window manager in order to
17 function properly. Many window managers, however do not comply to the
18 specification, which end up with unexpected behavior for these
19 applications, when they even start at all.
20 .Pp
21 .Nm
22 aims to provide a sane amount of hints, so that most
23 applications can function properly with a non EWMH compliant window
24 manager.
25 .Sh IMPLEMENTATION NOTES
26 .Ss _NET_SUPPORTED
27 The whole specification cannot be fully implemented in an external tool,
28 for multiple reasons (need to redirect root window events, keep track
29 of window states, …).
30 .Pp
31 Only the following atoms are supported by
32 .Nm :
33 .Pp
34 .Bl -bullet -compact
35 .It
36 _NET_SUPPORTED
37 .It
38 _NET_SUPPORTING_WM_CHECK
39 .It
40 _NET_WM_STATE
41 .It
42 _NET_WM_STATE_FULLSCREEN
43 .It
44 _NET_CLIENT_LIST
45 .It
46 _NET_CLIENT_LIST_STACKING
47 .It
48 _NET_ACTIVE_WINDOW
49 .It
50 _NET_WM_WINDOW_TYPE (all types)
51 .El
52 .Ss _NET_SUPPORTING_WM_CHECK
53 The specification require that a running window manager creates a window
54 and point the hint to this window.
55 .Nm
56 will set the override_redirect property on this window so that non-EWMH
57 compliant window manager will ignore it as well.
58 .Ss _NET_WM_STATE
59 The only supported state in _NET_WM_STATE_FULLSCREEN. When such event
60 is sent to the root window,
61 .Nm
62 will respond to the event accordingly. When setting a window fullscreen,
63 its current position, size and border width are saved in an atom named
64 ORIGINAL_SIZE.
65 .Nm
66 needs this atom to revert the window back to its original state.
67 .Ss _NET_CLIENT_LIST
68 .Ss _NET_CLIENT_LIST_STACKING
69 These atoms hold the list of windows that are managed by the window manager
70 (override_redirect unset), and/or have the hint _NET_WM_WINDOW_TYPE set to one of those values
71 .Pp
72 .Bl -bullet -compact
73 .It
74 _NET_WM_WINDOW_TYPE_UTILITY
75 .It
76 _NET_WM_WINDOW_TYPE_DIALOG
77 .It
78 _NET_WM_WINDOW_TYPE_NORMAL
79 .El
80 .Pp
81 Because we don't know the order in which the running window manager is
82 storing the windows, _NET_CLIENT_LIST also displays the window IDs in
83 their stacking order.
84 .Pp
85 All other windows will have their
86 .Em override_redirect
87 attribute forcely set to 1, so that window managers without support for
88 EWMH atoms can ignore them.
89 .Ss _NET_ACTIVE_WINDOW
90 This hint is updated whenever an event of type
91 .Em FOCUS_IN
92 is generated. This should usually match the currently active window from
93 the window manager point of view.
94 .Sh SEE ALSO
95 .Xr glazier 1
96 .Sh AUTHORS
97 .An Willy Goiffon Aq Mt dev@z3bra.org