Sawfish (formerly known as Sawmill) is an extensible window manager using an Emacs Lisp-like scripting language called Librep. All window decorations are configurable, the basic idea is to have as much user-interface policy as possible controlled through the Lisp language.
Despite this extensibility its policy is currently very minimal compared to most window managers. Its aim is simply to manage windows in the most flexible and attractive manner possible. Consequently, it does not implement desktop backgrounds, applications docks, or other functionality that may be achieved through separate applications.
All high-level window manager 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 much more.
Most received events are exported to the Lisp environment through ‘key-bindings’ and hooks, similar to in Emacs. These events include pointer behaviour and many internal X11 events (enter/leave, focus-in/focus-out, map/unmap, etc..)
Sawfish was used with the GNOME desktop environment until it was replaced by Metacity in GNOME 2.2 because of issues including accessibility, maintainability of the code, and multi-head support.
Key Features
- Highly configurable.
- Powerful key-binding: Functionality can be bound to keys or mouse buttons.
- Event hooking: Customize how Sawfish responds to events such as moving windows.
- Window matching: Match windows to a set of rules and automatically perform actions on them.
- Flexible theming: Permits themes to be created and a variety of third-party themes are readily available.
- All high-level wm functions are implemented in Lisp for future extensibility or redefinition.
Website: sawfish.wikia.com
Support: Documentation
Developer: John Harper, Sawfish community
License: GNU General Public License v2.0

Sawfish is written in C. Learn C with our recommended free books and free tutorials.
Related Software
| Stacking Window Managers | |
|---|---|
| Openbox | Standards compliant, fast, light-weight, extensible window manager |
| KWin | Window manager for the KDE Plasma Desktop |
| Mutter | Wayland display server and X11 window manager and compositor library |
| FVWM | Powerful ICCCM-compliant multiple virtual desktop window manager |
| berry | Healthy, bite-sized window manager |
| xfwm | Part of the Xfce desktop environment |
| Window Maker | NeXTSTEP-like window manager |
| JWM | Joe’s Window Manager |
| Gala | Designed by elementary for use with Pantheon |
| Fluxbox | Highly configurable and low resource |
| evilwm | Maximises screen real estate and provides good keyboard control |
| Worm | Tiny, dynamic, tag-based window manager |
| Blackbox | Similar to the NeXT interface and Window Maker |
| Enlightenment | Focuses on pushing the limits of existing technologies |
| PekWM | Originally based on the aewm++ window manager |
| Marco | MATE default window manager |
| 2bwm | Offers 2 borders, and written over the XCB library |
| cwm | OpenBSD fork of calmwn, a clean and lightweight window manager |
| IceWM | Win95-OS/2-Motif-like window manager |
| Sawfish | Extensible window manager using an Emacs Lisp-like scripting language |
| Moksha | Modern iteration of the Enlightenment window manager |
| Magpie | X11 window manager and compositor library |
| sowm | Itsy bitsy floating window manager |
| Compiz | OpenGL window and compositing manager |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

