"Linux Gazette...making Linux just a little more fun!"

Blackbox title image

The Blackbox Window Manager

By Larry Ayers


Someday (I fantasize) an academic specialty devoted to the taxonomy of free software will arise, complete with abstruse journals filled with hair-splitting analyses of the bloodlines, interbreeding, and evolution of this ephemeral medium. I can imagine a future scholar publishing a paper in which the various developmental strands of late-twentieth-century Linux window-managers are analyzed, complete with photographs of the Sunsite digital archaeology project, conducted amidst the ruins of ancient Chapel Hill.

Returning to the present, two trends can be distinguished among the many window-manager projects extant today. The first is either inspired by and/or descended from Robert Nation's influential fvwm window-manager. Fvwm2, Afterstep, and (to a lesser extent) WindowMaker are examples in this category. These window-managers tend towards extreme configurability and typically are able to load special-purpose modules such as desk-top pagers, CD-players, and hosts of others. Configuration of this sort of manager can be a daunting task, especially for Linux beginners, though the existence of well-thought-out and esthetically pleasing "themes" (in this context meaning a package of configuration files, backgrounds, and pixmap icons) and their availability on the net can give a new user a head-start.

Perhaps as a reaction to these complex and feature-laden window-managers another sort of manager has been appearing lately. Marco Macek's icewm is deliberately not as complex as the above "big" window-managers but nonetheless has the most commonly needed features and a moderately configurable appearance. Icewm has been through quite a few beta versions now and has become remarkably stable. Another example is blackbox.

Blackbox is a new window-manager written by Brad Hughes. Like icewm, it was coded from scratch in C++. It's small (the source archive is just 50 kb.), fast, and has a thoughtfully-designed and pleasing default appearance. This latter feature has probably contributed to blackbox's transition from a personal undertaking to an open source project which has received bug-fixes and enhancements from several other programmers.


Like Windowmaker and icewm, blackbox uses workspaces rather than the virtual desktop/pager combination familiar to fvwm users. The main difference between the two methods of managing windows is that the workspace approach lacks the miniature representations of the various desktops seen in the pager window. It's really a psychological matter, and both methods work equally well once habits have been formed. I surmise that the first virtual desktop system (or even the idea of iconized windows and window-lists, which serve much the same purpose) was developed by a programmer who just got tired of shuffling through layered stacks of windows searching for a certain one.

At the bottom of a blackbox desktop is an immovable multi-purpose bar, with a workspace menu on the left and a digital clock on the right. In between is a blank area, which had no function in the earlier betas but which now contains an iconized window-menu. Here's what it looks like, with the default colors:

Blackbox toolbar

The gradient shading of the titlebar and toolbar is a nice touch, a feature usually found only in the more elaborate window-managers. All graphics routines are handled internally so no extra image libraries are needed. Blackbox is unusual in that it doesn't use the Xpm pixmap library, so the only applications which will display an icon when minimised are those with icons embedded in the executable, such as Netscape and xv.

Unlike most window-managers the root-window menu is bound to the right mouse button rather than the left, an arrangement which will be familiar to icewm and OS/2 users. The menu-items are configured in a separate file; both the menu and the overall configuration files are placed in the /usr/X11R6/lib/X11/app-defaults directory, a traditional location for X resource files. The menu-file's syntax is clear and easy to use. Here is a screenshot of a menu I've been using:

Blackbox menu

The menu will remain "stuck" to the desktop if it is moved after it appears and can be dismissed via a right-mouse-button click any time thereafter.

Keyboard short-cuts are provided for various window operations, including the Mac-like title-bar roll-up, as well as switching between workplaces. I am pleased by the relative paucity of key-bindings in both icewm and blackbox. Some of the larger window-managers have many key-bindings, some of which conflict with common application bindings. I've used fvwm2 quite a bit, and it always annoyed me that Netscape's alt-left-arrow-key key-binding wouldn't work, as it evidently was reserved for some fvwm function in my ~/.fvwm2rc file, which I never did get around to tracking down and disabling. You know how it is; this sort of minor configuration isn't important enough to just drop everything and fix right now. It's a minor annoyance, but I was grateful that icewm and blackbox included just a few essential bindings.

Blackbox is still a relatively young project and the window-manager isn't completely stable yet. I've had it crash the X-server a few times, but I've long been in the habit of saving work frequently (which is always a good idea when running beta software!). Either icewm or wmx may be a better choice as a lightweight window-manager if the need for stability is paramount, but blackbox development seems to be progressing rapidly. More users trying it out and reporting problems will doubtless speed the process.

The blackbox web-site is the best source of further information and the latest source archives.

Larry Ayers<layers@marktwain.net>
Last modified: Sun 28 Jun 1998

Copyright © 1998, Larry Ayers
Published in Issue 30 of Linux Gazette, July 1998