Mar 2009

X Window Managers Part 1

Note: A lot of people have asked why isn't window manager or desktop <insert name> mentioned? Because this is part 1 of what will probably many articles.

The X11 suite of graphical display capabilities sets policy but does not define application; this is to say it provides a vehicle to transport graphics using a protocol. There are advantages and disadvantages to such a method beyond the scope of this material excepting one particular advantage: the implementation of the X suite allows for the creation of a wide variety of graphical window managers. Although there is a great website that documents the wide array of window managers both large and small called xwinman lets take a look at window managers roughly in order of appearance.

NOTES: that the window managers shown here are mainstream ones. Most of the images are from xwinman's site which is definitely worth a visit. Last and not least there is no strict chronology - just a general ordering.

In the Beginning

Although it cannot be installed and run today among the first window managers was simply xwm and is noted at xwinman.org as being the first:

xwm: Possibly the first... this dates back to 1985, before X11 itself. The version in the archive is from X10R4.

The closest wm that looks like xwm and similar ones such as uwm is the Plan9 GUI repackaged as 9wm:

img

The older window managers did exactly what they were supposed to - provide windows. It must be noted that even the author started out using terminals (in my case HP terminals to old F and G class HP systems).

With the so called ancient/simple style of window managers done (note that simplicity will come back into play later) it is time to move on to the first window manager that has become a mainstay in the X world.

Tabbed Window Manager (TWM)

Xorg, Xfree and X11R all ship the tabbed window manager by default. Twm does what earlier window managers could do with enhancements such as a floating configurable menu and border colors that can be modified in a twmrc file (typically kept locally per user in $HOME/.twmrc). On many flavors of UNIX twm is the graphics litmus test for getting X configured correctly. Often the default detected settings won't work correctly causing the user pain if the default desktop is a more modern one. A great way to subvert the issue is to disable xdm or gdm and set twm as the window manager in $HOME/.xinitrc until the X configuration file is fixed. Here is a sample twm default configuration:

img

Here is a heavily modified twm configuration:

img

TWM also had an extension called Virtual TWM or VTWM. VTWM could create a larger virtual desktop that could be scrolled to or navigated by hot keys. VTWM creates a large singular desktop and not actual separate desktops. Usually such a distinction is ambiguous (that is to say it is code dependent); the conceptual (and administrative) difference comes into play later.

Claudes TWM (ctwm)

Claude's Tabbed Window manager was a jump because not unlike just plain twm it uses a central configuration file but it is very extensible and inherently supported virtual desktops and virtual paged desktops. The next two images are a default ctwm page one and my own configuration that I used for several years:

img

img

MWM

Motif Window Manager mwm is another window manager generated by the core X11 development group. What is different about mwm versus other managers is that aspects of mwm are dictated directly using X instead of a layer on top of it which means that a .Xdefaults file dictates attributes versus a run control file. Here is a very simple mwm screenshot from xwinman:

img

Here is a heavily modified mwm using background images inside the title bars:

img

F? Window Manager

Believe it or not the FVWM window manager maintained by Rob Nation has somewhat of a mystery factor about it - no one remembers what the F means. There are theories of course but Rob and the crew have pretty much given up on guessing what it means. That said, fvwm is probably the most influential window manager to date because it not only added a great deal of functionality but started the idea of a window environment as well. The fvwm website has more details. Fvwm development and maintenance is alive and well and is still a popular window manager.

Some of the core features of fvwm are:

  • Central configuration file (not unlike TWM, VTWM and CTWM).
  • Configurable menus
  • Full use of all mouse buttons (and combinations therein)
  • Hot key support
  • Loadable modules for inherent and extra functionality

A slightly modified fvwm config:

img

With fvwm2 and advanced features within the X suites comes the ability for a slightly more modern looking fvwm configuration:

img

The power of FVWM is not the raw capabilities that it ships with but rather it was the first window manager to introduce the idea of allowing programmers to add to FVWM itself by adding modules. FVWM essentially did three things:

  • Intermingled virtual desktop and desktop paging.
  • Created the idea of extensibility both pro-grammatically or just plain user level.
  • Easily allowed other mechanisms to interact with FVWM.

In other words FVWM was not just a window manager; it was also an X enabler and the work done by it set in motion the beginning of a radical change in the UNIX world, especially in the hacker realm.

Summary & Next Time

In this text we took a look at the very first window managers and the window manager capabilities: in part two the material will branch out into the beginnings of the more full fledged desktop environments and how they related to window managers.

next