X視窗管理器

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

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

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

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

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

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

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

## 特殊的視窗管理器

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

### 虛擬視窗管理器

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

### 平鋪式視窗管理器

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

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

- Awesome
- dwm
- i3
- Ion
- larswm
- Musca
- Ratpoison
- Stumpwm
- wmii
- Xmonad
- bspwm

## 主流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 （複製 九號計畫 原先的視窗系統）
- aewm
- AfterStep
- amiwm Amiga workbench unix clone.
- Awesome
- Compiz (a compositing window manager) and Beryl (window manager) an under development fork of it
- CTWM
- cwm
- dwm
- EvilPoison (a fork of evilwm with Ratpoison-like keybindings)
- evilwm
- Flwm
- FVWM95
- hackedbox
- HaZe
- i3
- Ion (平鋪式窗口管理器，為鍵盤使用者設計)
- JWM (Joe's Window Manager)
- Kahakai
- larswm
- Luminocity (experimentation in compositing)
- LWM
- Matchbox
- Musca
- OLWM（and OLVWM with virtual desktops, OPEN LOOK window managers）
- Oroborus
- PekWM
- PLWM
- PWM
- Qvwm (Windows 95/98 look-alike) (list of forks)
- Ratpoison
- Scwm (the Scheme constraints window manager)
- Stumpwm
- 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
- WindowLab
- Window Maker
- wm2
- WMI
- wmii
- XPwm（for XPde，Windows XP Look alike）
- Xmonad（平鋪窗口管理器）
- XWEM

## 參閱

- 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