_NET_SUPPORTING_WM_CHECK
Рукопожатие, позволяющее программе решить, работает ли оконный менеджер с поддержкой EWMH, не доверяя свойствам, оставленным умершим менеджером.
Корневое окно переживает оконный менеджер. Всё, что он туда записал — _NET_SUPPORTED, _NET_CLIENT_LIST, _NET_CURRENT_DESKTOP, — остаётся после падения и выглядит как прежде. Ответ EWMH — свидетель: менеджер создаёт маленькое неотображаемое дочернее окно корня и ставит _NET_SUPPORTING_WM_CHECK и на корень, и на него, в обоих случаях с ID этого окна. Программа, желающая узнать состояние, читает свойство на корне, идёт по ID и проверяет, что дочернее окно существует и указывает на самого себя. Если менеджер умер, его окна исчезают вместе с соединением, цепочка рвётся, и устаревшее значение на корне оказывается мусором.
Дочернее окно несёт и _NET_WM_NAME с именем менеджера — так wmctrl -m и разные скрипты узнают, с Openbox, KWin или Mutter они говорят. Рядом на корне лежит _NET_SUPPORTED: список всех атомов _NET_, которые менеджер понимает, так что программа может спросить заранее, прежде чем просить fullscreen или strut, а не слать и надеяться. GTK и Qt выполняют проверку при запуске и кэшируют результат. Приём пришёл из _WIN_SUPPORTING_WM_CHECK GNOME 1998 года и превосходит ортодоксальный по ICCCM селекшен WM_Sn ровно в одном: он говорит, что менеджер умеет, а не только то, что он существует.