151 lines
7.6 KiB
HTML
151 lines
7.6 KiB
HTML
<!--startcut ==========================================================-->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<title>The Blackbox Window Manager LG #30</title>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
|
|
ALINK="#FF0000">
|
|
<!--endcut ============================================================-->
|
|
|
|
<H4>
|
|
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
|
</H4>
|
|
|
|
<P> <HR> <P>
|
|
<!--===================================================================-->
|
|
|
|
<center><img alt="Blackbox title image" src="./gx/ayers/blackbox.gif"></center>
|
|
<center>
|
|
<H1><font color="maroon">The Blackbox Window Manager</font></H1>
|
|
<h4>By <a href="mailto: layers@marktwain.net">Larry Ayers</a></h4>
|
|
</center>
|
|
<P> <HR> <P>
|
|
|
|
<center><h3>Introduction</h3></center>
|
|
|
|
<p>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.
|
|
|
|
<p>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.
|
|
|
|
<p>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.
|
|
|
|
<p>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.
|
|
|
|
<center><h3>Impressions</h3></center>
|
|
|
|
<p>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.
|
|
|
|
<p>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:<br>
|
|
|
|
<p><img alt="Blackbox toolbar" src="./gx/ayers/blackbox2.gif">
|
|
|
|
<p>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.
|
|
|
|
<p>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
|
|
<code>/usr/X11R6/lib/X11/app-defaults</code> 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:<br>
|
|
|
|
<p>
|
|
<center><img alt="Blackbox menu" src="./gx/ayers/blackbox1.gif"></center>
|
|
|
|
<p>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.
|
|
|
|
<p>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 <code>alt-left-arrow-key</code>
|
|
key-binding wouldn't work, as it evidently was reserved for some fvwm function
|
|
in my <code>~/.fvwm2rc</code> 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.
|
|
|
|
<p>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.
|
|
|
|
<p>The blackbox <a href="http://linux.wiw.org/blackbox">web-site</a> is the
|
|
best source of further information and the latest source archives.
|
|
|
|
<hr>
|
|
|
|
<address><a href="mailto: layers@marktwain.net">Larry Ayers<layers@marktwain.net></a></address>
|
|
<!-- hhmts start -->
|
|
Last modified: Sun 28 Jun 1998
|
|
|
|
<!--===================================================================-->
|
|
<P> <hr> <P>
|
|
<center><H5>Copyright © 1998, Larry Ayers <BR>
|
|
Published in Issue 30 of <i>Linux Gazette</i>, July 1998</H5></center>
|
|
|
|
<!--===================================================================-->
|
|
<P> <hr> <P>
|
|
<A HREF="./index.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
|
|
ALT="[ TABLE OF CONTENTS ]"></A>
|
|
<A HREF="../index.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
|
|
ALT="[ FRONT PAGE ]"></A>
|
|
<A HREF="./rooijackers.html"><IMG SRC="../gx/back2.gif"
|
|
ALT=" Back "></A>
|
|
<A HREF="./ayers2.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
|
|
<P> <hr> <P>
|
|
<!--startcut ==========================================================-->
|
|
</BODY>
|
|
</HTML>
|
|
<!--endcut ============================================================-->
|
|
<!-- hhmts end -->
|