Linux Today: Linux News On Internet Time.

More on LinuxToday

Review of Sawmill 0.12

Oct 12, 1999, 15:12 (30 Talkback[s])
(Other stories by Eric Kidd)


Desktop-as-a-Service Designed for Any Cloud ? Nutanix Frame

[ 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.


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.


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.


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.


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.


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.