_NET_WM_STATE
Свойство EWMH со списком состояний окна, от «развёрнуто» и «полный экран» до «всегда сверху», и способ, которым программа просит их изменить.
По ICCCM у окна было по сути два состояния — обычное и свёрнутое в значок, — записанные в WM_STATE. Всё остальное, что изобрели оконные менеджеры 1990-х (разворачивание, сворачивание в заголовок, «липкие» окна), было личным делом менеджера и невидимо другим программам. EWMH исправил это списком: свойство _NET_WM_STATE на окне содержит ноль или больше атомов, например _NET_WM_STATE_MAXIMIZED_VERT, _FULLSCREEN, _STICKY, _SHADED, _ABOVE, _BELOW, _HIDDEN, _SKIP_TASKBAR и _DEMANDS_ATTENTION. Список ведёт оконный менеджер, так что панель задач может его прочитать и показать нужное.
После отображения окна программа не вправе писать в список напрямую. Вместо этого она шлёт ClientMessage корневому окну с двумя атомами и действием: 0 — убрать, 1 — добавить, 2 — переключить. Так видеоплеер просит полный экран, а терминал — остаться сверху, но решает менеджер. Два атома нужны ради разворачивания: иначе это были бы два шага с заметным рывком. До отображения программа может выставить свойство сама как запрос начального состояния.