wmctrl
詳細情報
- 作者
- Tomáš Stýblo
- 公開年
- 2003年
- 種類
- コマンドラインツール
- ライセンス
- GPL
EWMH準拠のウィンドウマネージャーをコマンドラインから操作するツール。ウィンドウ一覧、アクティブ化、最大化、デスクトップ切り替えを、ページャーが送るのと同じメッセージで行う。
EWMHがタスクバーやページャーとウィンドウマネージャーの対話を定めたことで、それをスクリプトから行うプログラムが書けるようになった。Tomáš Stýbloが2003年に公開し、2005年の1.07が最終版で、今もディストリビューションが小さなパッチを当てて配布している。wmctrl -lはID・デスクトップ・タイトル付きで全ウィンドウを一覧し、-a "Firefox"は最初に一致した窓を前面化、-s 2は3番目のデスクトップへ切り替え、-dはデスクトップと作業領域を一覧し、-r window -b add,maximized_vert,maximized_horzは窓自身のボタンと同様に_NET_WM_STATEを変える。-mは_NET_SUPPORTING_WM_CHECKから、動作中のウィンドウマネージャーを知らせる。
このツールは窓に直接触れない。すべてルートウィンドウへのClientMessageとして送られるため、ポリシーはウィンドウマネージャーが保持する。アクティブ化は発信元を「pager」にして送られるので、フォーカススティール防止もユーザーの意思として通す。ログイン時に窓を並べるスクリプトには地味で信頼できる選択肢であり、EWMHが及ばずXTESTが必要な場面ではxdotoolが引き継ぐ。Waylandでは、他のクライアントの窓を見ることが許されないため一切動かず、コンポジターごとに専用コマンドがある。