Help us understand the problem. What is going on with this article?

軽量ウィンドウマネージャーtwmを使う

More than 5 years have passed since last update.

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使うと受けが良いと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away