Sawfish is an extensible window manager using a Lisp-based scripting language called Librep -- all window decorations are configurable and all user-interface policy is controlled through the extension language. This is no layer on top of twm, but a wholly new architecture.

Despite this extensibility its policy is very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. As such it does not implement desktop backgrounds, applications docks, or other things that may be achieved through separate applications.

All high-level wm functions are implemented in Lisp for future extensibility or redefinition. Currently this includes menus (using GTK+), interactive window moving and resizing, virtual workspaces, iconification, focus/transient window policies, frame theme definitions, and many more standard window-manager functions.

User-configuration is possible either by writing Lisp code in a personal .sawfishrc file, or through the integrated customization system (using GTK+, see the third and fourth screenshots on the screenshots page).

If you're wondering why there are many references to something called sawmill, that's because sawfish was originally known by that name, but had to change. See History.