wmii
最近横に長いディスプレイを使うことが多くて、横幅がもったいないなーと思ってたのでwmiiを使ってみることにした。
簡単に説明しとくと、ウィンドウを横に並べたり縦に並べたりがキーボードだけでできるというウィンドウマネージャ。
WMについて考えるのなんか久しぶりだなー。もうちょっと使ってみてから乗り換えるかどうか考える。
wmiiの面白いところとして、ファイルシステムもどきの仕組みを使って設定ファイルを純粋なシェルスクリプトにしてるという点が挙げられると思う。(純粋なシェルスクリプトて何?awkはシェルスクリプトの一部に含まれますか問題)
まず、基本として、wmiirというツールがありますと。これがファイルシステムもどきを実現してる。
$ wmiir ls / # wmiiファイルシステムのルートディレクトリを列挙 client/ colrules ctl event keys lbar/ rbar/ tag/ tagrules $ wmiir read /ctl # 現在の設定とかが見れる view 0 focuscolors #ffffff #153F1F #2A7F3F normcolors #222222 #5FBF77 #2A7F3F font -shinonome-*-*-r-*-*-14-*-*-*-*-*-*-* grabmod Mod1- border 1
んで、/keys にキーの名前を書き込んでおくと、キーが登録される。
$ wmiir read /keys Mod1-Control-Return Mod1-Control-a Mod1-Control-d (...)
/event を read すれば押されたキーイベントが見れる。
$ wmiir read /event Key Mod1-Control-l (Alt Control lを押した) Key Mod1-Control-h (Alt Control hを押した)
んで、適当に制御とかを組み合わせて色々できる
$ wmiir xwrite /ctl view aho- # 表示するデスクトップを"aho-"デスクトップに変更 $ wmiir xwrite "/lbar/..." # よくわからん
ここらへんが、設定ファイルのために作られた仕組み。設定ファイルのためのファイルフォーマット等は存在していない。
ふつーにインストールすると、/usr/local/etc/wmii-3.5/wmiirc とかに設定ファイルがあってそれがシェルスクリプト。(rc.wmiiとかが多分Plan9のrcのなんか)
wmiir read /event | while read event; do set -- $event event=$1; shift Event_$event $@ 2>/dev/null done
というループがあって、それがなんかぐちゃぐちゃ(説明しろよ)。これより上の部分はこのループを回すための準備みたいな感じで。