_NET_SUPPORTING_WM_CHECK
EWMH対応のウィンドウマネージャが本当に動いているかを、死んだマネージャの残した古いプロパティを信用せずに判定するためのハンドシェイク。
ルートウィンドウはウィンドウマネージャより長生きする。そこに書かれた _NET_SUPPORTED、_NET_CLIENT_LIST、_NET_CURRENT_DESKTOP は、クラッシュ後も残り、相変わらず有効に見える。EWMHの答えは「証人」である。ウィンドウマネージャはルートの小さな子ウィンドウ(一度もマップされない)を作り、ルートと子の両方に、子のIDを値とする _NET_SUPPORTING_WM_CHECK を設定する。状態を知りたいプログラムは、ルート上の値を読み、そのIDをたどって、子が存在し、自分自身を指しているかを確認する。ウィンドウマネージャが死ねば、接続とともにウィンドウも消えて鎖が切れ、ルートに残った古い値の正体が暴かれる。
子ウィンドウは _NET_WM_NAME にウィンドウマネージャ名も持ち、wmctrl -m や各種スクリプトが相手が Openbox か KWin か Mutter かを知る手段になっている。ルートには隣に _NET_SUPPORTED があり、マネージャが理解する全 _NET_ アトムを列挙するので、プログラムは全画面や strut を送りっぱなしにせず、先に確かめられる。GTKとQtは起動時にこの検査を行い結果をキャッシュする。起源は1998年のGNOMEの _WIN_SUPPORTING_WM_CHECK で、ICCCM正統の WM_Sn セレクションに一点だけ勝っている。ウィンドウマネージャが存在することだけでなく、何ができるかまで教えてくれる点だ。