Linux Window Managers
(last tallied 2024-05-17)
(work in progress)

X11 Window Managers

Wayland Compositors

Desktop Environments

tiling

dynamic

awesomewm
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.

stacking

manual

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.

i3
Manual tiler that also supports dynamic layouts

click to edit

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.

9wm
X11 window manager inspired by Plan 9's rio.

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.

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.

compiz
OpenGL compositing manager

cwm
Minimalistic floating window manager

eggwm
A lightweight QT4/QT5 window manager

Enlightenment
Window manager and suite of libraries for creating user interfaces

evilwm
Minimalist window manager

Fluxbox
Fast desktop experience based on Blackbox

Flwm
Combines various ideas from other window managers

Gala
A beautiful window manager from elementaryos, part of Pantheon

Goomwwm
Keyboard driven floating window manager

IceWM
The goal is speed, simplicity, and not getting in the user's way

jbwm
Based on evilwm, with a minimal configuration size

JWM
written in C and uses only Xlib at a minimum

Karmen
no configuration file and no library dependencies other than Xlib

KWin
The standard KDE window manager

lwm
Minimalist stacking window manager

Marco
The MATE window manager, fork of Metacity

Metacity
Strives to be quiet, small, stable, and to stay out of your attention

MLVWM
Macintosh-Like Virtual Window Manager

Muffin
The Cinnamon window manager

Mutter
Window and compositing manager for GNOME

MWM
The Motif Window Manager based on the Motif toolkit

OpenBox
Highly configurable with extensive standards support

pawm
Simple stacking window manager

PekWM
Once based on the aewm++ window manager

Sawfish
Extensible window manager using a Lisp-based scripting language

sowm
Simple Opinionated Window Manager

TinyWM
Minimalistic window manager

twm
Simple window manager for X

ukwm
Default window manager for UKUI desktop environment

UWM
The ultimate window manager for UDE

Wind
Small floating window manager

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.

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.

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.

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.

Xfwm
The Xfce window manager

Blackbox
Fast, lightweight window manager with few library dependencies

bspwm
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.

stacking

EXWM
Emacs X Window Manager built on top of XELB

larswm
A tiling window manager based on 9wm

LeftWM
A tiling window manager written in Rust.

static

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.

References

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.

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 ourico.

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.

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.

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.

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.

dwm-flexipatch
A dwm build that uses preprocessor directives to decide whether or not to include a patch during build time.

dusk
An comprehensive and polished build of dwm that features workspaces and seamless restarts

MoonWM
An outstandingly named fork of dwm

chadwm
A fork of dwm focusing on visual appearance

click to edit

tiling

manual

twin
Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text display.

Ion3
An abandoned tiling tabbed window manager designed for keyboard users.

pdwm
dwm fork with a control center (pdwmc), full animation support, and easy configuration

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.

marswm
A modern window manager featuring dynamic tiling (rusty successor to moonwm).

Hypr
Hypr is a dynamic Linux tiling window manager for Xorg. It's written in XCB with modern C++ and aims to provide easily readable and expandable code.

dynamic

Vivarium
A dynamic tiling Wayland compositor using wlroots, with desktop semantics inspired by xmonad.

dwl
dwl is a compact, hackable compositor for Wayland based on wlroots. It is intended to fill the same space in the Wayland world that dwm does in X11, primarily in terms of philosophy, and secondarily in terms of functionality.

click to edit

Hikari
Simple, clean compositor inspired by OpenBSD's x11-wm/cwm

Wayfire
3D Wayland compositor based on wlroots

monocle / kiosk

click to edit

Cagebreak
Tiling compositor inspired by RatPoison

Kiwmi
Fully programmable compositor configurable with Lua

LabWC
OpenBox clone based on wlroots

Liri
QT shell from Liri OS

Newm
Wayland compositor written with laptops and touchpads in mind

River
Dynamic tiling compositor, inspired by DWM and BSpWM

Hyprland
Hyprland is a dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks.

Sway
Sway is a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11. It works with your existing i3 configuration and supports most of i3's features, plus a few extras.

Waybox
OpenBox clone

Weston
Reference compositor implementation for developers

swvkc
Vulkan Wayland compositor. It can output to a single GPU and a monitor, use a single keyboard and a mouse.

KWin
The KDE window manager

Unity8
Desktop environment abandoned by Canonical

Enlightenment
Eye candy compositor part of the Enlightenment desktop environment

Mutter
Default window manager in Gnome 3

Qtile
Tiling window manager written and configured in Python based on wlroots

Greenfield
HTML5 Wayland compositor written in TypeScript

Cage
Kiosk based compositor for displaying a single fullscreen application (in GURU)

Lipstick
Framework for building homescreen applications for mobile devices based on Qt and QML

wxrc
Stacking/VR

Gamescope
SteamOS session compositing window manager

Cardboard
Scrollable tiling

wmii
wmii is a dynamic window manager for X11. It supports classic and tiled window management with extended keyboard, mouse, and 9P-based[1] remote control. It consists of the wmii(1) window manager and the wmiir(1) the remote access utility.

cons-wm
Minimalist WM in scheme

scrotwm
scrotwm is a minimalistic window manager that 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.

snapwm
snapwm is a xinerama and Xrandr aware, minimal and lightweight dynamic tiling window manager.

Nextwm
Successor to snapwm.

catwm
catwm is a very simple and lightweight tiling window manager aiming to stay under 1000 SLOC.

FrankenWM
FrankenWM is a dynamic tiling window manager, comparable to dwm or awesome. This means there are a number of predefined layouts that are used to tile the windows. The source code is based on monsterwm-xcb, but includes a lot of bugfixes and additonal features like extensive runtime configuration, a scratchpad window, window minimizing, floating control via keyboard and currently 13 different tiling layouts.

RagnarWM
Minimal, flexible & user-friendly X Window Manager

dwm c++
A dwm port for c++

strata
Wayland compositor written in Rust using the Smithay library.

xswm
Minimal window manager where every window is maximized / fullscreen.

wmx
Based on wm2, and it retains a similar look and feel, but it's intended to provide an experimental vehicle for features that fall comfortably outside the scope of the manifesto for the original wm2.

MaXX Interactive Desktop
Re-implementation of the IRIX Interactive Desktop found on SGI systems. Continuation of the old 5Dwm project.

TinyWL
Minimal window manager using wlroots

Lomiri
Formerly called Unity8

Fvwm
ICCCM/EWMH compliant window manager built primarily on Xlib