跳转到内容

窗口管理器

来自 Arch Linux 中文维基

​ 关于 窗口管理器:

窗口管理器是在一个使用图形化界面窗口系统中控制窗口的放置与配色的系统软件

​ 这可以是桌面环境的一部分,也可以被单独使用。 ​

注意:Window managers are unique to Xorg. The equivalent of window managers on Wayland are called compositors because they also act as compositing window managers.

Overview

[编辑 | 编辑源代码]

​ Window managers are X clients that control the appearance and behaviour of the frames ("windows") where the various graphical applications are drawn. They determine the border, title bar, size, and ability to resize windows, and often provide other functionality such as reserved areas for sticking dockapps like Window Maker, or the ability to tab windows like Fluxbox. Some window managers are even bundled with simple utilities like menus to start programs or to configure the window manager itself. ​ The Extended Window Manager Hints specification is used to allow window managers to interact in standard ways with the server and the other clients. ​ Some window managers are developed as part of a more comprehensive desktop environment, usually allowing the other provided applications to better interact with each other, giving a more consistent experience to the user, complete with features like desktop icons, fonts, toolbars, wallpapers, or desktop widgets. ​ Other window managers are instead designed to be used standalone, giving the user complete freedom over the choice of the other applications to be used. This allows the user to create a more lightweight and customized environment, tailored to their own specific needs. "Extras" like desktop icons, toolbars, wallpapers, or desktop widgets, if needed, will have to be added with additional dedicated applications. ​ Some standalone window managers can be also used to replace the default window manager of a desktop environment, just like some desktop environment–oriented window managers can be used standalone too. ​ Prior to installing a window manager, a functional X server installation is required. See Xorg for detailed information. ​

  • Stacking (aka floating) window managers provide the traditional desktop metaphor used in commercial operating systems like Windows and macOS. Windows act like pieces of paper on a desk, and can be stacked on top of each other. For available Arch Wiki pages see Category:Stacking window managers.
  • Tiling window managers "tile" the windows so that none are overlapping. They usually make very extensive use of key-bindings and have less (or no) reliance on the mouse. Tiling window managers may be manual, offer predefined layouts, or both. For available Arch Wiki pages see Category:Tiling window managers.
  • Dynamic window managers can dynamically switch between tiling or floating window layout. For available Arch Wiki pages see Category:Dynamic window managers.

​ See Comparison of tiling window managers and Wikipedia:Comparison of X window managers for comparison of window managers. ​

List of window managers

[编辑 | 编辑源代码]

Stacking window managers

[编辑 | 编辑源代码]

  • 2bwm — Fast floating window manager, with the particularity of having 2 borders, written over the XCB library and derived from mcwm written by Michael Cardell. In 2bwm everything is accessible from the keyboard but a pointing device can be used for move, resize and raise/lower.
https://github.com/venam/2bwm || 2bwmAUR
  • 9wm — X11 window manager inspired by Plan 9's rio.
https://github.com/9wm/9wm || 9wmAUR
  • AfterStep — Originally based on the look and feel of the NeXTStep interface, it provides end users with a consistent, clean, and elegant desktop. The goal of AfterStep development is to provide for flexibility of desktop configuration, improving aesthetics, and efficient use of system resources.
http://www.afterstep.org/ || afterstepAUR
  • berry — Bite-sized window manager written in C. It is controlled via a command-line client, allowing users to control windows via a hotkey daemon such as sxhkd or expand functionality via shell scripts. It provides extensible theming options with double borders, title bars, and window text. Berry places new windows in unoccupied spaces and supports virtual desktops.
https://berrywm.org/ || berryAUR
  • Blackbox — Fast, lightweight window manager for X, without all those annoying library dependencies. Blackbox is built with C++ and contains completely original code (even though the graphics implementation is similar to that of WindowMaker).
https://github.com/bbidulock/blackboxwm || blackbox
  • Compiz — OpenGL compositing manager that uses GLX_EXT_texture_from_pixmap for binding redirected top-level windows to texture objects. It has a flexible plug-in system and is designed to run well on most graphics hardware.
https://launchpad.net/compiz || compizAUR, compiz-coreAUR
  • CTWM — Claude's Tab Window Manager, based on twm. It provides titlebars, shaped windows, virtual screens (workspaces), several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.
https://www.ctwm.org/ || ctwm
  • cwm — Originally deriving from evilwm, but later re-written from scratch, cwm aims to be simple, and offers helpful features such as searching for windows.
https://github.com/leahneukirchen/cwm || cwmAUR
  • eggwm — A lightweight QT4/QT5 window manager.
https://code.google.com/archive/p/eggwm/ || eggwm-qt5AUR eggwmAUR
  • Enlightenment — Enlightenment is not just a window manager for Linux/X11 and others, but also a suite of libraries to help you create beautiful user interfaces with much less work than doing it the old fashioned way and fighting with traditional toolkits, not to mention a traditional window manager.
https://www.enlightenment.org/ || enlightenment
  • evilwm — Minimalist window manager for the X Window System. 'Minimalist' here does not mean it is too bare to be usable – it means it omits a lot of the stuff that make other window managers unusable.
