X窗口管理器

**X 視窗管理器**是 X 視窗系統中，用來控管視窗外觀和放置方式的視窗系統軟體，主要用於類 Unix 系統。

X 視窗管理器和蘋果公司的 Macintosh 和微軟公司的 Windows 的操作環境具有不同的使用模式。後兩者都有長期固定的使用者介面和操作模式，而這些都是由開發商決定的，使用者無法更換或者只能作微小調整。X 視窗管理器提供完全開放的，和圖像顯示軟體無關的使用者介面。使用者可以自由選用視窗管理員。這些管理器可以擁有完全不同的特性，包括：

* 外觀和功能的可組態性
* 用於啟動程式或者進行設定的選單
* 啟動程式的方式，可能是命令列式的，也可能是圖形化的，比如停靠欄。
* 多桌面、虛擬桌面（比顯示器尺寸要大的桌面）和用於切換桌面的桌面切換器（pager）。
* 記憶體和系統資源的消耗
* 和桌面環境的整合程度。部分 X 視窗管理員提供更加完整的使用者介面、系統軟體和應用程式。

## X 視窗管理器的運作原理

當視窗管理器開始運作時，X 伺服器和客戶端之間的互動，會重新導向到視窗管理器。每當要顯示一個新視窗時，這個請求便會被重新導向到視窗管理器，它會決定視窗的初始位置。此外，大部分較新的視窗管理器會改變視窗的親屬關係，通常會在視窗頂部加上標題列，並在視窗周圍加上裝飾性的框架。這兩個部分皆由視窗管理器來控制，而不是其它程式。因此，當使用者點擊或拖曳那些元件時，視窗管理器會進行適當的動作（如移動或改變視窗的大小）。

視窗管理器也負責處理圖示，圖示並不存在於 X Window 核心協定的層次中。當使用者將視窗最小化時，視窗管理器會取消視窗的對映（使其不可見），並完成適當的動作，將視窗改顯示成圖示。某些視窗管理器並不支援圖示功能。

視窗管理器主要的目標，就如同其名，是用來管理視窗的。許多視窗管理器提供附加的功能，如處理滑鼠在根視窗上的點擊，呈現出窗格以及其它的視覺化元件，處理按鍵（例如 Alt-F4 可關閉視窗），判定哪一個應用程式在啟動時執行等等。

## 特殊的視窗管理器

幾種特殊的視窗管理器如下。

### 虛擬視窗管理器

**虛擬視窗管理器**使用了虛擬的螢幕畫面，其解析度可大於顯示器的解析度。當希望有較多的視窗時，這個功能也很有用。虛擬視窗管理器包括有 FVWM、Tvtwm、HaZe 等等。

### 平鋪式視窗管理器

**平鋪式視窗管理器**是以不重疊畫面的方式組織螢幕畫面（故稱為平鋪式），相對於傳統的方式，它更近似於以坐標為基礎的疊置物件（視窗），其嘗試模仿辦公桌的式樣。

第一個平鋪式視窗管理器是 larswm，隨後是 Ion。以下是平鋪式視窗管理器的列表：

* Awesome [1] （頁面存檔備份，存於網際網路檔案館）
* dwm [2] （頁面存檔備份，存於網際網路檔案館）
* i3 [3] （頁面存檔備份，存於網際網路檔案館）
* Ion [4] （頁面存檔備份，存於網際網路檔案館）
* larswm
* Musca [5]
* Ratpoison [6] （頁面存檔備份，存於網際網路檔案館）
* Stumpwm [7] （頁面存檔備份，存於網際網路檔案館）
* wmii [8]
* Xmonad [9] （頁面存檔備份，存於網際網路檔案館）
* bspwm [10] （頁面存檔備份，存於網際網路檔案館）

## 主流 X 視窗管理器

* Blackbox (minimalist)
* Enlightenment
* Fluxbox （輕量級，基於 Blackbox）
* FVWM（twm 基礎上開發的的 虛擬視窗管理員）
* IceWM
* KWin（原名 KWM, KDE 默認的視窗管理員）
* Metacity（ GNOME 2.2 後成為默認的視窗管理員）
* Mutter
* MWM (Motif Window Manager)
* Openbox（ LXDE 默認的視窗管理員，基於 Blackbox）
* Sawfish （原名 Sawmill，前 GNOME 系統預設視窗管理員）
* twm （X Window 系統 X11R4 以來的預設視窗管理員）
* Xfwm， （Xfce 默認的視窗管理員)

## 其它 X 視窗管理器

* 4Dwm
* 5Dwm (derived from mwm, true SGI look&feel)
* 9wm [11] （頁面存檔備份，存於網際網路檔案館）（複製 九號計畫 原先的視窗系統）
* aewm [12]
* AfterStep
* amiwm [13] （頁面存檔備份，存於網際網路檔案館） Amiga workbench unix clone.
* Awesome [14] （頁面存檔備份，存於網際網路檔案館）
* Compiz (a compositing window manager) and Beryl (window manager) an under development fork of it
* CTWM
* cwm
* dwm [15] （頁面存檔備份，存於網際網路檔案館）
* EvilPoison [16] (a fork of evilwm with Ratpoison-like keybindings)
* evilwm [17] （頁面存檔備份，存於網際網路檔案館）
* Flwm [18] （頁面存檔備份，存於網際網路檔案館）
* FVWM95
* hackedbox [19]
* HaZe
* i3 [20] （頁面存檔備份，存於網際網路檔案館）
* Ion (平鋪式視窗管理員，為鍵盤使用者設計) [21] （頁面存檔備份，存於網際網路檔案館）
* JWM (Joe's Window Manager)
* Kahakai
* larswm
* Luminocity (experimentation in compositing)
* LWM [22] （頁面存檔備份，存於網際網路檔案館）
* Matchbox [23]
* Musca [24]
* OLWM（and OLVWM [25] with virtual desktops, OPEN LOOK window managers）
* Oroborus
* PekWM [26] （頁面存檔備份，存於網際網路檔案館）
* PLWM
* PWM
* Qvwm (Windows 95/98 look-alike) [27] （頁面存檔備份，存於網際網路檔案館） (list of forks)
* Ratpoison [28] （頁面存檔備份，存於網際網路檔案館）
* Scwm (the Scheme constraints window manager)
* Stumpwm [29] （頁面存檔備份，存於網際網路檔案館）
* Orion A nested (tiled or floating) window manager written in Scheme and scsh
* swm (the original virtual desktop implementation)
* Toy'd（HomePage GoogleProject （頁面存檔備份，存於網際網路檔案館） a portable window manager for MS-Windows & UNIX / Linux platforms）
* TrsWM
* uwm
* Waimea [30] （頁面存檔備份，存於網際網路檔案館）
* WindowLab
* Window Maker
* wm2 [31] （頁面存檔備份，存於網際網路檔案館）
* WMI
* wmii [32]
* XPwm（for XPde，Windows XP Look alike）
* Xmonad（平鋪視窗管理員） [33] （頁面存檔備份，存於網際網路檔案館）
* XWEM [34]

## 參閱

* Re-parenting window manager for a popular implementation technique
* X Window System protocols and architecture for context
* Compositing manager for another kind of manager in X
* Compositing window manager that combines two roles in one program
* Windowing system for other platforms than the X Window System

## 外部連結

* _Window Managers for X_ by Matt Chapman
* _The Other Window Managers_ （頁面存檔備份，存於網際網路檔案館） - extensive review of window managers (2003)
* _Window Managers_ - list of window managers with minimal comments (2004)
* _Software List:Window Managers_ - list of window managers with summaries
* 名詞解釋：Matchbox（繁體中文）