ウィンドウマネージャ

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