https://www.6809.org.uk/evilwm/ || evilwmAUR
  • Fluxbox — Window manager for X that was based on the Blackbox 0.61.1 code. It is very light on resources and easy to handle but yet full of features to make an easy and extremely fast desktop experience. It is built using C++ and licensed under the MIT License.
https://github.com/fluxbox/fluxbox || fluxbox
  • Flwm — Attempt to combine the best ideas from several window managers. The primary influence and code base is from wm2 by Chris Cannam.
https://flwm.sourceforge.net/ || flwmAUR
  • FVWM — Powerful ICCCM-compliant multiple virtual desktop window manager for the X Window system. Development is active, and support is excellent.
https://www.fvwm.org/ || fvwm3AUR
  • Gala — A beautiful window manager from elementaryos, part of Pantheon. Also as a compositing manager, based on libmutter.
https://launchpad.net/gala || gala
  • Goomwwm — X11 window manager implemented in C as a cleanroom software project. It manages windows in a minimal floating layout, while providing flexible keyboard-driven controls for window switching, sizing, moving, tagging, and tiling. It is also fast, lightweight, modeless, Xinerama-aware, and EWMH compatible wherever possible.
https://github.com/seanpringle/goomwwm || goomwwmAUR
  • IceWM — Window manager for X. The goal of IceWM is speed, simplicity, and not getting in the user's way.
https://ice-wm.org/ || icewm
  • jbwm — Based on evilwm, with a minimal configuration size of approximately 16kb, focused on small binary size and usability, incorporating optional title-bars and XFT title-bar font rendering as compile-time options, jbwm also features easier to use keybindings than evilwm.
https://github.com/jefbed/jbwm || jbwmAUR
  • JWM — Window manager for X. JWM is written in C and uses only Xlib at a minimum.
https://joewing.net/projects/jwm/ || jwmAUR
  • Karmen — Window manager for X, written by Johan Veenhuizen. It is designed to "just work." There is no configuration file and no library dependencies other than Xlib. The input focus model is click-to-focus. Karmen aims at ICCCM and EWMH compliance.
https://karmen.sourceforge.net/ || karmenAUR
  • KWin — The standard KDE window manager since KDE 4.0, which is also a compositing manager. This allows KWin to provide advanced graphical effects, similar to Compiz, while also providing all the features from previous KDE releases (such as very good integration with the rest of KDE, advanced configurability, focus stealing prevention, a well-tested window manager, robust handling of misbehaving applications/toolkits, etc.). Also serves as a compositor for Wayland.
https://techbase.kde.org/Projects/KWin || kwin-x11
  • lwm — Window manager for X that tries to keep out of your face. There are no icons, no button bars, no icon docks, no root menus, no nothing: if you want all that, then other programs can provide it. There is no configurability either: if you want that, you want a different window manager; one that helps your operating system in its evil conquest of your disc space and its annexation of your physical memory.
http://www.jfc.org.uk/software/lwm.html || lwmAUR
  • Marco — The MATE window manager, fork of Metacity.
https://github.com/mate-desktop/marco || marco
  • Metacity — This window manager strives to be quiet, small, stable, get on with its job, and stay out of your attention. It is used by the legacy GNOME 2 and GNOME flashback sessions, and superseded by Mutter.
https://blogs.gnome.org/metacity/ || metacity
  • MLVWM — Macintosh-Like Virtual Window Manager, an FVWM descendant which attempts to emulate the pre-Mac OS X Macintosh look and feel in its layout and window design.
https://www2u.biglobe.ne.jp/~y-miyata/mlvwm.html || mlvwmAUR
  • Muffin — Window and compositing manager for Cinnamon. A fork of Mutter, based on Clutter, uses OpenGL. It cannot be used outside of Cinnamon.
https://github.com/linuxmint/muffin/ || muffin
  • MWM — The Motif Window Manager (MWM) is an X window manager based on the Motif toolkit.
https://sourceforge.net/projects/motif/ || openmotif
  • Openbox — Highly configurable 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. Has been "feature complete" since 2010 but continues to be maintained.
https://openbox.org/ || openbox
  • pawm — Window manager for the X Window system. So it is not a 'desktop' and does not 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.
https://www.pleyades.net/david/projects/pawm || pawmAUR[损坏的链接:package not found]
  • PekWM — 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.
https://www.pekwm.org/ || pekwm
  • Sawfish — 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 window manager functions are implemented in Lisp for future extensibility or redefinition.
https://sawfish.wikia.com/wiki/Main_Page || sawfishAUR
  • sowm — Simple Opinionated Window Manager that provides fullscreen toggling, window centering and a mixed workflow (i.e. mouse and keyboard).
https://github.com/dylanaraps/sowm || sowmAUR
  • TinyWM — Tiny window manager created as an exercise in minimalism. It may be helpful in learning some of the very basics of creating a window manager. It is comprised of approximately 50 lines of C. There is also a Python version using python-xlib.
