X视窗管理器

<image>

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