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のフォークとして出現し、高い拡張性を具備するが、ウィンドウマネージャのデフォルト設定は意図的に簡素化してある。開発者はそれをユーザのニーズに適応し拡張する「フレームワークウィンドウマネージャ」と呼んで作成した。
設定とカスタマイズ.
当初から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」と呼ばれるものがあり、これにはアーケードゲームスペースインベーダーのクローンが含まれている。