Posted on Sat Oct 31 13:04:17 +0900 2009 by nabeken
今日からあなたもawesomeで快適ウインドウマネージャ生活!
Debian開発者でもあるJulien Danjouが2007年からdwmをベースに開発を開始したtiling window manager(タイル型ウインドウマネージャ)です。 進化に進化を重ね、現在ではawesome自身をa highly configurable, next generation framework window manager(高度にカスタマイズ可能で、ウインドウマネージャのための次世代のフレームワーク)と定義しています。 これまでのタイル型ウインドウマネージャから一皮剥けた形になります。
タイル型ウインドウマネージャの一般的な特徴は日本タイルのWikiを参照してください。
awesomeの主な特徴:
たくさんの Freedesktop.org 標準を実装。
XRandR, Xinerama 対応。
設定ファイルにLuaを採用。
開発はGit上で行なわれています。
awesomeはその活発な開発のためディストリビューション付属のパッケージは古い場合があります。 今からawesome 2.xの使用は上記の利点を失うことになるので、推奨しません。最低でも3.1以上の利用を推奨します。 awesome 2.xと3.xでは操作体系はかわりませんが、設定ファイルと機能が大幅に異なるため、継続的に使うには 2.x は古すぎます。
JulienがDebian開発者ということもあり、彼自身がパッケージングしています。2009年10月現在、Debianにおけるバージョンは以下の通りです。
テスト版ユーザはパッケージをそのまま使用できます。
# aptitude install awesome
インストール後、ログアウトするとディスプレイマネージャのセッションでawesomeが選択できます。
残念なことに、xcb関連のライブラリがlennyに収録されてる1.1とawesomeが要求する1.4で互換性がないため、全パッケージの再ビルドが必要となり、lennyでawesome3.3, 3.4のパッケージをビルドすることは現実的ではありません。 自分でなんとかがんばるか、操作だけでも習得したい場合は非常に残念ですがawesome 2.3.3を使用してください。
# aptitude install awesome
Ubuntu 9.10ではawesome 3.3.4が使用できますので、インストールは簡単に行えます。
# aptitude install awesome
インストール後、ログアウトするとディスプレイマネージャのセッションでawesomeが選択できます。
Gentooでは最新リリースがPortageツリーに入っています。
通常は3.3をインストールすることになるでしょう。
# 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へポストしてくれます。
ここまでで、たどたどしいですが、なんとか使えるようになったはずです。しかし、あと1つ教えなければならないことがあります。 それはウインドウの入れ替えです。
これにはいくつか方法があります。今、ターミナルがmasterとします。Firefoxをmasterにしたい時は、まずフォーカスをFirefoxへ合せます。
Firefox上で、
これで Firefoxがmasterに移動したはずです。フォーカスもFirefoxにあることを確認してください。
もう1つの方法は手動で入れ替える方法です。わかりやすくするために、もう1つターミナルを起動させます。
ウインドウが3つになり、新たに起動したターミナルがmasterに来たはずです。ここで
をすると、ターミナルとFirefoxが入れ替わったと思います。そして、フォーカスはターミナルのままのはずです。もう1度するとどうなるでしょうか。
次はそのとなりのターミナルと入れ替わり、新たに起動したターミナルは右下に移動したはずです。もう1度するとどうなるか考えてみましょう。
最初の位置、つまりmasterへ戻ります。これと逆方向の操作が、
結果はそれぞれで試してみてください。これでとりあえず使うには問題ないはずです。今日の操作をまとめましょう。
他のチュートリアルとしては
が簡単な例とともに画像付きで解説されています。設定ファイルは変わっていますが、キーバインドは変わっていません。こちらも併せてどうぞ。
awesome にはまだまだ機能があります。設定ファイルを読むとまだまだしらない機能があることがわかると思います。
これらを次回のチュートリアルで紹介できればと思います。
なお、本記事は github 上で公開しています。フィードバックがあれば編集、コミット後、pullリクエストをお願いします。(もちろん、指摘のみでも構いません)