A window manager is a piece of software that draws the windows that contain applications. Window managers also manage the placement and size of windows. Many developers have made various window managers. Some window managers work in conjunction with a desktop environment, or some window managers act as desktop environments themselves. twm (Tab Window Manager) was developed by Tom LaStrange in 1987 and named "Tom's Window Manager". However, in 1989, when the X Consortium adopted twm, they renamed it to "Tab Window Manager". twm uses Xlib rather than widget toolkits. twm functions as a complete environment and is a stacking window manager. twm is customizable, and users can find the global/system configuration file at /etc/X11/twm/system.twmrc and the user's config file is ~/.twmrc. (http://xwinman.org/vtwm.php) NOTE: Xlib is a C-programming library for interacting with X11 (X Window System Version 11). A widget-toolkit is a set of software that works with the window manager to design the window's appearance. For example, the GTK toolkit defines how a window should appear. Then, a window manager draws and manages the window. Vtwm (the Virtual Tabbed Window Manager) is a derivative of twm that was made in 1990. Vtwm implemented virtual desktops (workspaces) hence the name. Vtwm uses xpm icons and lacks menu bars. (http://www.vtwm.org/) NOTE: X PixMap (XPM) is a special image format that uses ASCII and a programming-like code to define the appearance of an image. swm (the Solbourne window manager) was developed by Tom LaStrange (same one that made twm) in 1990. swm used virtual desktops and restored applications that were running before the previous shutdown/reboot. (http://www.lastrange.com/work/swm.pdf) tvtwm is another window manager developed by Tom LaStrange. tvtwm uses code from twm and swm. CTWM (Claude's Tab Window Manager) is another derivative of twm, but this one was developed by Claude Lecommandeur in 1992. CTWM has 3D borders and better icon management and support. (http://www.ctwm.org/) FVWM (F Virtual Window Manager) is yet another twm derivative. This one was developed by Robert Nation in 1993. Many window managers have evolved from FVWM including AmiWM, AfterStep, Enlightened Window Manager, XFWM, and others. FVWM includes many features not found in twm including Xft2 fonts with anti-aliasing, internationalization support, complete PNG support with alpha-blending, mouse gestures, and many other features. FVWM can function as a desktop environment or work in conjunction with a desktop environment. (http://www.fvwm.org/) Motif Window Manager (MWM) is another stacking window manager that was developed by the Open Software Foundation. MWM is based on the Motif widget toolkit which was also made by the Open Software Foundation. (http://motif.ics.com/) NOTE: A stacking window manager allows windows to overlap. 4Dwm (Fourth Dimension Window Manager) is a derivative of the Motif Window Manager that was used on Irix. 9wm (Plan 9 Window Manager) is a stacking window manager meant to emulate Plan 9's window manager. 9wm was developed by David Hogan (dhog) in 1994. 9wm is very minimalistic. There are no titlebars, menubars, wallpaper, themes, or desktop shortcuts. (http://unauthorised.org/dhog/9wm.html) AfterStep is a stacking window manager that functions as a desktop environment. AfterStep resembles NeXTSTEP. AfterStep comes with a dock called Wharf. AfterStep supports titlebars, menubars, taskbars, and virtual desktops. (http://www.afterstep.org) AMIga Window Manager (amiwm) emulates Amiga's appearance and was made by Marcus Comstedt. (http://www.lysator.liu.se/~marcus/amiwm.html) Blackbox is a stacking window manager that was made by Bradley T. Hughes, but it is now deprecated. Active forks of Blackbox exist and they include Fluxbox, Openbox, and Hackedbox. Blackbox can function as a desktop environment. Fluxbox is a derivative of Blackbox. Fluxbox is a stacking window manager that is commonly used on various LiveCDs including GParted. The configuration files are located in ~/.fluxbox/. (http://www.fluxbox.org/) Fast Light Window Manager (FLWM) is a stacking window manager that uses a vertical titlebar rather than the usual horizontal bar. FLWM uses the FLTK toolkit. (http://flwm.sourceforge.net/) Hackedbox is a stripped down derivative of Blackbox. IceWM is a stacking window manager made by Marko Maček. IceWM is designed for performance and customizability. Many themes are available for IceWM including themes that resemble Windows 95, XP, and 7 as well as other operating systems. IceWM can function as its own desktop environment, or it can be a window manager for a desktop environment. (http://www.icewm.org/) JWM (Joe's Window Manager) is a stacking window manager made by Joe Wingbermuehle that supports Jpeg, PNG, SVG, and XPM icons. (http://www.joewing.net/projects/jwm/) olwm (OPEN LOOK Window Manager) is a stacking window manager made by Sun Microsystems for SunOS and early Solaris systems. olwm worked with the OpenWindows desktop environment. olvwm (OPEN LOOK Virtual Window Manager) is a derivative of olwm made by Scott Oaks who added virtual desktops. Openbox is a stacking window manager that was once based on Blackbox. However, Openbox has been rewritten. Openbox offers many features and is very customizable with themes. The configuration files are in ~/.config/openbox. Openbox can function as a desktop environment or simply as a window manager. (http://openbox.org/) Sawfish is a stacking window manager that was first released on January 1st, 2000. Sawfish is customizable and easy to use. The window manager can also act as a desktop environment. Sawfish uses its own Lisp-like language called Rep. (http://sawfish.tuxfamily.org/) PekWM is a stacking window manager that was once based on aewm++, but now no longer resembles aewm++. This is a customizable window manager. (https://www.pekwm.org/) Window Maker is another stacking window manager that emulates NeXTSTEP. (http://windowmaker.org/) i3 is a tiling window manager that can also support stacking. However, only pop-up windows/boxes are stacked on the windows. Users cannot choose to use stacking. i3 was inspired by wmii. (http://i3wm.org/) NOTE: A tiling window manager places windows as tiles and may not support stacking. wmii (Window Manager Improved 2 or Window Manager Improved Improved) is a tiling window manager with some stacking support. wmii also supports xinerama. NOTE: Xinerama is a feature that allows multiple monitors to act as one. This increases the apparent screen size. (http://en.wikipedia.org/wiki/Xinerama) "Awesome" is a dynamic window manager that is a fork of DWM. Awesome supports xinerama, Pango, and transparency. Awesome can act as a desktop environment and does not require a mouse. (http://awesome.naquadah.org/) NOTE: A dynamic window manager is a tiling window manager that manages a window tile's size based of a particular layout preset set by a user. Users may also change a tile's size thus causing the other tiles to change their size. DWM (Dynamic Window Manager) is a dynamic tiling window manager that stimulated the creation of other tiling window managers. Tile/windows can be resized and multiple workspaces are supported. This program is planned to never exceed two-thousand lines of code. (http://dwm.suckless.org/) NOTE: To run a program under DWM, press "alt" and then "p". You will then see the bar at the top change a little. Next, type the command for the desired program and press enter. PWM is a tabbed window manager that was released in 2000, but has been superseded by Ion. Ion is both a tiling and tabbing window manager that is no longer developed. However, Notion (NOT-Ion) is a current fork of Ion. (http://notion.sourceforge.net/) larswm is a deprecated tiling window manager. Ratpoison is a tiling window manager that also functions as a desktop environment. Ratpoison does not need or use the mouse, hence the name "Rat-Poison". However, it is difficult to use (imagine using Gimp). Ratpoison uses "frames" rather than "windows". By this, I mean, the applications lack the normal titlebar, status-bar, and associated window decorations. Xmonad is a popular tiling window manager that supports a variety of features. Xmonad can be used as a desktop environment. Xmonad is customizable and easy to use. (www.xmonad.org) Compiz is a compositing window manager that provides many 3D graphics and effects. At one point, Compiz-core was the core essentials of Compiz while Compiz-Fusion came with many plugins and features. However, these two forms of Compiz merged, and now, there is just "Compiz". In 2008, Compiz had two other forks form - Compiz++ (which used C++ code) and NOMAD (remote desktop features). However, these two forks merged with Compiz in 2009 when Compiz-Fusion and Compiz-Core also merged. Today, Compiz is written in C++ and has many stable features. Compiz's plugins are categorized into four groups - Main, Extra, Experimental, and Unsupported. Compiz has three pieces of software that can provide the window decorations. It may use gtk-window-decorator, kde-window-decorator, or Emerald to draw the theme/look of the window's border and buttons (close, maximize, etc.). The gtk-window-decorator applies a Cairo-based appearance or a Metacity theme. The kde-window-decorator uses a KWin theme. Emerald is integrated into Compiz and applies its own theme. (https://launchpad.net/compiz) NOTE: A compositing window manager is a window manager that provides 3D and other interesting or detailed graphics. Most (if not all) compositing window managers are stacking window managers as well. KWin is a compositing window manager that uses the Qt widget toolkit. KWin is commonly used with Plasma Workspaces (KDE). Xfwm is the compositing window manager commonly used in the Xfce desktop environment. Metacity is a compositing window manager that uses the GTK toolkit. Metacity was commonly used in the GNOME2 desktop environment. Metacity used GTK2, but was later ported to GTK3. Unlike many other compositing window managers, Metacity emphasized simplicity. (http://blogs.gnome.org/metacity/) Mutter (Metacity Clutter) is a compositing window manager that is used in GNOME3 (thus replacing Metacity). Mutter uses the Clutter library rather than GTK. Mutter has some plugin and offers some visual effects. Mutter is not as simplistic as Metacity. Marco is a fork of Metacity and is used in the MATE desktop environment. Many other window managers exist, but knowing most of them can be helpful. Each user or Linux distro uses a particular window manager to suit their needs. Often times, users can substitute their window manager with a different one to better satisfy their goals. Having a basic understanding of various window managers can help users make a better choice.