[ The opinions expressed by authors on Linux Today are their
own. They speak only for themselves and not for Linux Today.
]
By Eric
Kidd
Sawmill is a new window manager by John Harper. It requires GTK+
1.2, and optionally supports Gnome. Sawmill will be of particular
interest to anyone who uses Gnome or who wants a fast, programmable
window manager.
Policy
Sawmill sets very little policy. It doesn’t do animation or
sliding windows, and it doesn’t have a built-in pager or dock.
Sawmill does, however, support the Gnome panel.
Sawmill is based on the X standard and the ICCCM. It does not
work around the window-placement oddities in xv and certain
versions of the Java AWT. This problem does not appear to be
Sawmill’s fault, strictly speaking, but it may annoy some
users.
At the moment, Sawmill provides no KDE-specific features, but
the author has expressed interest in receiving the necessary
patches.
Features
Sawmill supports multiple workspaces and virtual desktops. It
implements click-to-focus, focus-follows-mouse and sloppy focus.
The latest versions also provide several methods of window
placement. The user interface options are similar to those in
AfterStep or WindowMaker. Settings can be edited using a Gtk+
interface.
Programming Sawmill
Unlike most window managers, Sawmill is fully programmable.
Internally, it’s very similar to Emacs–a fast C core and an
embedded LISP interpreter. Most of the window manager is written in
LISP, and the manual documents many customization hooks. If you’ve
ever written an Emacs editing mode, you’ll be right at home. If you
don’t know LISP, you’ll probably want to buy O’Reilly’s Writing GNU Emacs
Extensions and read through some of the code included with
Sawmill.
Emacs programmers will be happy to hear that Sawmill supports
defcustom and defgroup. This means that your Sawmill extensions can
be configured using the same Gtk+ GUI as the built-in modules.
Themes
Sawmill supports themes, but with a few novel twists. Sawmill
themes can be customized by the user. Several of the included
themes allow the user to choose custom colors, gradient directions
and image files. Sawmill themes may also contain arbitrary LISP
code.
GTK users will be happy to discover that Sawmill uses GTK+
widgets whenever possible. There’s also a “GTK” theme that uses the
colors and images specified in .gtkrc
to draw window
borders.
Several Enlightenment themes have been ported to Sawmill,
including Absolute E, Brushed Metal and minEguE. Other themes
include WindowMaker and AfterStep lookalikes. Porting Enlightenment
themes should be relatively straightforward.
Community
John Harper releases new versions on a more-or-less weekly
basis, and new CVS snapshots are available every night. The
existing Sawmill users seem to be friendly and well-informed.
Overall
Sawmill still has some bugs (it’s only version 0.12), but it may
already be good enough for many users. If you’d like to try it out,
visit the Sawmill web
page.