既存のWMに関するメモ。 WMのリスト * http://xwinman.org/ * http://en.wikibooks.org/wiki/Guide_to_X11/Window_Managers * http://www.gilesorr.com/wm/table.html いちおうベースとなったWMで分類しているが、派生元とは(特に実装面において)似ても似つかなくなっているものも多い。 = dwm系 = タイル型。タグベースの仮想デスクトップを実装している。 == dwm == 最小主義的。 * 2000行程度のソースが1つしかないので最初はとっつきやすい * パッチが多い * ICCCM/EWMH対応は最低限を抑えているといった感じ == awesome == dwmフォークだが原型を留めていない。Luaによるカスタマイズ性が特徴。タイル型ではかなりメジャーな方。 * CとLuaで書かれている * XCBを使って書かれたWMの先駆け? == monsterwm == dwmよりさらに短い。よりシンプルな作りでコメントも豊富なので読みやすい * dwmから色々取っ払って部分的に機能を増した印象。ちゃんと読んでない = aewm系 = スタック型。思い切った設計。 == aewm == evilwmの元になったWM。とてもコンパクト。 * ウィンドウには1つのボタンを備えたタイトルバーがつく * マウスのボタンを駆使してあれこれする感じ * 最小化したウィンドウを自力で元に戻せない(!) * 他のプログラム(タスクバーとか)に任せるらしい * C++で書かれたaewm++というのもある == evilwm == スタック型だが、装飾を廃している点が特徴。 * 名前の割にコードはすごく親切で読みやすい * EWMH対応が参考になる。ソースファイルが分割されていて(ewmh.c)、対応状況もテキストファイルにまとまっている * ウィンドウの装飾はないがちゃんとre-parentしている * マルチディスプレイに関しては特に何もしていない(DisplayWidthとDisplayHeightをそのまま使っている) * 完全に無視しているという訳でもなく、XRandRの設定変更イベントは拾っている = blackbox系 = スタック型。比較的多機能で軽い。 == openbox == LXDEのWM。DEの一部になっているWMの中ではおそらく小さい方 * Glib+Xlibで書かれている * 設定ファイルはXML = twm系 = X標準WMの系譜。 == twm == X標準のWM。独特の操作体系を備える。 == vtwm == twmにスクロール型の仮想デスクトップ機能を追加。 = その他 = == i3 == フルスクラッチで書かれたタイル型WM。XCBを用いている。 * ウィンドウを木構造で管理しており、柔軟にレイアウトを変えられる * 仮想デスクトップの扱いが独特 * screencast: http://www.youtube.com/watch?v=Wx0eNaGzAZU == tinywm == 最小。最低限何をすればいいかが分かる。 == winman == Xlib Programming Manual Volume Oneに載ってるサンプルコード。twmから色々な機能を除いた感じか?