ウィンドウマネージャ
ウィンドウマネージャ(window manager)は、グラフィカルユーザインタフェースのウィンドウシステムにおけるウィンドウの配置や外観を管理するシステムソフトウェア[1]。多くのウィンドウマネージャはデスクトップ環境の一部として動作するよう設計されている。これらは、例えばグラフィックハードウェア、ポインティングデバイス、あるいはキーボードなどを制御する下層のグラフィカルシステムとともに動作する。ほとんどウインドウマネージャは、ウィンドウシステムとウインドウマネージャを明確に区別して設計されていない。ウィンドウメタファーを使用するあらゆるグラフィカルオペレーティングシステムは、実際の機能要素が異なっていようとも、なんらかのウィンドウを管理する[2]。WindowsやMacintoshのようにオペレーティングシステムの機能としてウィンドウマネージャが存在するものもあるが、X Window Systemは、そのものはあくまでサーバ / クライアントの環境を構築するだけであり、その上で機能するアプリケーションは持たない。そのため、X上で機能するさまざまなウィンドウマネージャが開発され、リリースされている。
目次
ウィンドウマネージャの機能
ウィンドウマネージャは、アプリケーションを出力するウィンドウと、ウィンドウを操作するためのメニュー、アプリケーションを起動するためのアイコンから構成され、ウィンドウマネージャによってウィンドウのオープン、クローズ、最小化、最大化、移動、サイズ変更、および動作中のウィンドウの記録を行う。通常は二次元方形のウィンドウを作成し、そこにアプリケーションの内容を出力する。
ウィンドウマネージャによっては、デスクトップ環境の構築(壁紙の制御、アプリケーションアイコンの配置)などの機能を持っているものもあり、単なるウィンドウの制御に留まらないものも多い。
そのほかにも、ウィンドウマネージャそれ自体の仕組みにより、時計、ネットワークモニタ、アプリケーションランチャなどのソフトが付属する、または追加可能なのものもあり、その内容は様々である。
ウィンドウマネージャの種類
ウィンドウマネージャは、そのウィンドウの描画および更新の手法により大きく3種類に分類される。
コンポジット型ウィンドウマネージャ
コンポジット型ウィンドウマネージャ(Compositing window manager)はすべてのウィンドウの生成および描画を独立して行い、さまざまな二次元あるいは三次元環境でそれらを一緒に配置および表示する。これは高度な2Dおよび3D視覚効果によりそのインタフェースに多くの様々なルック&フィールの提供を可能としている。
Mac OS Xはコンポジット型ウィンドウマネージャを実装した初めてのオペレーティングシステムである[3][4]。
スタック型ウィンドウマネージャ
すべてが同じ手法であるとは限らないが、ウィンドウを重なりあって描画し、コンポジット型でないウィンドウマネージャはすべてスタック型ウィンドウマネージャ(stacking window manager)である。スタック型ウィンドウマネージャは、まず背景ウィンドウを描画し、画家のアルゴリズムに従ってウィンドウを重ね合わせて表示することができる。
タイル型ウィンドウマネージャ
タイル型ウィンドウマネージャ(Tiling window manager)は、画面全体を使ってウィンドウをそれぞれ上下左右に並べて配置し、原則として各ウィンドウが他と重なることがない。ウィンドウの生成、破棄によってウィンドウを指定されたレイアウトに基づき動的に再配置するウィンドウマネージャを動的タイル型ウィンドウマネージャという。Microsoft Windows 1.0はタイル型であり、X Window System上で動作するさまざまなタイル型ウィンドウマネージャが存在する。タイル配置とは相性の悪いGUIアプリケーションも存在するため、任意のアプリケーションをフロート配置(アプリケーションの要求するウィンドウサイズで、他と重なる表示を許す)できるウィンドウマネージャもあり、これを動的ウィンドウマネージャ(Dynamic window manager)と呼ぶこともある。