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が使っていたフレーズにちなんでいるJulien Danjou's blog: Taking the other direction (April 15th, 2009)。awesomeウィンドウマネージャは2007年9月20日にdwmのメーリングリスト上で公式にアナウンスされた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 3: Lua integration。awesomeの最初のバージョン（1.x）は、dwmにlibconfigを使用した構成ファイルを実装したもので、構成ファイルの形式はフラットファイルだった。バージョン2.xブランチでは、Danjouは構成ライブラリを、libconfigから、libconfigと少し似ているが別のフラットファイル構成ライブラリであるlibconfuseへ変更した。バージョン2.xの開発中、タイトルバーやアイコン描画などの、多くのカスタマイズ機能が追加された。

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

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

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

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

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

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

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

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

 脚注 

 外部リンク 

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

Category:ウィンドウマネージャ
Category:X Window System
Category:Luaでプログラムされた自由ソフトウェア
Category:Luaでスクリプト可能なソフトウェア