Awesome

awesome（オーサム）は、X Window System上で動作する動的タイル型ウィンドウマネージャ。CおよびLua言語で開発されている。その開発はdwmからフォークして始まり、超小型かつ高速であること、フロート配置、タイル配置、およびそれらの複合といった複数のレイアウトをサポートすることを目指している。awesomeは他の多くのタイル型ウィンドウマネージャと同様に、利用者がマウスを使わずに生産的にウィンドウ管理を行うことができるよう努めている。また、Pangoマークアップ言語やD-Busもサポートしている。

フォークした当初はjdwmと呼ばれていたが（“J”はawesomeの開発者であるJulien Danjouの頭文字）、2007年9月にGitリポジトリが用意されたときにawesomeとされた。それはアメリカのコメディドラマ『How I Met Your Mother』のキャラクターBarney Stinsonが使っていたフレーズにちなんでいる。awesomeウィンドウマネージャは2007年9月20日にdwmのメーリングリスト上で公式にアナウンスされた。

プロジェクトの目標 

awesomeは外部構成ファイルによるカスタマイズ機能を持つdwmのフォークとして出現し、高い拡張性を具備するが、ウィンドウマネージャのデフォルト設定は意図的に簡素化してある。開発者はそれをユーザのニーズに適応し拡張する「フレームワークウィンドウマネージャ」と呼んで作成した。

特徴 
 さまざまなウィジェット（テキストおよびアイコンボックス、グラフ、プログレスバーなど）が含まれる画面ごとの複数のステータスバー。
 マウスに依存しない、キーボード操作による迅速化を可能とするデスクトップ環境。
 マルチヘッド（XRandR、Xinerama、またはZaphodモード）をサポート。
 多くのFreedesktop.org標準の実装（EWMH、XDG Base Directory、XEmbed、Desktop Notification、System Tray）。
 リアル透明化サポート（コンポジットエクステンションおよびxcompmgrを使用）
 ワークスペースの代わりにタグを使用。
 Luaスクリプトの構成ファイルによる完全なカスタマイズ性。
 環境を操作する各機能のキー、マウスボタンへのバインドおよびD-Bus経由によるリモート実行が可能（awesome-client）。

設定とカスタマイズ 
当初からawesomeは、dwmの外部構成ファイルを使用するフォークとして考えられていた。そのため、その構成ファイルフォーマットおよび構成プロセスには、開発者によって特別な注意が払われた。一方で、バージョンアップのたびにしばしば構成ファイルの仕様が（後方互換性なしに）変更されている。

初期の構成ファイルのフォーマット 
バージョン3より前は、awesomeの特徴と言えば、Danjuが「複雑ではない構成設定」と呼んだものだった。awesomeの最初のバージョン（1.x）は、dwmにlibconfigを使用した構成ファイルを実装したもので、構成ファイルの形式はフラットファイルだった。バージョン2.xブランチでは、Danjouは構成ライブラリを、libconfigから、libconfigと少し似ているが別のフラットファイル構成ライブラリであるlibconfuseへ変更した。バージョン2.xの開発中、タイトルバーやアイコン描画などの、多くのカスタマイズ機能が追加された。

新しい構成ファイル 
2008年5月20日、Danjouはawesomeメーリングリスト上において、バージョン3から新しいフォーマットの構成ファイルを使用することをアナウンスし、構成ファイルはLua言語で記述されることが示唆された。Danjouは、新しいフォーマットとLuaの統合により、彼が以前は不可能であると考えていた方向でawesomeユーザーはawesomeをカスタマイズできると主張した — 構成設定のためにプログラミング言語を使用することは、構成オプションをダイナミックに指定することを可能にした。新しい構成ファイルのパスは $HOME/.awesomerc.lua とされ、後に $XDG_CONFIG_HOME/awesome/rc.lua へ変更された。

awesomeのLua APIはawesomeのホームページで公開されており、構成設定のチュートリアル形式の記事がawesome wikiに掲載されている。

awesome configuration converter 
バージョン2.xから移行するユーザのために、awesome configuration converter（acc）が開発されている（2009年7月現在、開発中であり、まだ使用できない）。

テーマとウィジェット 
awesomeは、Beautifulライブラリを使用してテーマ（またはスキン）を導入することができる。rc.lua構成ファイルにあわせ、テーマもLuaで記述し、ダイナミックなテーマ作成が可能となっている。

awesome 3.2.1のデフォルト設定では、ステータスインジケータの類（ワイヤレスネットワークステータス、バッテリインジケータなど）はないが、これらをウィジェットを使って追加することができる。ウィジェットはメイン構成ファイルで定義され、ウィジェットのデータは任意のLuaコードを使用して供給される。

ウィジェットを作成するときに使用できる、Wicked Luaライブラリも用意されている。Wickedはawesomeには同梱されないが、Debian、Arch Linux、Gentoo Linuxなどを含む多くのディストリビューションから提供されている。

XCBへの移行 
2008年9月18日にリリースされたバージョン3.0では、X Serverとの通信にXCBライブラリを使用し、Xlibの代わりにこのライブラリを使用した初めてのウィンドウマネージャとなった。

Invadersモジュール 
awesome標準ライブラリの中には「invaders」と呼ばれるものがあり、これにはアーケードゲームスペースインベーダーのクローンが含まれている。

脚注

外部リンク 

 公式ウェブサイト
 カスタマイズ例
 Manページ
 スクリーンショット
 Julien Danjouのブログ: Space invaders for awesome
 日本タイル型ウィンドウマネージャ推進委員会: awesome
 タイル型ウィンドウマネージャawesome、知ってますか？ - ZDNet Japan

ウィンドウマネージャ
X Window System