The two previous articles in this series were focused on particular window managers: Enlightenment and Window Maker. I looked very closely at those two window managers because they epitomize the personalization that is possible in the Linux desktop. Unlike in the Mac or PC world, the look and feel of the Linux desktop can vary to the extreme. One Linux user's windowing interface need not look—or act—anything like anyone else's. The windowing interface you choose is like a big empty apartment. Not until you add the furniture and hang some pictures does it become a livable space. The kitchen is still a kitchen, but in Linux, it's your kitchen.
In this, the fourth and final part of the series, I'm going to take a quick look at some of the other, less well-known window managers available for Linux. Most of them have unique benefits over any other window manager—smaller memory footprints, more efficient code, better extensibility and so forth. They all look and behave slightly differently, although aside from AfterStep, none are designed with the graphical variety intended in both Enlightenment and Window Maker. That doesn't mean you don't want to consider them. On the contrary, there are definite situations in which you'll want to consider these alternatives, particularly if you do much work on a laptop.
Requirements: XPM, JPEG and PNG libraries are recommended, but these should already be on any recent Linux distribution.
Compliance: GNOME (partial), KDE (unknown)
Extras: if it runs on Window Maker, chances are good it runs with AfterStep, but it's not guaranteed.
When I originally started this series, I had planned on looking at AfterStep in the same thorough manner I looked at E and Window Maker. After doing some research, I discovered Window Maker and AfterStep are pretty much the same beast. Internally and politically they may differ, but from an end-user perspective they're very similar, so much that if you read the previous article, you're up to date with AfterStep.
Still, there are a few things I need to mention about this window manager. AfterStep adds a bar across the top of the display, similar to the task bar of GNOME and KDE. The bar actually shows up only when the first application has been started; after that, each application gets added to the bar. It allows you to jump to applications very quickly, although personally I don't particularly like these types of features.
AfterStep features can be enabled or disabled prior to compiling the software. The configure script has far more options than most of the other window managers. This allows you to turn off some features, hopefully slimming down the window manager for use on resource-limited systems. However, if you use the -prefix option, be aware that the “make install” process doesn't create the /bin and /man directories under the directory you specified—you'll have to do that manually.
Unlike Window Maker, AfterStep has a pager similar to FVWM's pager, which I like quite a bit. It appears to look and work much like the one I'm used to and is available in the default configuration. Although I probably won't switch to AfterStep (the icon features I disliked in Window Maker are also present in AfterStep), I am more curious about it now that I've found a reasonable pager.
Compliance: GNOME (no), KDE (partial)
Extras: BBPager, BBTime, various others; all available from the main Blackbox site. Supports Window Maker dock applications through the use of a built-in tool called the Slit.
Of all the window managers I tried, Blackbox is certainly the easiest to build and install. It needs no special libraries, has no special requirements and took only a minute or two to compile. Obviously, this will depend on your hardware configuration, but the point is, this is the slimmest, most streamlined window manager available. That also means it's the one with the fewest bells and whistles.
While most of the other window managers provide some form of pizzazz through icons or image handling, Blackbox provides nothing more than simple gradients. It does include a tool for placing background images on the root window, but that's about all the pizzazz you'll find here. Still, the implementation does include support for dockable applications from Window Maker, through a built-in function called the Slit. I didn't try this feature, since the point of Blackbox is to not add snazzy appearance. It's truly a window manager designed to provide a decent look with as small a memory footprint as possible. This makes Blackbox a likely candidate for use on laptops.
Like with most window managers, you have to edit text files to make changes to the root menu. This isn't a serious problem, however. A fairly complete description of the menu file format is available on-line, linked from the Blackbox web site.
Blackbox has a panel across the bottom of the screen which includes a clock, two sets of arrows for cycling through windows and desktops, and an area displaying the title from the window which currently has the keyboard focus. An additional tool, BBPager, is available which provides many of the same pager features that FVWM's and AfterStep's pagers do. Although the pager accepts standard -geometry settings to set its position on the screen, the panel appears to be forced to the bottom of the display. I'd like a way of changing that, to move it to the top or side of the display, but didn't see whether that was possible.
One thing Blackbox doesn't do is enforce edge resistance by default. Edge resistance lets you slide a window up against an edge of the display, but not past it without a little applied force. I like window managers that do this; I seldom use windows that span workspaces, but do like to butt windows up against the edge of the display.
In general, I like Blackbox; I just need to learn how to configure it properly.
Requirements: XPM or Imlib, although these appear to be optional; sgml2html to build documentation.
Compliance: GNOME (at least partial), KDE (unknown)
Extras: a couple of preference editors are available as external utilities.
The basic installation comes up looking a little like a Windows interface. At least, it's very usable right from the start, even if the theme makes me slightly ill. There doesn't appear to be a quick way of changing themes right from the menus or from the panel, as you can with Blackbox, but it does come with a number of different themes you can install manually.
One interesting feature is the extra blank bar that appears when you set the TaskBarDoubleHeight option in the configuration file. This provides an area in which you can type a command to launch programs without having to open an xterm. This is nifty for all those times I do echo 123/54 | bc, which I do quite a bit. If the command (such as my example) is not a program, it is run as a shell command.
Icewm, like Blackbox, is designed to have a small memory footprint. Unlike Blackbox, it also tries to provide the icons and fluff that many users expect from window managers these days. Configuring menus can be done using some graphical tools, although both tools are fairly crude. Chances are you'll probably end up configuring menus by hand.
Requirements: Imlib, librep Lisp interpreter (0.9+) from Sawmill author and the rep-gtk binding (0.7+)
Compliance: GNOME (at least partial), KDE (unknown)
Extras: RPMs are available, but I install from source.
Sawmill was, at one time, the default window manager for GNOME on Red Hat distributions—or at least I think it was. I'm not sure what they use these days. If you go to the main web site for Sawmill, you'll find it's presented more as a developer's platform than something an ordinary end user will be interested in. Use of Lisp is probably technically appropriate, but is likely to scare off the non-technical crowd.
Unfortunately, Sawmill would not build on my stock Red Hat 5.2 system because it was missing GNU MP, yet another of the massively obscure requirements so many packages seem to have these days. Switching over to my Red Hat 6.1 box, I had the same problem, so Sawmill never got built. Since there were multiple packages to download, I didn't try the RPMs either. Sorry—plug-n-play is essential here. One package, build and install. I'm not tolerant of much more than that these days.
Requirements: none, essentially, with the latest Linux distributions (they'll have what you need).
Compliance: GNOME (unknown), KDE (unknown)
Extras: most of the external modules come with the distribution now.
After all this, we're finally down to what I actually use myself—FVWM2. It's one of the grandfathers, two or three times removed in some cases, of most of the rest of the window managers I've talked about. Why do I use it? Because I have an extensive menu system designed around a minimalist display that I haven't been able to duplicate with any of the other window managers. I also adore the FVWM Pager. With it, I can move windows around between desktops without actually having to move to those desktops. I can also see at a glance what I have open. I tend to use three desktops with multiple pages, and use the same pages for the same things—xterms with logins to specific machines, Netscape running across the network on different boxes but displayed locally, my XNotesPlus package and so forth. With FVWM's pager, I can easily see what I have open. Then I just click once to jump between multiple projects—say, an article for Linux Journal, some analysis for Linsight and administrative work from my Graphics Muse site. It's a very handy tool. It also lets me work without dealing with a bunch of nasty icons.
I haven't been able to find anything quite like this in any of the other window managers in such a minimalist form. Enlightenment's pagers are close, but Enlightenment has a heavy memory requirement. With FVWM, I can run close to the same configuration on any system I have, and I have a bunch. AfterStep has a similar pager, but those big ugly icons annoy me.
Above all else, the window manager, to an old UNIX hack like myself, should help me do my work. It shouldn't sing and dance in front of me and then do the work. After everything I've said about personalizing the workspace, my way of doing so is to remove the visibility of the workspace, save for a clever X Files-style background I generated with the GIMP. I use a toolbar across the top of the display with a ton of menus for launching various applications. It is a bit of an annoyance that FVWM requires me to restart the window manager every time I make a change to one of the menus, but it's only a minor annoyance.
So there you have it. A few other window managers are probably out there, but we've covered all the ones with any serious following on Linux. Using a window manager of your own choice isn't too difficult, even if you plan on using GNOME or KDE, since most window managers either already do or will soon support the two primary Linux desktop environments. Your choice will be based more on what you want to look at and how much hardware you have on which to run it. In the end, the key is that you have a choice, and that leaves you in control of your desktop.