cwm
cwm は直感的に使って生産性を高めることができる X11 ウィンドウマネージャです。元は evilwm から分岐して生まれましたが、今ではスクラッチからコードベースが書き直されています。
cwm は OpenBSD のベースシステムとして開発されています。Linux で動作する「ポータブル版」も存在します。
インストール
cwmAUR パッケージが AUR からインストールできます。
設定
cmw は ~/.cwmrc
を編集して設定します。デフォルトの cwmrc
ファイルは存在しません。キーバインドなどのデフォルト設定は全て conf.c に定義されています。cwm(1) にデフォルトのキーバインドが載っており、cwmrc(5) に設定ディレクティブが記載されています。
unbind-key all
と unbind-mouse all
を使うことでデフォルトのキーバインドを全て削除することができます。
ウィンドウグループ
cwm には伝統的な「ワークスペース」が存在しません。かわりとしてウィンドウを「グループ」に割り当てることができます。2つ以上のグループを同時に表示することができ柔軟に運用できます。
例えばチャットや IRC アプリケーションをグループ 4 に配置して、他のウィンドウやグループと一緒に割り当てたキーを使ってグループの表示を切り替えることができます (bind-key <k> group-toggle 4
)。
bind-key <k> group-only <n>
を使って特定のグループのウィンドウだけを表示して、他のウィンドウを非表示にすることも可能です。
新しいウィンドウはデフォルトではどのグループにも配置されないため、常に表示されます (常時表示ウィンドウ)。sticky yes
で “sticky group mode” を有効にすることで、現在選択されているグループに割り当てるようにすることもできます。autogroup
ディレクトリを使うことで自動的にウィンドウをグループ化できます。
ウィンドウの移動
ウィンドウを特定の場所に移動するアクションはありませんが、xdotool を使うことで移動できます。PATH
の通っている場所に以下の cwm-w-mv
スクリプトを配置してください:
#!/bin/sh # Move a window to the side of a screen. case "$1" in "left") xdotool getactivewindow windowmove 0 y ;; "top") xdotool getactivewindow windowmove x 0 ;; "right") screen_width=$(xwininfo -root | grep Width | cut -d: -f2 | tr -d ' ') win_width=$(xdotool getactivewindow getwindowgeometry --shell | grep WIDTH | cut -d= -f2) xdotool getactivewindow windowmove $(( $screen_width - $win_width )) y ;; "bottom") screen_height=$(xwininfo -root | grep Height | cut -d: -f2 | tr -d ' ') win_height=$(xdotool getactivewindow getwindowgeometry --shell | grep HEIGHT | cut -d= -f2) xdotool getactivewindow windowmove x $(( $screen_height - $win_height )) ;; *) echo "Unsupported: \"$1\"" exit 1 esac
そして以下のように cwm にバインド:
bind-key 4-h cwm-w-mv left # Move window to side of the screen. bind-key 4-j cwm-w-mv bottom bind-key 4-k cwm-w-mv top bind-key 4-l cwm-w-mv right bind-key 4-Left cwm-w-mv left bind-key 4-Down cwm-w-mv bottom bind-key 4-Up cwm-w-mv top bind-key 4-Right cwm-w-mv right
上記の設定では Mod4 (‘Windows キー’) と hjkl あるいは方向キーでウィンドウを移動できるようになります。
参照
- OpenBSD ソース
- Portable version
- Example cwmrc: one, two.
- Absolute OpenBSD contains an introduction to cwm.