http://incise.org/tinywm.html || tinywmAUR
  • twm — Simple window manager for X, the default/fallback used by Xorg since 1989. It provides titlebars, shaped windows, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer button bindings.
https://gitlab.freedesktop.org/xorg/app/twm/ || xorg-twm
  • ukwm — A lightweight GTK+ window manager, the default window manager for UKUI desktop environment. A fork of Mutter, based on Clutter, uses OpenGL.
https://github.com/ukui/ukwm/ || ukwm
  • UWM — The ultimate window manager for UDE.
https://udeproject.sourceforge.net/ || udeAUR
  • WindowLab — 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.
https://github.com/nickgravgaard/windowlab || windowlabAUR
  • Window Maker — 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.
https://windowmaker.org/ || windowmakerAUR
  • WM2 — Window manager for X. It provides an unusual style of window decoration and as little functionality as its author feels comfortable with in a window manager. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who do not particularly want their window manager to be too friendly.
https://www.all-day-breakfast.com/wm2/ || wm2AUR
  • worm — Worm is a is a dynamic, tag-based window manager for X11. It supports both a floating layout and a master-stack tiling layout and is developed openly. It is also written in the Nim programming language.
https://github.com/codic12/worm || wormAUR
  • 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 multi screen 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.
https://docs.xfce.org/xfce/xfwm4/start || xfwm4

Tiling window managers

[编辑 | 编辑源代码]

  • Bspwm — bspwm is a tiling window manager that represents windows as the leaves of a full binary tree. It has support for EWMH and multiple monitors, and is configured and controlled through messages.
https://github.com/baskerville/bspwm || bspwm
  • EXWM — EXWM (Emacs X Window Manager) is a full-featured tiling X window manager for Emacs built on top of XELB. It features fully keyboard-driven operations, hybrid layout modes (tiling & stacking), dynamic workspace support, ICCCM/EWMH compliance, RandR (multi-monitor) support, and a built-in system tray.
https://github.com/emacs-exwm/exwm || emacs-exwmAUR
  • Herbstluftwm — Manual tiling window manager for X11 using Xlib and Glib. The layout is based on splitting frames into subframes which can be split again or can be filled with windows (similar to i3/ musca). Tags (or workspaces or virtual desktops or …) can be added/removed at runtime. Each tag contains its own layout. Exactly one tag is viewed on each monitor. The tags are monitor independent (similar to xmonad). It is configured at runtime via ipc calls from herbstclient. So the configuration file is just a script which is run on startup. (similar to wmii/musca).
https://herbstluftwm.org || herbstluftwm
  • i3 — Tiling window manager, completely written from scratch. i3 was created because wmii, the developers' favorite window manager at the time, did not provide some features we wanted (multi-monitor done right, for example), had some bugs, did not progress for quite some time, and was not easy to hack at all (source code comments/documentation completely lacking). Notable differences are in the areas of multi-monitor support and the tree metaphor. For speed the Plan 9 interface of wmii is not implemented.
https://i3wm.org/ || i3-wm
  • Larswm — A tiling window manager based on 9wm.
http://porneia.free.fr/larswm/larswm.html || larswmAUR
  • LeftWM — A tiling window manager written in Rust.
https://leftwm.org || leftwmAUR
  • Notion — Tiling, tabbed window manager for the X window system that utilizes 'tiles' and 'tabbed' windows.
    • Tiling: you divide the screen into non-overlapping 'tiles'. Every window occupies one tile, and is maximized to it
    • Tabbing: a tile may contain multiple windows - they will be 'tabbed'.
    • Static: most tiled window managers are 'dynamic', meaning they automatically resize and move around tiles as windows appear and disappear. Notion, by contrast, does not automatically change the tiling.
Notion is a fork of Ion3.
https://notionwm.net/ || notion
  • Ratpoison — 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. Ratpoison is configured with a simple text file. The information bar in Ratpoison is somewhat different, as it shows only when needed. It serves as both an application launcher as well as a notification bar. Ratpoison does not include a system tray.
https://www.nongnu.org/ratpoison/ || ratpoisonAUR
  • Stumpwm — Tiling, keyboard driven X11 Window Manager written entirely in Common Lisp. Stumpwm attempts to be customizable yet visually minimal. It does have various hooks to attach your personal customizations, and variables to tweak, and can be reconfigured and reloaded while running. There are no window decorations, no icons and no buttons. Its information bar can be set to show constantly or only when needed.
https://stumpwm.github.io/ || stumpwm
  • ZWM — A minimalistic tiling window manager written in C, it uses the XCB api to communicate with Xorg server. It supports multi-monitors, supports a subset of EWMH specs, and offers extensive configurability.
https://github.com/Yazeed1s/zwm || zwm-gitAUR

Dynamic window managers

[编辑 | 编辑源代码]

  • awesome — Highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license. Configured in Lua, it has a system tray, information bar, and launcher built in. There are extensions available to it written in Lua. Awesome uses XCB as opposed to Xlib, which may result in a speed increase. Awesome has other features as well, such as an early replacement for notification-daemon, a right-click menu similar to that of the *box window managers, and many other things.
