Stumpwm

StumpWM is a tiling, keyboard driven X11 window manager written entirely in
Common Lisp.

The successor to the cult classic Ratpoison, StumpWM adds all the
flexibility and hackability of Common Lisp, allowing the user to make
modifications to the source of the window manager even while it is
running. It is also known as "the emacs of WMs."

"StumpWM attempts to be customizable yet visually minimal. There are no window decorations, no icons, and no buttons. It does have various hooks to attach your personal customizations, and variables to tweak.

Hack the good hack

Debug your good hack

Customize your window manager

While it's running That's right. With a 100% Common Lisp window manager there's no stopping the hacks. Just re-eval and GO!"

With Clisp

Documentation and Support

There is a TeXInfo manual included in the AUR package, the source, and online.

There is also a wiki, an IRC channel
(#stumpwm) on Freenode, and a mailing list. For more information, of
course, see the project's website.

Tweaking

See the wiki for a variety of useful tweaks for your .stumpwmrc.

If you are an emacs user, you will find an emacs minor mode for editing
StumpWM files (and interfacing with the program stumpish, but
more on that below) in the contrib/ directory of the StumpWM source.
If you are using clisp, this file can also be found in
/usr/share/stumpwm/.

stumpish is the STUMP window manager Interactive SHell. It is
a program that allows the user to interact with StumpWM while it is
running, from the comfort of a terminal (or using the emacs mode). It
can be found in the contrib/ directory of the StumpWM source. If you
use clisp, this file can also be found in /usr/bin/.

Configuration

StumpWM stores its configuration in ~/.stumpwmrc or you can use ~/.config/stumpwm/config

Change cursor from default X shape

By default StumpWM leaves the cursor as XOrg's standard X shape with the hotspot in the centre. You can have the more usual left-facing pointer by running

xsetroot -cursor_name left_ptr

You can also put this in your config file

(run-shell-command "xsetroot -cursor_name left_ptr")

Change window focus on mouse click

Clicking on another window will send the click event to that window, but it will not get focus meaning any keyboard input will go to whichever window has focus. The following line makes focus change to any window that is clicked on.

(setf *mouse-focus-policy* :click)

Enable modeline

This sets up a basic modeline with the group name followed by window names on the left and the date and time on the right.

Troubleshooting

If you have problems configuring multiple monitors, maybe you need to install 'xorg-xdpyinfo' package.

If you cannot start stumpwm and get

debugger invoked on a SB-INT:SIMPLE-PARSE-ERROR in thread
#:
no non-whitespace characters in string "".
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
(no restarts: If you did not do this on purpose, please report it as a bug.)
(PARSE-INTEGER "" :START 0 :END NIL :RADIX 10 :JUNK-ALLOWED NIL)