Programming Sawfish

Redirected from Programming

773pages on
this wiki
Add New Page
Talk0 Share
Documentation quick access

This page contains advanced Sawfish documentation. It covers everything that has to do with the built-in Lisp environment, from customizing Sawfish to your needs, extending its capabilities to creating your own themes.

Programming Sawfish Edit

This part should contain a sort of tutorial on programming in librep/Sawfish (language and API).

What sets Sawfish apart from other window managers is the program's extensibility. The window manager functions in Sawfish are implemented in librep which can easily be extended or redefined by writing librep code. The scripts section provides examples of sawfish extensions written by various contributors.

As Sawfish uses a lisp-based scripting language called librep, a basic knowledge of lisp is required in order to write extensions for the window manager. If you are not familiar with lisp, chapter 2 of Paul Graham's book ANSI Common Lisp provides a good introduction. Another excellent resource is Peter Seibel's Practical Common Lisp, fully available on his web page or in dead-tree form. A good way to learn librep is to run rep or sawfish-client on your terminal (gnome-terminal, xterm etc) and try the examples in that chapter. As you work through the text you will find that most of the examples work but some do not (your terminal beeps instead of getting the right output). This is because librep is not exactly a Common Lisp implementation. Some functions in Common Lisp are implemented differently in librep or not implemented at all. The librep manual provides a guide to the librep lisp implementation and documentation on the builtin functions. The Sawfish programming manual provides documentation on high level window manager functions.

Sawfish Emacs mode Edit

How to install, use and configure the Sawfish Emacs mode.

External documentation Edit

Sawfish Programming Manual Edit

The original version is available from

Derek Upham has updated the Sawfish Programming Manual to reflect the DEFUNs and DEFVARs implemented in C, and some of the most common Lisp functions in Sawfish 1.3. You can take a look at the HTML, or download it in Info or TeXinfo, or get a patch file against the original source at

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki