twmはウィンドウマネージャーのひとつで、特にこれがすごいというところがないのがすごい。
Wikipediaを見るとメンテナンスされていないとか書いてあるけど、2013年9月の頭ぐらいに1.0.8が出たぐらいメンテナンスされている。
導入
twmのいいところは自分で気に食わないところを勝手に改造できるところ。まぁこれは別にオープンソースソフトウェアだったら当たり前だけど、でも大体複雑過ぎていじれる気がしない。Google Chromeのこの部分ちょっと弄りたいと思っても割といじれない。でもtwmのいいところは割と理解しやすいように書かれているので、今までXとか知らなくても割となんとか改造できる。
なのでtwmを使うときは、とりあえずGitで最新版を取ってきてそれをコンパイルして使うようにするのが良いと思う。使っているうちに「あーここ使いにくいなぁ」と思ったら、適当に該当箇所探して自分でパッチ当てて使いやすくする。GitのRepositoryはこちら:
X11については次のサイトをみるとよい:
こんなかんじのコマンドでだいたいコンパイルできる。ヘッダが足りない場合があるので、別途インストールする必要があったりする:
cd ~/src
git clone git://anongit.freedesktop.org/xorg/app/twm
cd twm
./autogen.sh
make
自分はこれでコンパイルしたtwmをstartxコマンドで立ち上げている。startxはXサーバーを立ち上げて~/.xinitrcを実行するだけみたいなコマンド。~/.xinitrcでtwmを立ち上げるように指定する。twmと同時に立ち上がって欲しいプログラムがあれば、それも一緒に指定する。自分の.xinitrcから抜粋するとこんな感じになっている:
xset -b
xset r rate 170 50
udiskie &
xbindkeys
ibus-daemon -d -x
conkey -d -c ~/...
xclock ... &
~/src/twm/src/twm
設定
twmは~/.twmrcを読み込む。どんな設定があるかはman twm
を見よう。(上の方法だとインストールしてないからこれだと見れないと思う。インターネットで検索しよう。)
自分のお気に入りはleftzoomとrightzoomで、WindowsであるWindowsキー+右とかで現在のウィンドウを右半分で最大化するみたいな機能だ。自分は標準のsrc/system.twmrcに加えて、次のような設定にしている:
RandomPlacement
"Tab" = m : all : f.raiselower
"Tab" = m | s : all : f.raise
"Up" = m4 : all : f.fullzoom
"Left" = m4 : all : f.leftzoom
"Right" = m4 : all : f.rightzoom
"Down" = m4 : all : f.iconify
"w" = m4 : all : f.delete
"k" = m4 : all : f.destroy
NoTitle {
"evince"
"xclock"
"google-chrome"
}
twm以外のプログラム
残念ながらtwmは全部入りラーメン的なウィンドウマネージャではないので、ちょっと不満が出てくる。なので他のプログラムを一緒に使うことでそれを補完していく。
上の.xinitrcで出てきたxclockとかconkyはまぁ時計ぐらいはみたいとか、CPU負荷をみたいとかで入れている。それ以外のところはこんなかんじだ:
-
xbindkeys
グローバルなキーバインドを提供するプログラム。例えば自分はCtrl+Enterでターミナルが立ち上がるようにしているし、Ctrl+Shift+EnterでGoogle Chromeが立ち上がるようにしている。あとAlt+Spaceでdmenuっていうランチャーも立ち上がるようにしている。
-
dmenu
上からうにょって出てくるランチャー。自分はターミナルとブラウザが立ち上がれば良いのであんまり使うことはない。
-
xlock
画面をロックする何か。Windows+Lに割り当ててる。
twmの改造
twmは最初に言ったように改造しやすいのが良くて、自分もちょっと改造して使っている。twmを触る前まではXがどうなっているかとか全然わからなかったけど、適当にインターネットみてればわかる。
今のところきちんと動いているのは2つのパッチで:
- ibus-mozcのウィンドウフォーカスがおかしい問題を無理矢理なおすパッチ
- zoom系のコマンドがXinerama(複数モニターに対応するためのX拡張)に対応してなかったので対応させるパッチ
それ以外にもXrandr対応させて、プロジェクタにつないだら自動的にtwmだけ再起動させるパッチとか書いてるんだけどうまく動いてない。ちょっと弄りたいというときに結構わかりやすいのでXがどうなっているのか知るという意味でも結構手頃なソースコードだと思う。(xrandrコマンドのソースはわかりにくい)
まとめ
最初OSXから移行するときは「夜フクロウが〜」とか「iTunesが〜」とか思ってたけど、夜フクロウはMikutterとかTweetDeckとかで割と代用できて、iTunesは諦めてiPod touchで聞けばいいかというようにしたら結構すんなり移行出来た。逆にtwmのSloppy focus?に慣れると、他の環境が微妙に使いにくい。
あと、「twm使ってます」っていうとある年齢より上のおじさまたちが反応するので、キラキラしたアイドル的な人はtwm使うと受けが良いと思います。