https://awesomewm.org/ || awesome
  • dk — A list based tiling window manager in the vein of dwm, bspwm, and xmonad.
https://bitbucket.org/natemaia/dk/src/master/ || dkAUR
  • dwm — Dynamic window manager for X. It manages windows in tiled, monocle and floating layouts. All of the layouts can be applied dynamically, optimising the environment for the application in use and the task performed. Does not include a system tray or automatic launcher, although dmenu integrates well with it, as they are from the same author. It has no text configuration file. Configuration is done entirely by modifying the C source code, and it must be recompiled and restarted each time it is changed.
https://dwm.suckless.org/ || dwmAUR
  • echinus — Simple and lightweight tiling and floating window manager for X11. Started as a dwm fork with easier configuration, echinus became full-featured re-parenting window manager with EWMH support. It has an EWMH-compatible panel/taskbar, called ouricoAUR.
http://plhk.ru || echinusAUR
  • FrankenWM — Basically monsterwm with floating done right. Features that are added on top of basic mwm include: more layouts (fibonacci, equal stack, dual stack), gaps (and borders) are adjustable on the fly, minimize/maximize single windows, hide/show all windows, resizing master and stack individually, invert stack.
https://github.com/sulami/FrankenWM || frankenwmAUR
  • Qtile — Full-featured, hackable tiling window manager written in Python. Qtile is simple, small, and extensible. It is easy to write your own layouts, widgets, and built-in commands.It is written and configured entirely in Python, which means you can leverage the full power and flexibility of the language to make it fit your needs.
https://github.com/qtile/qtile || qtile
  • spectrwm — Small dynamic tiling window manager for X11, largely inspired by xmonad and dwm. 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 is configured with a text file. It was written by hackers for hackers and it strives to be small, compact and fast. It has a built-in status bar fed from a user-defined script.
https://github.com/conformal/spectrwm/ || spectrwmAUR
  • Wingo — Fully featured true hybrid window manager that supports per-monitor workspaces, and neither the floating or tiling modes are after thoughts. This allows one to have tiling on one workspace while floating on the other. Wingo can be scripted with its own command language, is completely themeable, and supports user defined hooks. Wingo is written in Go and has no runtime dependencies.
https://github.com/BurntSushi/wingo || wingo-gitAUR
  • xmonad — 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. XMonad is configured in Haskell. For all configuration changes, xmonad must be recompiled, so the Haskell compiler (over 100MB) must be installed. A large library called xmonad-contrib provides many additional features.
https://xmonad.org/ || xmonad

See also

[编辑 | 编辑源代码]

概述

[编辑 | 编辑源代码]

窗口管理器是控制绘制各种图形应用程序的框架(“窗口”)的外观和行为的 X 客户端。它们决定窗口的边框、标题栏、大小和调整大小的能力,并经常提供其他功能,如为粘附像 Window Maker 这样的 dockapps 保留区域,或像 Fluxbox 那样为窗口做标签。一些窗口管理器甚至包含了一些简单的工具,如启动程序的菜单或配置窗口管理器本身的工具。

Extended Window Manager Hints 规范用于允许窗口管理器以标准方式与服务器和其他客户端进行交互。

一些窗口管理器是作为更全面的桌面环境的一部分而开发的,通常允许提供的其他应用程序更好地相互交互,从而给用户带来更一致的体验,通过桌面图标、字体、工具栏、墙纸或桌面小部件等功能完善用户体验。

其他窗口管理器则被设计成独立使用,让用户完全自由地选择要使用的其他应用程序。这使得用户可以根据自己的具体需求,创建一个更加轻量级和个性化的环境。如果需要的话,像桌面图标、工具栏、墙纸或桌面小部件等“额外的东西”,将需要依赖于额外的专用应用程序。

一些独立的窗口管理器也可以用来替换桌面环境的默认窗口管理器,就像一些面向桌面环境的窗口管理器也可以独立使用一样。

安装窗口管理器需要能够正常运行的 X 服务器。详细信息请参阅 Xorg

类型

[编辑 | 编辑源代码]
  • 堆叠(又名悬浮) 窗口管理器提供在 Windows 和 OS X 等商业操作系统中使用的传统桌面隐喻。不同窗口就像桌子上的白纸一样,且可以相互重叠。有关可用的 Arch Wiki 页面,请参见 分类:堆叠式窗口管理器
  • 平铺窗口管理器“平铺”窗口,以便没有重叠。他们通常非常广泛地使用键绑定,并且对鼠标的依赖较少(或不依赖)。平铺窗口管理器可以是手动的,也可以提供预定义的布局,甚至两者兼而有之。有关可用的 Arch Wiki 页面请参见 分类:平铺式窗口管理器
  • 动态窗口管理器可以在平铺或堆叠窗口布局之间动态切换。有关可用的 Arch Wiki 页面请参见 分类:动态窗口管理器

有关窗口管理器的比较,请参见平铺窗口管理器对比Wikipedia:窗口管理器对比

窗口管理器列表

[编辑 | 编辑源代码]

