|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 http://sawmill.sourceforge.net/prog-manual.html.
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 http://www.blarg.net/~sand/sawfish/.