Posted on Thu Mar 03 22:01:40 +0900 2011 by nabeken
今日からあなたもawesomeで快適ウインドウマネージャ生活!
awesome とはDebian開発者でもあるJulien Danjouさんが2007年からdwmをベースに開発を開始した tiling window manager (タイル型ウインドウマネージャ)です。 作者はawesomeを a highly configurable, next generation framework window manager (高度にカスタマイズ可能な次世代のフレームワークウインドウマネージャ)と 謳っています。事実、ユーザはLuaによってウィンドウマネージャの挙動を制御することができます。
タイル型ウインドウマネージャの一般的な特徴は 日本タイルのWiki を参照してください。
awesomeの主な特徴:
2010年以降、開発ペースは落ちついており安定期に入っていると言えます。
awesome のバージョンは2系と3系が存在します。2010年以降のディストリビューションであれば3系が使えるためバージョンを心配する必要はなくなりました。 awesome の2系の使用はお勧めしません。
JulienがDebian開発者ということもあり、彼自身がパッケージングしています。2011年3月現在、Debianにおけるバージョンは以下の通りです。
インストールは apt-get から行なえます。
# aptitude install awesome
インストール後、ログアウトするとディスプレイマネージャのセッションでawesomeが選択できます。
Ubuntu 10.10 (maverick)ではawesome 3.4.5が使用できます。Debian同様、インストールは apt-get から行えます。
# apt-get install awesome
インストール後、ログアウトするとディスプレイマネージャのセッションでawesomeが選択できます。
Gentooでは最新リリースがPortageツリーに入っています。
通常は3.4.8をインストールすることになるでしょう。
# emerge awesome
インストール後、ログアウトするとディスプレイマネージャのセッションでawesomeが選択できます。
このチュートリアルを印刷するか、もしくは別のパソコンで開いて、見ながら試してください。 VMwareやVirtualBoxなどの仮想化環境でawesomeを試すのもいいと思います。本チュートリアルでは、awesome 3.4に準じますが、 設定ファイルが一部異なるだけで、ほとんどは3.3にも当てはまります。
awesomeのキーバインドのprefixはMod4キーです。通常、このキーは左側のWindowsキー、または Command キーです。 この設定は変更できますが、awesome側はMod4のままで、xmodmapを使い、特定のキーをMod4に変更するのが得策です。 スペースキーの左隣りが無変換キーの人は
$ xmodmap -e 'keysym Muhenkan = Super_L'
で、無変換キーを左の Windows キーに割当てられます。英字配列のMacBookだと、Commandキーがちょうどいい位置にあります。 すばらしいですね。みなさん英字配列にしましょう。
まずはターミナルを起動しましょう。ここでは未設定なので、xtermが起動します。
ウインドウが最大サイズで現れたと思います。
$ date | less
date コマンドを実行して時刻を記録しておきましょう。ウインドウがどのように移動したかを追跡します。 もう1つターミナルを起動しましょう。
初めに開いたウインドウがどうなったかを確認してください。ここで、もう1度 date | less を実行してください。 ウインドウが現れた後、どのウインドウにフォーカスが当たったかを確認してください。新しいウインドウにフォーカスが移動しているはずです。 また、ウインドウは縦に分割されたはずです。古いウインドウがどこに移動したかも確認してください。右へ移動したはずです。
しつこいですがもう1度ターミナルを起動します。
同じく、 date | less を実行し、どのようになったか確認してください。一番古いウインドウは右下へ移動しているはずです。 一番新しいウインドウは常に左側に1つだけ出ることも確認してください。 この左側の領域を master と呼び、対して右側を slave と呼びます。作業領域が一番広いのがmasterです。通常はこのmaster領域で作業します。
awesomeの設定を編集しながら基本操作を覚えましょう。
まず、masterのウインドウで q を押し、lessから抜けます。しばらくここで作業を行います。
とにもかくにも、ターミナルにxtermを使っている人は少数派だと思われるので、そこからカスタマイズします。
デフォルトの設定ファイルは /etc/xdg/awesome/rc.lua です。拡張子からもわかるように、設定ファイルは Lua を使っています。 Luaは軽量でアプリケーションの拡張用言語(アプリケーションそのものに組み込まれる)として広く使われています。 デフォルトの設定を自分のホームディレクトリへコピーします。
$ mkdir -p ~/.config/awesome $ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
ユーザ用の設定ファイルは ~/.config/awesome/rc.lua です。
$ vi ~/.config/awesome/rc.lua
masterの領域が少し狭いと感じた人はウインドウを広げてみましょう。
1度押すとウインドウが広がります。広げすぎた場合は
これがウインドウサイズを変える方法です。この操作は頻出なので体に覚えさせましょう。マウスを使う方法もあります。
適当なサイズにできたら、編集に戻ります。
まず12行目の変数terminalを修正しましょう。私は "mlterm --sb=false" にしています。Ubuntu 系の人は "gnome-terminal" などがいいでしょう。
修正したら、awesomeを再起動します。
再起動するとウインドウサイズやフォーカスが元に戻ります。ターミナルも再設定したことなので、一旦すべて閉じましょう。 masterの vi を終了してください。ターミナルであれば、 exit や C-d で閉じれますが、ここでは awesome 的な閉じ方を学びます。
アプリケーションは基本的にこのキーバインドで閉じます。3つのウインドウすべてを同様に閉じましょう。
改めてターミナルを起動します。ここからは練習をかねてawesome内でFirefoxを立ち上げ、このページを見ながら操作してみましょう。 このページのアドレスは http://tinyurl.com/awesome-tutorial になります。
awesome 3.xからはランチャが内蔵されているので、
上部のタグ一覧の右にRun:というプロンプトが出ていることを確認してください。ここでfirefoxを入力し、 Return を押します。 (ちなみに、tabで補完もできます)
……では、awesome内のFirefoxからこのページを再び開いていただけだと思いますので、再開しましょう :-)。 (ただし、説明の都合上、最後まで紙などを併用してください…)
上部左に数字が並んでいるのを確認してください。1から9の9つのタグがあらかじめ用意されています。タグは Gnome や KDE で言うワークスペースです。 ワークスペースと異なるのはそれぞれがマージできるという点です。たとえば、タグ1番と3番を表示する、またはタグ1、2、3、4を表示するなどです。
ブラウザは大きく見たい時と、ブラウザを参照しながらmasterで作業をしたい時のどちらにも対応できるように、ブラウザ専用のタグを決めます。 ここでは、2番のタグをブラウザ専用とします。
今のタグは1番であることを確認した上で、
Firefoxが消え、ウインドウがなにもなくなったことを確認してください。Firefoxがきちんと2番のタグに移動したかを確認しましょう。
Firefoxが現われたはずです。ほっとしたところで、もとのタグへ戻りましょう。
どちらも結果は同じです。そろそろ、キーバインドを追加したくてうずうずしている人はここで設定してみましょう。 ターミナルを起動します。
さて、ここからブラウザを見ながら作業をしたいと思います。この機能はとても重要なので体に覚えさせましょう。
ブラウザがあらわれたはずです。フォーカスを移動する手段をまだ伝えていませんでした。フォーカスの移動は
Firefoxとターミナル間のフォーカスがきちんと移動しているか確認してください。 フォーカスをターミナルにして
$ man awesomerc
とすると、設定ファイルに関する man が読めま……と思ったらまだ整備されていないようです。Luaを使っているので直接読めということでしょうか。 とりあえず、manを閉じて、再び rc.lua を開きます。
$ vi ~/.config/awesome/rc.lua
設定ファイルについては、 Wiki にまとまっています。各用語について定義されているので、一通り目を通してください。
キーバインドはAPI(awesomeの基本APIはawful)のawful.key関数を介して設定します。
見ればなんとなくわかるとようになっています。例えば、これまでに使用したキーバインドは以下のように定義されています。
awful.key({ modkey, }, "Return", function () awful.util.spawn(terminal) end), awful.key({ modkey, }, "l", function () awful.tag.incmwfact( 0.05) end), awful.key({ modkey, }, "h", function () awful.tag.incmwfact(-0.05) end), awful.key({ modkey, "Shift" }, "c", function (c) c:kill() end),
第1引数が修飾キーで、第2引数がそれに対応するキーです。そして、第3引数が実行する関数です。基本的な操作はawfulというライブラリにまとめられています。
特定のコマンドを起動させたい場合は awful.util.spawn(command) を使います。1つ例を挙げると、
awful.key({ modkey, "Control" }, "m", function () awful.util.spawn("/home/nabeken/bin/twitter-update.sh") end),
これを設定すると Mod4+Ctrl+m で今amarokで聞いている音楽をtwitterへポストしてくれます。(http://blog.guillermoamaral.com/2007/03/18/twitter-amarok-update/)
ここまでで、たどたどしいですが、なんとか使えるようになったはずです。しかし、あと1つ教えなければならないことがあります。 それはウインドウの入れ替えです。
これにはいくつか方法があります。今、ターミナルがmasterとします。Firefoxをmasterにしたい時は、まずフォーカスをFirefoxへ合せます。
Firefox上で、
これで Firefoxがmasterに移動したはずです。フォーカスもFirefoxにあることを確認してください。
もう1つの方法は手動で入れ替える方法です。わかりやすくするために、もう1つターミナルを起動させます。
ウインドウが3つになり、新たに起動したターミナルがmasterに来たはずです。ここで
をすると、ターミナルとFirefoxが入れ替わったと思います。そして、フォーカスはターミナルのままのはずです。もう1度するとどうなるでしょうか。
次はそのとなりのターミナルと入れ替わり、新たに起動したターミナルは右下に移動したはずです。もう1度するとどうなるか考えてみましょう。
最初の位置、つまりmasterへ戻ります。これと逆方向の操作が、
結果はそれぞれで試してみてください。これでとりあえず使うには問題ないはずです。今日の操作をまとめましょう。
他のチュートリアルとしては
が簡単な例とともに画像付きで解説されています。設定ファイルは変わっていますが、キーバインドは変わっていません。こちらも併せてどうぞ。
awesome にはまだまだ機能があります。設定ファイルを読むとまだまだしらない機能があることがわかると思います。
これらを次回のチュートリアルで紹介できればと思います。
なお、本記事は github 上で公開しています。フィードバックがあれば編集、コミット後、pullリクエストをお願いします。(もちろん、指摘のみでも構いません)