Tiling window managers (WMs) are beloved by hackers everywhere. Not being a hacker, I never paid them much attention, but my experience with the Haskell-based XMonad a while back was positive enough that I wanted to try a Lisp-based WM.

For a tool like a VM, which requires a lot of tweaking, Lisp is a great choice due to its evaluate-on-the-fly capability. No need to modify a configuration file and restart the whole window system; simply redefine a command, evaluate it, and see it in action. The feedback loop is much tighter, and, as a result, a lot more tweaking can be done.

When it comes to Lisp-based WMs, The obvious choice is StumpWM, which promises an "Emacs-like" experience. As a big Emacs fan, I was intrigued. StumpWM's philosophy is:

  • Hack the good hack
  • Debug your good hack
  • Customize your window manager

Which sounds good to me.

Installing StumpWM is somewhat of a hassle. The bigger problem, however, is that the README does not contain instructions on how to start hacking. There's a manual, but a program that prides itself on being "hackable" should put "how to hack" front and center!

As it turns out, hacking is not hard at all. Using the SWANK server, which is part of the SLIME Emacs package, it's as easy as putting the following in the .stumpwmrc file:

(require :swank)
(swank-loader:init)
(swank:create-server :port 4004
                     :style swank:*communication-style*
                     :dont-close t)

and calling slime-connect in Emacs.

Happy hacking fiddling!