This is a discussion of the window managers available to the X Window user, with a comparison of some finer ones to choose from. In order to prevent this document from becoming overwhelmingly large (and proportionally difficult to maintain, as well) I am limiting the discussion to the more popular and well known window managers out there. I believe these are most representative for our purposes, and once you grasp the basic concepts of a few, you more or less will have the hang of them all.
Your choice of window manager can dramatically influence how pleasant your computing experience will be. You spend much of your time dealing with windows when you're in X, and you don't want something that's too obtrusive, one that will get in your way. Some window managers are extremely customizable, to the point that you can pretty much feel like it's a new operating system. If you don't like icons, get rid of them! If you miss that toolbar, you can build a better one, and it can be a pretty painless and rewarding process besides.
The most common window managers nowadays have their roots in Robert Nation's FVWM window manager. These include FVWM, FVWM2, FVWM95, and many more. FVWM itself is derived partly from TWM, which comes with an X Window installation, but which we will not cover here. The syntax and usage of TWM is similar to FVWM, but it actually uses more memory, and feels clumsy and awkward to most users.
FVWM is the original and old standby favorite Linux window manager. Now that the 2.0 of versions of FVWM have become stable and in more general usage, this newer version is preferred, for the syntax is much more direct and simplified, and much more flexible as well. However, many people still have the original FVWM on their systems, as it has been a long time favorite and standard, and most of the examples in this text are equally applicable to this older version. And if the older one is working fine for you, there may be no need to upgrade, since it may break your configuration files to some degree, for some of the syntax has indeed changed, and is not altogether backward compatible. Such is the nature of progress.
Nobody seems quite sure what F in FVWM stands for (not even the author, from what I can tell!), but the VWM would seem to (correctly) indicate Virtual Window Manager, and indeed the FVWM series are virtual window managers, and that is one of their strengths. You can bind keys to any function, including the switching between the virtual desktops, and do this with ease.
FVWM2 is the new standard, including many improvements and features not found in the previous version. Unlike many newer window managers, it works just fine on 8-bit, 256 color displays, which I am using at the moment, and still can be improved with little icons and gradients, to look as much like the Win98 interface as you may or may not want. This version is also much more extensible in general, and allows the use of themes and dynamic menus. Technically, FVWM2 is still in beta, but it works just great, and I have not yet had a single problem with it.
The official FVWM and FVWM2 site is http://www.hpc.uh.edu/fvwm/. The latest version should always be available at ftp://ftp.hpc.uh.edu/pub/fvwm/.
For users more familiar with other window environments on other operating systems, there are plenty of window managers to emulate the desktop you're accustomed to.
The icewm window manager is aimed at a more consistent look and feel, and can emulate many other windowing system standards, hot key bindings, and such. The OS/2 emulations are particularly nice. AmiWM is an Amiga Workbench type window manager, mlvwm is a MacOS emulator. A nice addition to these window managers is dfm, a desktop and file manager that pleasantly resembles the OS/2 Workplace Shell.
The Window Managers website can be found at http://www.PLiG.org/xwinman/, and is a consistently good resource for finding out about the variety of window managers available, particularly for finding good window managers to emulate other windowing environments. Many more still are listed at http://www.PLiG.org/xwinman/others.html, provided by the same author as the previous link, and this is quite a formidable and complete list indeed. You can download Linux versions of most popular window managers at the metalab archive.
Open Look and Motif were early attempts to standardize X Window, and make it usable in more mainstream environments, around a greater variety of workstations. Both were somewhat successful at those attempts (in look and feel, if not politically) and can be used under a modern Linux system. Both require specific libraries, which can be used to compile a variety of applications specifically designed for one or the other environment, to give all programs a similar look and feel.
Starting with X11 Release 5, Sun Microsystem's OpenWindows graphical interface was available to X users. This includes two versions of the Open Look Window Manager, olwm and olvwm (with a virtual desktop). This was developed by Sun in hopes of making a standard windowing environment, and indeed it was standard with Solaris for many years. If your distribution of Linux did not come with this windowing system installed, you must remember to install the XView libraries to get it to work, and you will also have to put the /usr/openwin/... directories in your search path.
If you want the actual OSF/Motif Toolkit for Linux, you'll have to pay, the programs and toolkit are not free. However, the Hungry Programmers have written LessTif, which allows you to compile Motif programs more or less as if you owned to toolkit. LessTif is a clone of the Motif toolkit. Currently LessTif is partially implemented with most of the API in place. Many programs already work under this free version of the toolkit, and it even comes with a window manager, derived from FVWM code, which you'd swear was the Motif Window Manager.
The most useful feature of this toolkit, however, is compiling programs dependent on having a Motif library on your system. The window manager is nothing spectacular, and mostly useful if you're migrating from the original Motif, and want to keep your configuration file. For all intents and purposes, you will find FVWM much more feature-filled and useful, and it looks and behaves almost identically, even recognizing the window hints supplied by programs built with the Motif toolkit.
The Hungry Programmers LessTif can be found at http://www.lesstif.org/.
The second generation of Linux window managers was brought about by KDE, and soon joined by GNOME. There are some striking similarities, and some great differences, between these two, and I will attempt to cover them here. The most important thing to remember at this point is that neither of them is in any way a complete product. Both are at the start of a long development cycle, and not completely stable yet, and as such are not suited to mission-critical work at this time.
The KDE Desktop Environment
(A quote from the home page:) ``KDE is a completely new desktop, incorporating a large suite of applications for Unix workstations. While KDE includes a window manager, file manager, panel, control center and many other components that one would expect to be part of a contemporary desktop environment, the true strength of this exceptional environment lies in the interoperability of its components.''
The KDE Desktop Environment is an attempt to make a desktop environment, not just a window manager. The tools of KDE work together so well, for instance, one might be fooled into thinking KDE was an entire operating system. All the tools to work in a windowing system are included, and many more have been ported to the KDE environment. KDE has achieved a surprising level of maturity already, but many are reluctant to install it on their desktop, because of the licensing stipulations of the QT toolkit, upon which KDE is based. This has changed a little lately, and the licence now qualifies as Open Source by definition, but is not the same as that of GNU software.
GNOME: The GNU Object Model Environment
(A quote from the home page:) ``GNOME stands for GNU Network Object Model Environment. The GNOME project intends to build a complete, user-friendly desktop based entirely on free software. GNOME is part of the GNU project, and GNOME is part of the OpenSource(tm) movement. The desktop will consist of small utilities and larger applications which share a consistent look and feel. GNOME uses GTK+ as the GUI toolkit for all GNOME-compliant applications.''
The GNOME project is an attempt to do much of the same work as KDE, but even a little more than that. GNOME is less tied to one window manager, for instance, and it is interoperable not just between applications, but computers and platforms, as it uses the Common Object Resource Broker Architecture (CORBA). Also, and to many most importantly, GNOME is based on the GTk+ toolkit, which is free and open source, unlike the underlying toolkit of KDE, thereby following in the philosophy of Linux itself.
The official KDE website is http://www.kde.org/. The official GNOME website is http://www.gnome.org/. More detailed information regarding the issues surrounding GNOME can be found at http://www.gnome.org/gnomefaq/FAQ.txt. The home page of CORBA is located at http://www.corba.org/ , and the GTk+ toolkit home is http://www.gtk.org/ .
The latest generation of window manger is very very pretty indeed. Sporting every convenience you could think of, and emulating the most beautiful operating systems ever used on the most gorgeous workstations in the world, these are the window managers to run if you've got the memory and CPU cycles to burn.
Window Maker
(A quote from the home page:) ``Window Maker is an X11 window manager designed to give additional integration support for GNUstep applications. It tries to emulate the elegant look and feel of the NEXTSTEP(tm) GUI. It is relatively fast, feature rich, and easy to configure and use.''
A big strength of this window manager is that it supports the GNU desktop, meaning that it makes a great and very pretty front-end to GNOME. This is also one of the most easily configurable window managers, and can be configured from a graphical interface, and supports the OffiX drag and drop protocol, easy switching of desktop themes, and it's now available within the popular Red Hat distribution, so it's easy and painless to switch from FVWM when the mood finally strikes. As of the 0.50 release, Window Maker supports KDE compliance as well.
This is the author's personal favorite window manager. Get it!
AfterStep
(A quote from the home page:) ``AfterStep is a Window Manager for X which started by emulating the NEXTSTEP look and feel, but which has been significantly altered according to the requests of various users. Many adepts will tell you that NEXTSTEP is not only the most visually pleasant interface, but also one of the most functional and intuitive out there. AfterStep aims to incorporate the advantages of the NEXTSTEP interface, and add additional useful features. The developers of AfterStep have also worked very hard to ensure stability and a small program footprint.''
Enlightenment
Enlightenment is more than just a window manager, it is an extreme, detailed, and configurable environment, and is particularly attractive in that it allows irregular and completely customizable window shapes. It is open in design, and instead of dictating a policy it allows the user to define their own policy right down to the minute and infinitesimal details; from its functionality right on through to its looks.
Enlightenment is still in development currently, and can cause your system to crash. However, Rasterman, the author of Enlightenment, is currently working for Red Hat on the GNOME project, and as that project matures, support for Enlightenment will be maturing as well, making this an environment to keep an eye on.
The official Window Maker website is http://www.windowmaker.org/. The official AfterStep website is afterstep.org/. Enlightenment can be found, predictably, at http://www.enlightenment.org/.