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

The Blackbox Window Manager

Introduction

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.

Impressions

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:

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:

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.