这篇文章或章节的翻译质量不佳。

原因:翻译不流畅、不严谨、不易懂(在 Talk:窗口管理器# 中讨论)

堆叠窗口管理器

[编辑 | 编辑源代码]
  • 2bwm — 快速浮动窗口管理器,其特点是具有两个边框,使用 XCB 库编写,是基于 Michael Cardell 编写的 mcwm 的衍生版本。 在 2bwm 中,所有操作均可通过键盘完成,但也可以使用指示设备来移动、调整大小和提升/降低窗口。 最近,该管理器的名称已从 mcwm-beast 更改为 2bwm。
https://github.com/venam/2bwm || 2bwmAUR
  • 9wm — 基于 Plan 9 的 rio 窗口管理器的 X11 窗口管理器。
https://github.com/9wm/9wm || 9wmAUR
  • AfterStep — AfterStep 是适用于 Unix X 窗口系统的窗口管理器。最初基于 NeXTStep 界面的外观和感觉,它为终端用户提供了一致、清洁和优雅的桌面环境。AfterStep 的目标是提供灵活的桌面配置、改善美观度和高效地利用系统资源。
http://www.afterstep.org/ || afterstep-gitAUR
  • berry — Berry 是适用于 Unix 系统的健康、紧凑的窗口管理器,用 C 语言编写。它通过命令行客户端进行控制,允许用户通过热键守护进程,例如 sxhkd 来控制窗口,或通过 Shell 脚本拓展功能。它提供了可扩展的主题选项,包括双边框、标题栏和窗口文本。Berry 会直观地将新窗口放置在空闲空间中,并支持虚拟桌面。
https://berrywm.org/ || berry-gitAUR
  • Blackbox — Blackbox 是 X 窗口系统的快速、轻量级的窗口管理器,没有烦人的库依赖。Blackbox 使用 C++ 构建,并包含完全原创的代码(尽管其图形实现与 WindowMaker 类似)。
http://blackboxwm.sourceforge.net/ || blackbox
  • Compiz — 这是一个使用 GLX_EXT_texture_from_pixmap 将重定向的顶层窗口绑定到纹理对象的 OpenGL 合成管理器。它拥有灵活的插件系统,并且设计用于在大多数图形硬件上良好运行。
https://launchpad.net/compiz || compizAUR, compiz-coreAUR
  • cwm — 最初是从 evilwm 演变而来,但后来完全重新编写。cwm 的目标是简单,并提供了一些有用的功能,如搜索窗口。
https://github.com/chneukirchen/cwm || cwmAUR
  • eggwm — 一个轻量级的 QT4/QT5 窗口管理器。
eggwm-qt5AUR || eggwmAUR
  • Enlightenment — Enlightenment 不仅是 Linux/X11 及其他平台上的窗口管理器,还是一整套库,可帮助您创建美观的用户界面,比传统方式更轻松,无需与传统工具包和窗口管理器进行斗争。
https://www.enlightenment.org/ || enlightenment
  • evilwm — 这是一款适用于X 窗口系统的极简主义窗口管理器。这里的"极简主义"并不意味着它过于简陋无法使用,而是指它省略了许多使其他窗口管理器难以使用的功能。
https://www.6809.org.uk/evilwm/ || evilwmAUR
  • Fluxbox — 这是一个基于 Blackbox 0.61.1 代码的 X 窗口管理器。它对资源要求非常低,并且易于操作,但却具备许多功能,可以提供简单且极快的桌面体验。它使用 C++ 构建,并且根据 MIT 许可证进行许可。
https://github.com/fluxbox/fluxbox || fluxbox
  • Flwm — 试图将多个窗口管理器的最佳思想结合在一起。主要影响和代码基础来自 Chris Cannam 的 wm2。
http://flwm.sourceforge.net/ || flwmAUR
  • FVWM — 这是一个功能非常强大的、符合 ICCCM 标准的多虚拟桌面窗口管理器,适用于 X 窗口系统。开发活跃,支持也非常出色。
https://www.fvwm.org/ || fvwmAUR
  • Gala — 来自 elementaryos 的漂亮窗口管理器,是 Pantheon 的一部分。也是个基于libmutter的混成管理器。
https://launchpad.net/gala || gala
  • Goomwwm — X11 窗口管理器是用 C 语言实现的,是一个净室软件项目。它以最小的浮动布局管理窗口,同时为窗口的切换、调整大小、移动、标记和平铺提供了灵活的键盘驱动控制。它还具有快速、轻量级、无模式、Xinerama 感知和尽可能兼容 EWMH 的特点。
https://github.com/seanpringle/goomwwm || goomwwmAUR
  • IceWM — Xorg 窗口管理器。 IceWM 的目标是速度、简单性,并且不会妨碍用户
https://ice-wm.org/ || icewm
  • jbwm — 基于 evilwm,最小配置大小约为 16kb,专注于小二进制大小和可用性,结合可选的标题栏和 XFT 标题栏字体渲染作为编译时选项,jbwm 还具有比 evilwm 更易于使用键绑定的特征。
https://github.com/jefbed/jbwm || jbwmAUR
  • JWM — X11 窗口系统的窗口管理器。JWM 由 C 语言编写,只使用 Xlib。
https://joewing.net/projects/jwm/ || jwm
  • Karmen — X 的窗口管理器,由 Johan Veenhuizen 编写。它的设计宗旨是 "只需工作"。它没有配置文件,也不依赖除了 Xlib 之外的其他库。输入焦点模型是点击到焦点。Karmen 的目标是符合 ICCCM 和 EWMH 标准。
http://karmen.sourceforge.net/ || karmenAUR
  • KWin — 自 KDE 4.0 以来的标准 KDE 窗口管理器,它也是一个合成管理器。这使得 KWin 能够提供类似于 Compiz 的高级图形效果,同时还提供以前 KDE 版本的所有功能(例如与 KDE 其余部分的非常好的集成、高级可配置性、防止焦点窃取、经过充分测试的窗口管理器、对行为异常的应用程序/工具包的稳健处理等)。还用作 Wayland的合成器。
https://techbase.kde.org/Projects/KWin || kwin
  • lwm — Xorg的窗口管理器,它试图避开你的脸。没有图标,没有按钮栏,没有图标停靠,没有根菜单,什么都没有:如果你想要这一切,那么其他程序可以提供它。也没有可配置性:如果你想要,你需要一个不同的窗口管理器;它以磁盘空间的邪恶占用和物理内存吞并的方式帮助你操作系统。
http://www.jfc.org.uk/software/lwm.html || lwm
  • Marco — TMATE 窗口管理器,Metacity 的分支。
https://github.com/mate-desktop/marco || marco
  • Metacity — 这个窗口管理器力求安静、小巧、稳定、继续工作,并远离您的注意。它被传统的 GNOME 2 和 GNOME 闪回会话使用,并被 Mutter 取代。
https://blogs.gnome.org/metacity/ || metacity
  • MLVWM — 类似 Macintosh 的虚拟窗口管理器,FVWM 的后代,它尝试在其布局和窗口设计中模拟 Mac OS X 之前的 Macintosh 外观。
http://www2u.biglobe.ne.jp/~y-miyata/mlvwm.html || mlvwmAUR
  • Muffin — Cinnamon 的窗口管理器和合成器。基于Clutter,使用OpenGL,是Mutter分支。它不能在 Cinnamon 之外使用。
https://github.com/linuxmint/muffin/ || muffin
  • Mutter — 基于Clutter的 GNOME窗口和合成管理器,使用 OpenGL。还提供 Wayland 合成器。
https://gitlab.gnome.org/GNOME/mutter/ || mutter
  • MWM — Motif 窗口管理器 (MWM) 是基于 Motif 工具包的 X 窗口管理器。
https://sourceforge.net/projects/motif/ || openmotif
  • Openbox — 高度可配置的窗口管理器,具有广泛的标准支持。*box 视觉样式以其简约的外观而闻名。Openbox 使用 *box 视觉样式,相比比旧版实现,它为主题开发者提供了更多的选项。自 2010 年以来一直是“功能完整”,但继续维护。.
http://openbox.org/ || openbox
  • pawm — X Window 系统的窗口管理器。因此,它不是“桌面”,也不会为您提供大量无用的选项,只是运行 X 应用程序所需的功能,同时具有友好且易于使用的界面。
https://www.pleyades.net/david/projects/pawm || pawmAUR
  • PekWM — 曾经基于aewm++,现已不再类似于aewm++的窗口管理器。它具有大大扩展的功能集,包括窗口分组(类似于 Ion、PWM 或 Fluxbox)、自动属性、Xinerama、keygrabber that supports keychains,等等。
https://www.pekwm.org/ || pekwm
  • Sawfish — 可扩展的窗口管理器,使用基于 Lisp 的脚本语言。与大多数窗口管理器相比,它的策略非常简单。它的目标只是以最灵活、最有吸引力的方式管理窗口。所有高级窗口管理器功能都是用 Lisp 实现的,以便将来进行扩展或重新定义。
https://sawfish.wikia.com/wiki/Main_Page || sawfishAUR
  • sowm — 自用的简单窗口管理器,提供全屏切换、窗口居中和混合工作流程(即鼠标和键盘)。
https://github.com/dylanaraps/sowm || sowmAUR
  • TinyWM — 作为极简主义的练习而创建的 Tiny Window Manager。它可能有助于学习创建窗口管理器的一些非常基本的知识。它由大约 50 行 C 组成。还有一个使用 python-xlib 的 Python 版本。
http://incise.org/tinywm.html || tinywmAUR
  • twm — X 的简单窗口管理器,Xorg 自 1989 年以来一直使用的默认/回退。它提供标题栏、形状窗口、多种形式的图标管理、用户定义的宏函数、单击键入和指针驱动的键盘焦点以及用户指定的键和指针按钮绑定。
https://gitlab.freedesktop.org/xorg/app/twm/ || xorg-twm
  • ukwm — 轻量级 GTK+ 窗口管理器,UKUI 桌面环境的默认窗口管理器
https://github.com/ukui/ukwm/ || ukwm
  • UWM — TUDE 的终极窗口管理器。
http://udeproject.sourceforge.net/ || udeAUR
  • Wind — 小型浮动窗口管理器。尝试遵守 ICCCM、EHWM、NetWM。
http://windwm.sourceforge.net/ || windwmAUR
  • WindowLab — 这是一个小巧简单、设计新颖的窗口管理器。它采用了点击即焦点但不自动提升的策略,窗口大小可通过一次操作改变一个或多个边界,并且创新地将菜单栏与任务栏共享屏幕上的同一部分。通过限制鼠标指针的移动,防止窗口标题栏超出屏幕边缘。而且,在合适的时候,鼠标指针也被限制在任务栏/菜单栏上,以便更容易点击目标菜单项。
https://github.com/nickgravgaard/windowlab || windowlabAUR
  • Window Maker — 最初设计为提供GNUstep桌面环境的整合支持的X11窗口管理器。它在各个方面都尽可能地复制了NEXTSTEP用户界面的优雅外观和感觉。它快速、功能丰富、易于配置和使用。而且它是自由软件,来自世界各地的程序员做出了贡献。
https://windowmaker.org/ || windowmakerAUR
  • WM2 — wm2是一个X的窗口管理器。它提供了独特的窗口装饰风格,并只提供作者认为在窗口管理器中感到舒适的最少功能。wm2不可配置,除非通过编辑源代码并重新编译来实现,它真正适用于那些不希望他们的窗口管理器过于友好的用户。
https://www.all-day-breakfast.com/wm2/ || wm2AUR
  • worm — Worm是一个基于标签的X11动态窗口管理器。它支持浮动布局和主栈平铺布局,并采用开放式开发方式。它还使用Nim编程语言编写。
https://github.com/codic12/worm || worm-gitAUR
  • XfwmXfce 窗口管理器负责管理应用程序窗口在屏幕上的放置,提供美丽的窗口装饰,管理工作区或虚拟桌面,并原生支持多屏幕模式。它提供了自己的合成管理器(来源于 X.Org 合成扩展),以实现真正的透明度和阴影效果。Xfce 窗口管理器还包括一个键盘快捷键编辑器,用于用户特定命令和基本窗口操作,并提供了一个高级调整的首选项对话框。
https://docs.xfce.org/xfce/xfwm4/start || xfwm4

平铺窗口管理器

[编辑 | 编辑源代码]
  • Bspwm — bspwm 是一个平铺式窗口管理器,将窗口表示为完全二叉树的叶子节点。它支持EWMH和多个监视器,并通过消息进行配置和控制。
https://github.com/baskerville/bspwm || bspwm
  • EXWM — EXWM(Emacs X Window Manager)是一个完整功能的平铺式X窗口管理器,构建在 XELB 之上,专为Emacs设计。它具有完全基于键盘操作的特点,混合布局模式(平铺和堆叠),动态工作区支持,ICCCM/EWMH 兼容,RandR(多显示器)支持,并且内置了系统托盘。
https://github.com/ch11ng/exwm || emacs-exwm-gitAUR
  • Herbstluftwm — 这是一个使用Xlib和Glib的手动平铺窗口管理器,适用于X11。其布局是基于将框架分割成子框架,这些子框架可以再次分割或填充窗口(类似于i3/musca)。标签(工作区或虚拟桌面等)可以在运行时添加/删除。每个标签都包含自己的布局。每个显示器只显示一个标签。标签与显示器无关(类似于 xmonad)。它通过从herbstclient发出的IPC调用在运行时进行配置。因此,配置文件只是在启动时运行的脚本(类似于wmii/musca)。
https://herbstluftwm.org || herbstluftwm
  • i3 — i3 是一个平铺窗口管理器,完全从头开始编写。i3 的创建是因为当时开发人员最喜欢的窗口管理器 wmii 没有提供一些我们想要的功能(例如正确的多监视器支持),存在一些错误,并且在相当长的时间内没有进展,而且不容易进行修改(源码注释/文档完全缺失)。值得注意的区别在于多监视器支持和树形概念。为了速度,i3 没有实现wmii的Plan 9接口。
https://i3wm.org/ || i3-wm
  • Larswm — 一个基于9wm的平铺窗口管理器。
http://porneia.free.fr/larswm/larswm.html || larswmAUR
  • LeftWM — 一个用 Rust 编写的平铺窗口管理器。
https://leftwm.org || leftwmAUR
  • Notion — Tiling是一种为X窗口系统设计的平铺式窗口管理器,它利用“平铺”和“选项卡”窗口。
    • 平铺:您将屏幕分割成不重叠的“瓷砖”。每个窗口占用一个瓷砖,并最大化到该瓷砖。
    • 标签页:一个瓷砖可以包含多个窗口 - 它们将被“标签页化”。
    • 静态模式:大多数平铺窗口管理器都是“动态”的,这意味着它们在窗口出现和消失时自动调整大小和移动瓷砖。而Notion则不会自动更改平铺方式,它采用静态方式进行。
Notion是Ion3的一个分支。
https://notionwm.net/ || notion
  • Ratpoison — Ratpoison 是一个简单的窗口管理器,没有庞大的库依赖,没有花哨的图形界面,没有窗口装饰,也不依赖鼠标。它在很大程度上模仿了在虚拟终端市场上表现出色的 GNU Screen。Ratpoison 通过一个简单的文本文件进行配置。Ratpoison的信息栏有点不同,它只在需要时显示。它既可以作为应用程序启动器,也可以作为一个通知栏。Ratpoison 不包括系统托盘。
https://www.nongnu.org/ratpoison/ || ratpoison
  • Stumpwm — Stumpwm 是一个完全使用 Common Lisp 编写的平铺式、键盘驱动的X11窗口管理器。Stumpwm 试图在可自定义的同时保持视觉上的最简化。它提供了多种钩子来添加个性化定制,并且可以在运行时重新配置和重新加载。它没有窗口装饰、图标、按钮和系统托盘。它的信息栏可以设置为始终显示或只在需要时显示。
https://stumpwm.github.io/ || stumpwm

动态窗口管理器

[编辑 | 编辑源代码]
  • awesome — Awesome 是一个高度可配置的、面向下一代的X框架窗口管理器。它非常快速、可扩展,并且 在GNU GPLv2 许可下发布。使用 Lua 进行配置,它内置了系统托盘、信息栏和启动器。还可以使用Lua编写扩展。与 Xlib 相比,Awesome 使用 XCB,可能会提高速度。Awesome 还具有其他功能,例如用于通知 -daemon 的早期替代品、类似 *box 窗口管理器的右键菜单等。
https://awesomewm.org/ || awesome
  • dwm — X 的动态窗口管理器。它以平铺、单占据和浮动布局管理窗口。所有布局都可以动态应用,优化正在使用的应用程序和执行的任务的环境。它不包括系统托盘或自动启动器,尽管 dmenu 与其集成得很好,因为它们来自同一作者。它没有文本配置文件。配置必须通过修改 C 源代码完成,每次更改都必须重新编译和重新启动。
https://dwm.suckless.org/ || dwmAUR
  • echinus — echinus 是一个简单且轻量级的 X11 平铺和浮动窗口管理器。它最初是从 dwm 分支出来的,但配置更加简单。随着发展,echinus 成为了一个功能齐全的重新父窗口管理器,并支持 EWMH 协议。它还配备了一个兼容 EWMH 的面板/任务栏,称为 ouricoAUR
http://plhk.ru || echinusAUR
  • FrankenWM — 基本上是 Monsterwm 的浮动布局改进版。在基本的窗口管理器上添加了以下功能:更多的布局选项(斐波那契布局、等分布局、双栈布局),可以动态调整间隔(以及边框),最小化/最大化单个窗口,隐藏/显示所有窗口,可单独调整主窗口和副窗口的大小,反转堆叠次序。
https://github.com/sulami/FrankenWM || frankenwmAUR
  • spectrwm — 这是一个基于X11的小型动态平铺窗口管理器,主要受到 xmonad 和 dwm 的启发。它试图保持低调,以便宝贵的屏幕空间可以用于更重要的事情。它具有合理的默认设置,并通过文本文件进行配置。它是由黑客编写给黑客的,努力保持小巧、紧凑和快速。它还具有内置状态栏,通过用户定义的脚本进行数据传递。
https://github.com/conformal/spectrwm/ || spectrwm
  • Qtile — Qtile是一个功能齐全且可定制的平铺窗口管理器,用Python编写。Qtile 简单、轻巧且可扩展。你可以轻松编写自己的布局、小部件和内置命令。它完全使用 Python 编写和配置,这意味着你可以利用语言的全部能力和灵活性,使其适应你的需求。
https://github.com/qtile/qtile || qtile
  • Wingo — Wingo 是一个功能齐全的混合窗口管理器,完全支持多显示器工作区,并且既不是浮动模式也不是平铺模式的思考后想法。这使得你可以在一个工作区使用平铺模式,而在另一个工作区使用浮动模式。Wingo 可以使用自己的命令语言进行脚本编写,具有完全可定制的主题,并支持用户定义的钩子。Wingo 是用 Go 语言编写的,没有运行时依赖。它提供了高度的灵活性和可扩展性,使得用户能够根据自己的需求来定制和扩展窗口管理器的功能。
https://github.com/BurntSushi/wingo || wingo-gitAUR
  • xmonad — XMonad 是一个动态平铺的 X11 窗口管理器,它使用 Haskell 编写和配置。在普通的窗口管理器中,你要花费大部分时间来调整和搜索窗口的位置。XMonad 通过自动化这些过程来简化工作。XMonad 的配置是使用 Haskell 语言完成的。对于所有的配置更改,必须重新编译 xmonad,因此需要安装 Haskell 编译器(超过100MB)。一个名为 xmonad-contrib 的大型库提供许多额外的功能和扩展。
https://xmonad.org/ || xmonad

参见

[编辑 | 编辑源代码]