窗口管理器
原文:https://wiki.archlinux.org/index.php/Window_Manager
原文已经翻译了一小半,我对原来翻译的部分修改了下,然后将另外一半翻译完~
译文:
窗口管理器
窗口管理器(window manager,简称WM)是系统图形用户界面(GUI)的重要组件。用户可以选择安装一个完整的桌面环境,它提供了一个完整的用户界面,包括图标,窗口,工具栏,壁纸和桌面部件。
目录
1.X窗口系统
2.窗口管理器
2.1.类型
2.2.窗口管理器列表
2.3.窗口管理器比较
1.X窗口系统
X窗口系统提供基本的图形用户界面支持。安装窗口管理器之前,必须首先安装X服务器。请参阅Xorg的详细信息。
X为搭建GUI环境提供基本的框架或原语:在屏幕上绘制和移动窗口,与鼠标、键盘的进行互交。不过,X并没有管理到用户界面——而是由单独的客户端程序即窗口管理器来管理。正因为如此,以X为基础环境所开发成的视觉样式非常地多,不同的程序可能有截然不同的接口体现。X是建立在操作系统内核之上的一个额外的(应用程序)抽象层。
用户可以通过各种方法,自由配置自己的GUI环境。
2.窗口管理器
窗口管理器是提供窗口边框的X客户端,它控制图形程序的外观和行为方式:边框、标题栏、大小、以及调整大小等都由窗口管理器处理。很多窗口管理器还有其他功能,比如Window Maker的places to stick dockapps,程序启动菜单,WM配置菜单和其他有用的东西。例如,Fluxbox的窗口标签功能。
窗口管理器一般不提供额外的组件,比如桌面图标之类的,它们一般由桌面环境提供(尽管可以用另一个程序将图标添加到WM中)。
因为额外组件很少,窗口管理器通常不怎么耗费系统资源。
2.1.类型
- 堆叠式(又名悬浮式)窗口管理器,顾名思义,不同窗口可以相互重叠,就像桌子上随意摆放的白纸一样。Windows(中的explorer)、Mac OS X这样的商业系统所用的窗口管理器也是这种。
- 平铺式(或直译瓦片式)窗口管理器,其中的窗口不能够重叠,而是像瓦片一样挨个摆放。这种窗口管理器一般比较依赖键盘操作,较少使用鼠标。此类窗口管理器一般也是高度可定制的,可手动布局,使用预定义布局,或两者兼有。
- 动态窗口管理器,结合上述两种窗口管理器,可以动态切换窗口放置方式。
2.2.窗口管理器列表
aewm — aewm 是一种运行在X11系统下的现代小型的窗口管理器. 它完全由鼠标控制, 但除窗口框架外,不包含其他可见UI。 指令集类似于vi: designed back in
the dawn of time (1997) 以从小内存机器榨取速度, 十分直观且对新用户不友善,但以自己的方式快速并优雅着。
- http://www.red-bean.com/decklin/aewm/ || aewm [unsupported仓库]
AfterStep
— AfterStep是Unix X视窗系统的窗口管理器。最初基于NeXTStep界面的外观和感觉,它给终极用户提供了一个一致干净优雅的桌面。AfterStep的发展目标是提供一个弹性的桌面配置,改善美感和提高系统资源的使用效率。
- http://www.afterstep.org/ || afterstep [unsupported]
awesome
— awesome是运行于X视窗系统之上的下一代窗口管理器框架,其高度可定制,快速可扩展,在GNU GPLv2 license下发布。该窗口管理器主要面向高级用户,开发者,那些需要每天处理计算任务和想对自己的图形环境进行细粒度控制的人。
- http://awesome.naquadah.org/ || awesome [unsupported]
Blackbox
— Blackbox是一个运行于X视窗系统之上快速轻量的窗口管理器。它正是你一直在寻找的那个完全没有烦人的库依赖的窗口管理器。Blackbox是由C++构建的,代码完全原创(尽管图形实现和WindowMaker类似)。
- http://blackboxwm.sourceforge.net/ || blackbox [community]
Compiz
— Compiz是一个由OpenGL驱动的混合窗口管理器,使用
GLX_EXT_texture_from_pixmap将重定的顶层向窗口约束至纹理对象。它有一个灵活的插入系统,且被设计成能够在大多数图形硬件上运行良好。
- http://www.compiz.org/ || compiz-core [community]
dwm
— dwm是一个运行于X视窗系统之上的动态窗口管理器。它以平铺,单片和浮动的布局来管理窗口。所有的布局可以被动态的应用,为正在使用和执行任务的应用程序优化环境。
- http://dwm.suckless.org/ || dwm [community]
echinus
— 运行于X11之上,简单轻量的瓦片式和浮动式窗口管理器。echinus由dwm fork而来,具有更简单的配置文件,支持EWMH,是一个全功能重绘窗口管理器。
- http://plhk.ru/echinus || echinus [unsupported]
Enlightenment
— Enlightenment不仅仅是可以运行于Linux/X11和其他平台之上的窗口管理器,还是一整套库,可以帮助你用远少于老式方法的工作量,创建出漂亮的用户界面。它和传统的工具箱竞争,更别说传统的窗口管理器了。
- http://www.enlightenment.org/ || enlightenment [extra]
evilwm
— 运行与X视窗系统之上的极简主义窗口管理器。“极简主义”并不意味着它简陋到不能用-仅仅意味着它省略了很多东西,使其他窗口系统没法使用。
- http://www.6809.org.uk/evilwm/ || evilwm [extra]
Firebox — Firebox又是一个运行于X11系统之上的窗口管理器。它仍在开发中,并非fork自Openbox,Fluxbox,Blackbox甚至Hackedbox;它是用C语言从零开始编写的。
- http://firebox.intuxication.org/ || firebox [unsupported]
Fluxbox
— Fluxbox是运行于X视窗系统之上,基于Blackbox 0.61.1代码的窗口管理器。它在资源方面非常轻量化且易于操作,但却功能强大,能带来简单急速的桌面体验。它是用C++编写的,并在MIT许可下发布的。
- http://www.fluxbox.org/ || fluxbox [extra]
Flwm
— 其作者尝试将他见过的几个桌面管理器的最好的思想结合起来,于是产生了Flwm。Flwm的代码是基于Chris Cannam编写的wm2,它对Flwm产生了最主要的影响。
- http://flwm.sourceforge.net/ || flwm [unsupported]
FVWM
— FVWM是一个运行于X视窗系统之上,与ICCCM兼容,功能强大的多虚拟桌面的窗口系统。其开发很活跃,且支持非常出色。
- http://www.fvwm.org/ || fvwm [extra]
Hackedbox
— Hackedbox是Blackbox——一个X11窗口管理器,的精简版本。工具栏和Slit(在其他窗口管理器中也称为 dock,wharf 等等)已经被移除。Hackedbox的目标是成为一个小型而不臃肿的“功能集”窗口管理器。不计划增加任何功能,仅仅修复bug和尽可能的提高速度。
- http://scrudgeware.org/projects/Hackedbox/ || hackedbox [unsupported]
i3 —
i3是一个平铺窗口管理器,完全从零开始编写。i3被开发出来是因为wmii,作者当时最喜欢的窗口管理器。wmii没有提供一些他想要的功能(例如,好的多显示器支持),有一些bug,很长一段时间没有进展了,而且很难继续下去(源代码注释/文档完全缺失)。
- http://i3.zekjur.net/ || i3-wm [community]
IceWM — IceWM是一个运行于X视窗系统之上的窗口管理器。IceWM的目标是快速,简洁,not getting in the user\’s way(什么意思?求指教)。
- http://www.icewm.org/ || icewm [extra]
Ion3
— Ion是一个基于X11的平铺标签式窗口管理器,它是为键盘用户设计的。它是平铺窗口环境(其他的有LarsWM,有一个很不同的立意)“新浪潮”第一波里的一滴,并已经催生了整个平铺式X11窗口管理器类别——没有一个真正重现了Ion的感觉和功能。
- http://tuomov.iki.fi/software || ion3 [unsupported]
JWM — JWM是一个基于X11视窗系统的窗口管理器。JWM是用C编写的且在最小模式下只使用Xlib库。
- http://joewing.net/programs/jwm/ || jwm [community]
Karmen — Karmen是一个基于X视窗系统的窗口管理器,由Johan Veenhuizen编写。它被设计成“仅仅工作“,没有配置文件,除了Xlib不依赖其他库。输入焦点模型是点击焦点。Karmen旨在兼容ICCCM和EWMH。
- http://karmen.sourceforge.net/ || karmen [unsupported]
KWin
— KDE 4.0中的标准KDE窗口管理器,发布的第一版内置支持compositing,因此它也是一个混合管理器。这使得KWin能提供类似于Compiz的先进的图形效果,同时还提供了之前KDE发行版的所有功能(例如,与KDE其余部分整合的很好,先进的可配置性,注重防盗窃,一个行之有效的窗口管理器,强大的处理错误操作的应用程序/工具包等。)。
lwm
— lwm是一个基于X视窗系统的窗口管理器,它试图置身于你视野之外。没有图标,没有按钮栏,没有图标扩展坞(icon dock),没有根菜单,什么都没有:如果你想要这一切,那么其他程序可以提供。也没有可配置性:如果你想要,还是用其他的窗口管理器吧,一个能帮助你的操作系统邪恶征服你的磁盘空间且吞并的的物理内存的窗口管理器。
- http://www.jfc.org.uk/software/lwm.html || lwm [community]
Metacity
— 这不是Metacity的主页,Metacity没有主页。出于同样的原因,没有华而不实的logo:Metacity致力于变得安静,小巧,稳定,很好的完成工作,且不引起你的注意。
- http://blogs.gnome.org/metacity/ || metacity [extra]
Musca — 一个基于X视窗系统的简单的动态窗口管理器,具有从ratpoison和dwm那里山寨过来的功能。
- http://aerosuidae.net/musca/ || musca [community]
Openbox
— Openbox is a highly configurable, next generation window manager with
extensive standards support. The *box visual style is well known for
its minimalistic appearance. Openbox uses the *box visual style, while
providing a greater number of options for theme developers than previous
*box implementations. The theme documentation describes the full range
of options found in Openbox themes.
- http://openbox.org/wiki/Main_Page || openbox [extra]
Pawm
— Pawm is a window manager for the X Window system. So it\’s not a
\’desktop\’ and doesn\’t offer you a huge pile of useless options, just the
facilities needed to run your X applications and at the same time
having a friendly and easy to use interface.
- http://www.pleyades.net/pawm/ || pawm [community]
pekwm
— pekwm is a window manager that once upon a time was based on the
aewm++ window manager, but it has evolved enough that it no longer
resembles aewm++ at all. It has a much expanded feature-set, including
window grouping (similar to Ion, PWM, or Fluxbox), auto-properties,
Xinerama, keygrabber that supports keychains, and much more.
- http://www.pekwm.org/projects/pekwm || pekwm [extra]
Ratpoison
— Ratpoison is a simple Window Manager with no fat library
dependencies, no fancy graphics, no window decorations, and no rodent
dependence. It is largely modeled after GNU Screen which has done
wonders in the virtual terminal market.
- http://www.nongnu.org/ratpoison/ || ratpoison [extra]
Sawfish
— Sawfish is an extensible window manager using a Lisp-based scripting
language. Its policy is very minimal compared to most window managers.
Its aim is simply to manage windows in the most flexible and attractive
manner possible. All high-level WM functions are implemented in Lisp for
future extensibility or redefinition.
- http://sawfish.wikia.com/wiki/Main_Page || sawfish [community]
Scrotwm
— Scrotwm is a small dynamic tiling window manager for X11. It tries to
stay out of the way so that valuable screen real estate can be used for
much more important stuff. It has sane defaults and does not require
one to learn a language to do any configuration. It was written by
hackers for hackers and it strives to be small, compact and fast.
- http://www.scrotwm.org/ || scrotwm [unsupported]
Stumpwm
— Stumpwm is a tiling, keyboard driven X11 Window Manager written
entirely in Common Lisp. Stumpwm attempts to be customizable yet
visually minimal. There are no window decorations, no icons, and no
buttons. It does have various hooks to attach your personal
customizations, and variables to tweak.
- http://www.nongnu.org/stumpwm/ || stumpwm-git [unsupported]
subtle
— subtle is a manual tiling window manager with a rather uncommon
approach of tiling: Per default there is no typical layout enforcement,
windows are placed on a position (gravity) in a custom grid. The user
can change the gravity of each window either directly per grabs or with
rules defined by tags in the config.
- http://subforge.org/projects/subtle || subtle [unsupported]
TinyWM — TinyWM is a tiny window manager that I created as an
exercise in minimalism. It is also maybe helpful in learning some of the
very basics of creating a window manager. It is only around 50 lines of
C. There is also a Python version using python-xlib.
- http://incise.org/tinywm.html || tinywm [unsupported]
twm — ?
- http://xorg.freedesktop.org/wiki/ || xorg-twm [extra]
WindowLab
— WindowLab is a small and simple window manager of novel design. It
has a click-to-focus but not raise-on-focus policy, a window resizing
mechanism that allows one or many edges of a window to be changed in one
action, and an innovative menubar that shares the same part of the
screen as the taskbar. Window titlebars are prevented from going off the
edge of the screen by constraining the mouse pointer, and when
appropriate the pointer is also constrained to the taskbar/menubar in
order to make target menu items easier to hit.
- http://nickgravgaard.com/windowlab/ || windowlab [community]
Window Maker
— Window Maker is an X11 window manager originally designed to provide
integration support for the GNUstep Desktop Environment. In every way
possible, it reproduces the elegant look and feel of the NEXTSTEP user
interface. It is fast, feature rich, easy to configure, and easy to use.
It is also free software, with contributions being made by programmers
from around the world.
- http://windowmaker.org/ || windowmaker [extra]
WMFS
— WMFS (Window Manager From Scratch) is a lightweight and highly
configurable tiling window manager for X. It can be configured with a
configuration file, supports Xft (FreeType) fonts and is compliant with
the Extended Window Manager Hints (EWMH) specifications, Xinerama and
Xrandr. WMFS can be driven with Vi based commands (ViWMFS).
- http://wmfs.info/projects/wmfs || wmfs [unsupported]
wmii
— wmii is a small, dynamic window manager for X11. It is scriptable,
has a 9P filesystem interface and supports classic and tiling
(Acme-like) window management. It aims to maintain a small and clean
(read hackable and beautiful) codebase.
- http://wmii.suckless.org/ || wmii [community]
Xfwm — The Xfce window manager manages the placement of application
windows on the screen, provides beautiful window decorations, manages
workspaces or virtual desktops and natively supports multiscreen mode.
It provides its own compositing manager (from the X.Org Composite
extension) for true transparency and shadows. The Xfce window manager
also includes a keyboard shortcuts editor for user specific commands and
basic windows manipulations and provides a preferences dialog for
advanced tweaks.
- http://www.xfce.org/projects/xfwm4/ || xfwm4 [extra]
xmonad
— xmonad is a dynamically tiling X11 window manager that is written and
configured in Haskell. In a normal WM, you spend half your time
aligning and searching for windows. xmonad makes work easier, by
automating this.
- http://xmonad.org/ || xmonad [community]
2.3.窗口管理器比较
djfla