WM_COMMAND
プログラムの起動時のコマンドラインを保持するICCCMプロパティ。ログアウト後の再起動用だったが、今でもargvを覗ける窓になっている。
このプロパティはICCCMより古い。1987年のX11R1にすでに XSetCommand があり、argvをNUL区切りの文字列リストとしてトップレベルウィンドウに設定する。Xtのアプリケーションシェルは自動的に設定するので、xterm、xclock、AthenaやMotifのプログラムはすべてこれを持つ。xpropは WM_COMMAND(STRING) = { "xterm", "-geometry", "80x24" } のように表示する。目的はセッション管理だった。ICCCMの初版ではウィンドウマネージャがWM_PROTOCOLS経由で WM_SAVE_YOURSELF を送り、プログラムは現在の状態を再現できるコマンドにWM_COMMANDを更新する(できなければ空にする)。マネージャはそれを読んで保存した。元は rsh がどのマシンでコマンドを実行すべきか知るために置かれた WM_CLIENT_MACHINE と合わせて、これがセッション管理のすべてだった。
ICCCM 2.0は1994年にこの手順をXSMPに置き換える形で非推奨としたが、新方式を学ばなかったプログラムのためにプロパティ自体は残した。xsmのsmproxy、CDEのdtsession、Window Makerのセッション保存はいずれも、次回何を起動するかを記録するためにWM_COMMANDを読む。FVWMの古い FvwmSaveDesk モジュールはこれをシェルスクリプトにそのまま書き出した。GTKとQtはまったく設定しない。残ったのは副作用だ。argvはディスプレイ上のどのクライアントからも読めるので、コマンドラインに書いたパスワードは自分のマシンの ps だけでなく、そのディスプレイに接続できるあらゆるマシンのxpropにも映る。