_NET_CLIENT_LIST
ウィンドウマネージャが管理する全ウィンドウを列挙するルートウィンドウのプロパティ。タスクバーやページャは、Xサーバの何百というウィンドウのどれが本物のアプリか、推測せずに済む。
XQueryTree でXサーバに尋ねると、ルート以下のツリー全体が返る。ウィンドウマネージャのフレーム、メニュー、ツールチップ、見えない補助ウィンドウ、そして親替え(reparenting)型のマネージャでは二階層下の孫としてアプリのウィンドウが現れる。アプリごとにボタンを一つ出したいタスクバーは、全ての枝で WM_STATE を探してツリーを歩かねばならなかった。GNOME最初のパネルも、1998年のWINヒントの _WIN_CLIENT_LIST でウィンドウマネージャ自身に教えさせるまで、そうしていた。EWMHはこの発想を採用した。ルート上の _NET_CLIENT_LIST は、管理対象のトップレベルウィンドウを、最初にマップされた順に一つずつ並べたウィンドウIDの配列である。
兄弟の _NET_CLIENT_LIST_STACKING は同じウィンドウを下から順のスタッキング順で保持する。ページャがサムネイルを正しく描くのに要り、Alt+Tab の一覧はこれを逆順にして使う。どちらもウィンドウマネージャの持ち物で、ウィンドウの追加、終了、重なり順の変更のたびに更新され、override-redirect のものや一度も管理されなかったものは含まれない。wmctrl -l は本質的に、この一覧に各IDのデスクトップとタイトルを並べて印字したものだ。一覧が呼び出しではなくプロパティであるため、誰でもウィンドウマネージャに尋ねずに読める。逆に、ウィンドウマネージャが後始末なしにクラッシュすると、中身はゴミになる。