Window-managers seem to be unique to unix-derived operating systems. Rather than assuming all windowing/GUI tasks, the X-server confines itself to the basic grunt-work of facilitating communications between the graphics hardware and the kernel. This is typical unix behavior, in which complex tasks are broken up into sub-tasks performed by separate programs. This is beneficial to the end-user. If something goes wrong in such a system it is easier to place blame and isolate the problem; flexibility and configurability are also much greater than in systems in which the graphic interface duties are intertwined inextricably with basic kernel functions.
The end result of this is that if you start the X-server ``bare'' (without a window manager) you will see borderless windows on a gray and black stippled background. Few people want this appearance, so over the years a wide variety of window-managing software has been developed. Some are proprietary, but in the free software world there are several active projects, a few of which I'll discuss in this article.
The F(?) Virtual Window Manager is, for several good reasons, the most commonly used Linux window manager. It was originally an offshoot of an early manager called Twm, but has evolved considerably in recent years.
Rob Nation, who was also partially responsible for top and rxvt, was the maintainer of the 1.xx versions of Fvwm. This series reached a developmental plateau a few years ago and a new group of developers adopted the program and initiated the 2.xx series. The 1.xx versions are stable and reliable and are still being used by many people, though they aren't actively maintained.
I won't go into the basic features of Fvwm, as this topic has been well-covered (by John Fisk and others) in past issues of the Gazette. Since those articles appeared there have been many new features and modules added to Fvwm, a few of which I'll describe.
By the way, don't be put off by the beta status of the 2.xx versions; since about version 2.0.37 the program has been relatively easy to compile and free of any but very minor bugs. Version 2 is asymptotically approaching a major release which will be version 2.1.
I can't help but think that the developers working on Fvwm2 are keeping an eye on the upstart Afterstep window-manager, which is based on Fvwm2 code. The newest Fvwm2 release (as of Jan 24,1997) is 2.0.45; patches have been incorporated which give Fvwm2 some of the nicer decorative features of Afterstep. These include tiled pixmaps for window-borders and title bars, as well as gradient-shading of the title bar from one color to another. Another addition is the ability to use mini-icons for title bar buttons. If you're not interested in such decorative elaborations they can be easily disabled by editing the fvwm.tmpl file before compilation. The new release is worth obtaining even if you don't care about the new visible features, as many bugs have been fixed. The man-page has also been expanded and updated to cover these changes.
It's now possible to write Fvwm modules in either Perl or Python. Several examples of each are included in the distribution, which is available from this Hawaiian site.
If you are fond of the appearance of the NExtstep operating system, you'll probably like Afterstep. This is an offshoot of Fvwm2 development which has attracted much attention recently in the Linux community, to the point where it is being included (despite its beta status) in some newer distributions.
Afterstep pioneered the use of pixmaps and mini-icons in borders and title-bars, as mentioned in the Fvwm2 section above. But the major difference is the Wharf module, a very configurable tool bar which uses larger-than-normal icons (64x64). The supplied icons are very stylish, and can be configured to have gradient-shaded backgrounds. As with the Fvwm2 Buttons module, the Wharf (NExt calls it a ``dock'') can ``swallow'' applications and other modules. Lately modules designed to be swallowed by the Wharf have become available from the Afterstep web-sites. Among these are a PPP dialer, a CD-player, and a mixer. Check out the Afterstep Home Page for the latest news and releases.
Rather than include a screen shot of Wm2 in action, here are links to the
Wm2 web page which has links to both a screen shot and the source itself:
Wm2 is still relatively new; I have noticed that it stresses the X-server more than would be expected of such a small application, possibly because of its use of the shaped-window X-extension. Screen refreshes seem to be slow. Nonetheless in this third version it seems to be stable, and it provides a refreshing contrast to the complexity of the other window-managers. The only configuration involved comes before compilation of the source. The various colors and preferred terminal emulator can be set in the Config.h file; after installation the only way to change these settings is to re-edit and recompile.
If you'd like more information on these as well as several other
window-managers, visit
this excellent
site, which has many links and screen shots.