WM
Window Managers
- https://en.wikipedia.org/wiki/Stacking_window_manager
- https://en.wikipedia.org/wiki/Tiling_window_manager
- https://en.wikipedia.org/wiki/Re-parenting_window_manager
- https://en.wikipedia.org/wiki/Compositing_window_manager
- LUV: Window Managers
- http://www.slant.co/topics/390/~window-managers-for-linux
- http://en.wikipedia.org/wiki/Comparison_of_X_window_managers
- https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers
- http://sawfish.wikia.com/wiki/Comparison_of_extensible_window_managers
- http://www.gilesorr.com/wm/
- http://l3net.wordpress.com/2013/04/09/a-memory-comparison-of-light-linux-desktops-part-2/
- 30 Window Managers in 30 days [1]
- Box-Look.org - Stuff for your Windowmanager
xwm
xnwm
uwm
1985
developed by the Digital Equipment Corporation for their Ultrix operating system. It was released in 1985. Shortly thereafter, it became included as part of the base X Window System distribution, beginning with X10R3. Initially, it was distributed alongside two other window managers (xwm and xnwm).
In 1986, the X Window System switched to version 11 of the protocol. Only uwm was ported, so it became the only window manager for X Window System until X11R4 release, where it was replaced by twm. uwm has never been updated since.
twm
1987
- http://en.wikipedia.org/wiki/Twm
- https://wiki.archlinux.org/index.php/Twm
- http://www.linuxplanet.com/linuxplanet/reports/3000/2/
The name originally stood for Tom's Window Manager, but the software was renamed Tab Window Manager by the X Consortium when they adopted it in 1989 (X11R4).
twm is a re-parenting window manager that provides title bars, shaped windows and icon management. It is highly configurable and extensible. twm was a breakthrough achievement in its time, but it has been largely superseded by other window managers which, unlike twm, use a widget toolkit rather than writing directly against Xlib.
Various other window managers—such as vtwm, tvtwm, CTWM, and FVWM—were built on twm's source code.
awm
1988
descended from uwm.
olvm / olvwm
1989 / 1996?
OPEN LOOK Window Manager was the default stacking window manager for OpenWindows, the original desktop environment included with SunOS and Solaris. Its unique characteristic is its implementation of the OPEN LOOK look and feel.
Scott Oaks developed a variant of olwm, called olvwm (the OPEN LOOK Virtual Window Manager), which implements a virtual root window with dimensions greater than those of the video display.
- YouTube: OpenWindows / OPEN LOOK / olwm
swm
1989
Developed by Tom LaStrange at Solbourne Computer (computer workstations and servers based on the SPARC microprocessor architecture, largely compatible with Sun Microsystems' Sun-4 systems) in 1990. The most important innovation of swm was the introduction of the virtual desktop. It also introduced a primitive form of session management (restoring programs in use at the time of shutdown) to X.
Vtwm
1990
tvtwm
1991
Derived from twm to which it adds the virtual desktop feature from swm. All of these window managers were originally written by Tom LaStrange.
Unlike most more recent virtual window managers, tvtwm models the root window as a single large space, with the physical desktop being a viewport onto that virtual root window. The user can scroll the viewport around the virtual desktop either by pressing certain keys or by clicking into a scaled down representation of the virtual desktop, the so-called panner.
- https://sourceforge.net/projects/tvtwm7/
- https://github.com/oss/Solaris-Spec-Files/blob/master/tvtwm.spec
CTWM
1992
Claude Lecommandeur from the source code for twm, which, inspired by HP's vuewm, he extended to allow for virtual desktops ("workspaces" in CTWM's terminology.)
PieWM
1992
tvtwm fork, Has pie menus (circle around the mouse).
mwm
1992
Motif Window Manager
- https://en.wikipedia.org/wiki/Motif_Window_Manager
- http://web.archive.org/web/20171031232801/http://www.xwinman.org:80/mwm.php
FVWM
1993
Derived from twm, has lots of forks: Afterstep, Xfce, Enlightenment, WindowMaker, Metisse, Bowman, AmiWM, FVWM-XPM (pre-Enlightenment), NWM, MVLWM, SCWM
- https://github.com/mintsuki/fvwm95 - a fork of fvwm95 meant to be compilable on and play nice with newer Unix-like operating systems.It is based off the code from the source package in Debian Sarge, slightly modified so that it compiles without errors on modern OSes, and with a more sane configuration to adapt to modern day needs.
- https://en.wikipedia.org/wiki/FVWM95 - based on the popular FVWM 2 window manager. It is similar to the original FVWM, but is designed to closely resemble the look of Windows 95.
- https://github.com/fvwmorg/fvwm3 - the successor to fvwm2
9wm
1994
ADAM
1995
- https://web.archive.org/web/19990218061527/http://wwwinfo.cern.ch/umtf/adam.html
- http://consult.cern.ch/writeup/adam/
AmiWM
1996?
- http://www.lysator.liu.se/~marcus/amiwm.html - FVWM descendant
wm2 / wmx
1996 / 1998
- http://www.all-day-breakfast.com/wm2
- https://github.com/cannam/wm2 - a window manager for X. It provides an unusual style of window decoration and as little functionality as comfortable. wm2 is not configurable, except by editing the source and recompiling the code, and is really intended for people who don't particularly want their window manager to be too friendly.
Window Maker
1997
- Workspace - a fork of Window Maker.
Blackbox
1997
IceWM
1997
MLVWM
1997
- https://en.wikipedia.org/wiki/Macintosh-Like_Virtual_Window_Manager - FVWM descendant
Xfwm
Xfwm - used in Xfce, intially based on fvwm2, itself derived from twm, redesigned to minimize memory consumption, provide a 3-D look to window frames, and provide a simple virtual desktop.
4Dwm
1998?
derived from mwm. uses the Motif widget toolkit, normally used on Silicon Graphics workstations running IRIX.
aewm
1998
AfterStep
1999
- http://www.afterstep.org/ - FVWM descendant
Scwm
1999
- http://scwm.sourceforge.net/ - FVWM descendant
plwm
1999
PWM
2000
Tiling
Succeeded by Ion
Ion
2000
Tiling
Successor to PWM, development dead
Fork: Notion
Sawfish
2000
- 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. what i wanted when using litestep
larswm
2000
ratpoison
2000
PLWM
2000
Fluxbox
2001
- http://fluxbox.org/ - blackbox fork
WindowLab
2001
Fork of aewm. Stacking.
evilwm
2001
Stacking, minimal/small.
Openbox
2002
Metacity
2002
- https://en.wikipedia.org/wiki/Metacity - gnome 2
miwm
2002
Hackedbox
2002
Oroborus
2002
NovaWM
2002
Stumpwm
2003
cwm
2004
Calm Window Manager, stacking. was based on evilwm, rewritten as a 9wn fork, then rewritten
- http://web.archive.org/web/20111118065946/http://monkey.org/~marius/pages/?page=cwm
- https://en.wikipedia.org/wiki/Cwm_(window_manager)
wmii
2005
Tiling/stacking, plan9 like interface.
PekWM
2005
Stacking
JWM
2005
Stacking, Windows 98 like.
whimsy
2005
Python, stackable.
dwm
2006
Tiling, configuration in source header file.
- https://sourceforge.net/projects/adwm/ - old fork
- https://github.com/bakkeby/dwm-flexipatch - A dwm build with preprocessor directives to decide which patches to include during build time
spectrwm
2006
- spectrwm 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. It was largely inspired by xmonad and dwm.
FLWM
2006?
Stacking, based on the FLTK toolkit
Matchbox
2007
- Matchbox - an Open Source base environment for the X Window System running on non-desktop embedded platforms such as handhelds, set-top boxes, kiosks and anything else for which screen space, input mechanisms or system resources are limited.Matchbox consists of a number of interchangeable and optional applications that can be tailored to a specific non desktop platform to enhance usability in a ‘constrained’ environment.
xmonad
2007
- 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. [4]
- http://www.youtube.com/watch?v=AyNkBLhIpQk&hd=1 - example vid
Config
- XMonad.Doc.Configuring
- template config
- http://www.linuxandlife.com/2011/11/how-to-configure-xmonad-arch-linux.html
cabal --recompile after changing ~/.xmonad/xmonad.hs
Hotkeys
mod shift enter start terminal mod shift c close current window mod w reload xmonad mod space rotate through window layouts mod shift space reset to workspace default mod tab tab through windows super 2 switch to workspace 2
Awesome
2007
See Awesome
subtle
2007
- subtle is a manual tiling window manager with a rather uncommon approach of tiling: Instead of relying on predefined layouts, subtle divides the screen into a grid with customizeable slots (called gravities). For better understanding, the default config uses a 3x3 grid and maps each gravity to one key of the numpad. With those keys, windows can be moved directly to the desired gravity - the same can be done with tagging rules in the config. Another unique concept is the strict tagging: Unlike other tiling window managers, subtle doesn't allow weak tagging and always maps windows to virtual desktops (called views) with matching tags, regardless of the current active view.
Echinus
2007
Tritium
2007?
- https://github.com/stew/tritium - a tabbed/tiling window manager. tritium is a tiling/tabbed window manager for the X Window System inspired by the ion3 window manager. It was written completely from scratch in python and shares no actual code with ion3. tritium is implemented in python using the plwm ("pointless window manager") library
SithWM
2007
wmfs
2008
- http://wmfs.info/ - DEAD SITE
CLFSWM
2008
Lucca WM
2008?
i3
See i3
TinyWM
- tinywm - 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. It lets you do four basic things: Move windows interactively with Alt+Button1 drag (left mouse button), Resize windows interactively with Alt+Button3 drag (right mouse button), Raise windows with Alt+F1 (not high on usability I know, but I needed a keybinding in there somewhere), Focus windows with the mouse pointer (X does this on its own) [5]
Notion
2010
Tiling, tabbed
Fork of Ion
Musca
2009
Bluetile
2010
- Bluetile is a tiling window manager for Linux, designed to integrate with the GNOME desktop environment. It provides both a traditional, stacking layout mode as well as tiling layouts where windows are arranged to use the entire screen without overlapping. Bluetile tries to make the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features. based on Xmonad
mcwm
2010
- http://hack.org/mc/hacks/mcwm - minimalist, floating window manager written using XCB, the X protocol C binding.The only window decoration is a thin border. All functions can be done with the keyboard, but moving, resizing, raising and lowering can also be done with the mouse.If you don't like the default key bindings, border width, et cetera, look in the config.h file, change and recompile.
catwm
2010
euclid-wm
2010
wind
2010
Wind is a window manager for the X Window System. It supports virtual desktops, optional Xft font rendering, and is pretty standards compliant. It provides overlapping window management with click-to-type focus. Unlike most window managers, Wind does not have the concept of minimized or hidden windows. Instead of hiding and unhiding windows, the virtual desktops abstraction makes it easy to group similar tasks and switch between these groups instantly using convenient key bindings. Standards compliancy is a prominent goal of the project, and Wind supports almost all mandatory parts of the ICCCM and the Extended Window Manager Hints specifications. Full compliancy is expected in the next major release.
marco
2011
Fork of metacity, used by MATE.
i5
2011
Tiling, fork of i3 with touchscreen features.
herbstluftwm
2011
- herbstluftwm is a manual tiling window manager for X11 using Xlib and Glib. Its main features can be described with: 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 an 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)
- YouTube: 28c3 LT Day 4: herbstluftwm
monsterwm
2011
- monsterwm is a minimal, lightweight, tiny but monstrous dynamic tiling window manager. It will try to stay as small as possible. Currently under 700 lines with the config file included. It provides a set of four different layout modes (vertical stack, bottom stack, grid and monocle/fullscreen) by default, and has floating mode support. Each virtual desktop has its own properties, unaffected by other desktops' settings. Finally monsterwm supports multiple monitors setups.
tilenol
2011
nwm
2011
- nwm - A dynamic window manager for X11 written with Node.js
Mer
2011
- http://merproject.org/ - Mer is an open, mobile-optimised, core distribution aimed at device manufacturers; powered by Qt/QML and HTML5 - openly developed, inclusive, and meritocratically governed. MeeGo based.
- https://sailfishos.org/wiki/Main_Page
dminiwm / snapwm
2011
Minimal and lightweight dynamic tiling window manager. Fork of catwm.
- https://github.com/moetunes/Nextwm - snapwm
wingo
2011
Floating and tiling, per monitor desktops. Written in Go.
no-wm
2011
Foo-Wm
Aura
TTWM / Alopex
2012
- https://github.com/TrilbyWhite/alopex
- https://wiki.archlinux.org/index.php/Alopex
- TTWM is a minimal tiling window manager combining concepts or elements from TinyWM, DWM, and i3wm. Inspiration has also been drawn from other great tilers like MonserWM. TinyTiler is currently under 650 lines of code. In contrast to other tilers, TinyTiler does not have modes nor does have window rules. TinyTiler has only two layouts: right stack and bottom stack. These choices were by design. TinyTiler instead provides two screen sections, the master and the stack. In TinyTiler only one stack window is visibile at a time, the others have tabs in the statusbar.
Qtile
2012
- Qtile is a full-featured, hackable tiling window manager written in Python.
Goomwwm
2012
- http://aerosuidae.net/goomwwm/ Goomwwm: Get out of my way, Window Manager!
bspwm
2012
- https://github.com/baskerville/bspwm bspwm is a tiling window manager where each window is represented as the leaf of a binary tree. It is controlled and configured via bspc. bspwm have only two sources of informations: the X events it receives and the messages it reads on a dedicated socket. Its configuration file is $XDG_CONFIG_HOME/bspwm/autostart. Keyboard and pointer bindings are defined through sxhkd. Example configuration files can be found in the examples directory.
Very nice and atomic.
bspc set focused_border_color '#ff0000' bspc set border_width '3px' bspc set window_gap 0 bspc set focus_follows_pointer true
- https://github.com/windelicato/dotfiles/wiki/bspwm-for-dummies
- http://yuri-rage.github.io/geekery/2015/01/26/bleeding-edge-bspwm/
- http://blog.east5th.co/2014/12/15/joining-the-tiling-wm-master-race/
- https://github.com/desyncr/bspwmrc/
- http://thedarnedestthing.com/bspwm
- http://thedarnedestthing.com/bspwm%20gym
- http://thedarnedestthing.com/bspwm%20framed
- https://github.com/Chrysostomus/bspwm-scripts - Various scripts for controlling bspwm. Copied and edited from various repos from github.
- YouTube: Full Demo: BSPWM on Debian 10 'Buster' - and playlist
- https://github.com/ntrrgc/right-window - Utility to move the focus between windows following cardinal directions
- https://gitlab.com/jallbrit/desknamer - automatically rename bspwm desktops based on the applications inside
external rules
- bspwm external rules test ($1695296) · Snippets · GitLab
- https://git.sr.ht/~jbauer/dotfiles/tree/6b9b75b16cf401e5137203c2479b0b6f1c0d63ab/.config/bspwm/external_rules
- https://github.com/lvancrayelynghe/dotfiles/blob/master/bspwm/external-rules.sh
- https://github.com/baskerville/bspwm/issues/888
- https://github.com/baskerville/bspwm/issues/263
- https://github.com/baskerville/bspwm/issues/263
Deep Space Window Manager
2012
Piwm
2013
- Piwm is a very small window manager written in Bash. Following are the 5 task it performs : 1) Ctrl + t : Opens xterm, 2) Ctrl + f : Makes current window full screen, 3) Alt + Mouseleft : Moves the window, 4) Alt + Mouseright : Rescales the window, 5) Ctrl + F1 : Refocus the window
Guile-WM
2013
2bwm
- https://github.com/venam/2bwm - A fast floating WM written over the XCB library and derived from mcwm.
swc
2013
- https://github.com/michaelforney/swc - a small Wayland compositor implemented as a library.It has been designed primary with tiling window managers in mind. Additionally, notable features include:Easy to follow code baseXWayland supportCan place borders around windows
velox
2014
- https://github.com/michaelforney/velox - a simple window manager based on swc. It is inspired by dwm and xmonad. velox uses tag-based window management similar to dwm. This allows you to construct your workspace by selecting a set of tags to work with. However, in contrast with dwm, windows do not have any screen associated with them; they are shown on whichever screen has their tag selected, allowing you to easily move windows between screens by selecting their tag on a different screen. This is similar to the multi-monitor workspace switching in xmonad.To ensure that we never attempt to show a window in two places at once, we have to impose several constraints. First, each window must have exactly one tag. In practice, I've found that I rarely intentionally mark a window with more than one tag anyway. Second, when you select a tag that is currently display on a different screen, the tag is first deselected from that screen.
FrankenWM
2014
dynamic tiling WM featuring the v-stack, b-stack, grid, fibonacci, dualstack, equal and monocle layouts out of the box. If you want to, you can add gaps between the windows as well. monsterwm-xcb fork, thus coming from monsterwm, thus coming from dminiwm, thus coming from catwm.
howm
2014
wtftw
2014
written in rust
adwm
2014
- https://github.com/bbidulock/adwm - originally a fork of Echinus which in turn was a fork of dwm, and borrows concepts from velox, awesome and spectrwm. What it includes is a full rewrite with significant updates and additions resulting in full EWMH (NetwM), WMH (WinWM), MWMH (CDE/Motif), ICCCM 2.0 compliance and support.
See also the XDE apps.
eggwm
2014
swm
2014
Moksha
- https://github.com/JeffHoogland/moksha - an advanced window manager for X11 based on Enlightenment DR17.
exwm
2015
- https://github.com/ch11ng/exwm - emacs based [8]
katriawm
2015
non-reparenting, tiling window manager with window decorations. It’s a learning project started in December 2015.
Lunchbox Window Manager
2015
- https://github.com/alysander/lunchboxwm - A tiling window manager for X11
aphelia
- https://github.com/vardy/aphelia - A light, single-file, minimalist window manager for X11. [9]
Petronia
2016
- https://github.com/groboclown/petronia - A Python Tiling Window Manager
LeftWM
- LeftWM - a tiling window manager written in rust for stability and performance. The core of left is designed to do one thing and one thing well. Be a window manager. Because you probably want more than just a black screen LeftWM is built around the concept of theming. With themes you can choose between different bar / compositor / background / colors, whatever makes you happy. LeftWM has been built from the very beginning to support multiple screens and has been built around ultrawide monitors. You will see this with the default key bindings.
chamferwm
2018
- https://github.com/jaelpark/chamferwm - A tiling window manager with Vulkan based compositor.
dovetail
- https://github.com/jcrd/dovetail -dovetail is an opinionated window manager based on awesome.
Twindy
- Twindy - a window manager for linux (and possibly any system running an X server?) inspired byTracktion, the multitrack audio editor/sequencer for Windows and OS X. Twindy tries to apply Tracktion's workflow, where everything is on screen at once, to a window manager. As such, there are two panels, a main panel where new windows/programs open by default and may be selected using tabs, and a lower panel, which can only hold one window/program at a time.The idea is that you'll do your main work in the top panel, and use the bottom panel for a terminal, or a file manager you'd want to keep open.
berry
- https://github.com/JLErvin/berry - A healthy, bite-sized window manager written over the XLib Library
Xlambda
karuiwm
- https://gitlab.com/ayekat/karuiwm - a lightweight, dynamically tiling window manager for X.It is based on dwm and inspired by xmonad.
Wmderland
- https://github.com/aesophor/Wmderland - X11 i3-like tiling window manager using space partitioning tree
sowm
- https://github.com/dylanaraps/sowm - An itsy bitsy floating window manager with roots in catwm.
SWM
nimdow
- https://github.com/avahe-kellenberger/nimdow - written in Nim. NOTE: This is a WIP and currently only usable on single monitor setups. I am using this project to learn Nim, x11, and to replace my build of dwm (written in C).
LeftWM
- LeftWM - a tiling window manager written in rust for stability and performance. The core of left is designed to do one thing and one thing well. Be a window manager. Because you probably want more than just a black screen LeftWM is built around the concept of theming. With themes you can choose between different bar / compositor / background / colors, whatever makes you happy.LeftWM has been built from the very beginning to support multiple screens and has been built around ultrawide monitors. You will see this with the default key bindings.
instantWM
- https://github.com/instantOS/instantWM - Window manager for instantOS
dylwm?
- https://github.com/dylanaraps/wm - status: messy and mostly working
InfiniteGlass
- InfiniteGlass - This is a minimalistic compositing window manager for X with infinite desktop, infinite zoom and infinite virtual window pixel resolution.
xwm
tofu
- https://github.com/periish/tofu - a shell based window manager for x11fs. It uses x11fs to parse events and control windows. tofu is built to be easily extensible, and scriptable. It is a simple shell script itself. tofc is a program that can be used in tandem with tofu. It controls windows. tofu on it's own does not enforce any particular behaviour for windows, however some example workflows exist in the contrib directory. tofu does not handle keybinds - sxhkd or XBindkeys is reccomended.
hfwm
- https://github.com/katef/hfwm - Half Finished Window Manager
shod
- https://github.com/phillbush/shod - tabbed window manager that can tile windows inside floating containers
chamferwm
- https://github.com/jaelpark/chamferwm - A tiling window manager with Vulkan based compositor. Vulkan compositor for external X11 window managers
Other
See also Wayland
- https://github.com/jjttjj/wm - a clojure(script) library which provides an immutable datastructure that's useful for implementing a tiling window manager.
- https://github.com/sminez/penrose - A library for writing an X11 tiling window manager