stumpwm / stumpwm

The Stump Window Manager
GNU General Public License v2.0
1.9k stars 266 forks source link

The Stump Window Manager

Gitter

StumpWM is a window manager written entirely in Common Lisp. It attempts to be highly customizable while relying entirely on the keyboard for input. You will not find buttons, icons, title bars, tool bars, or any of the other conventional GUI widgets.

These design decisions reflect the growing popularity of productive, customizable lisp based systems.

Philosophy

StumpWM is a "everything-and-the-kitchen-sink WM" or "the Emacs of WMs."

StumpWM:Windows::Emacs:Text

If you want a minimalist tiling window manager, then StumpWM is not what you're looking for. The code base is ~15k lines, the binaries produced are ~60mb.

StumpWM manages windows the way emacs manages buffers, or the way screen manages terminals. If you want a flexible, customizable, hackable desktop experience, look no further.

Build & Start Stumpwm

Prerequisites

The recommended way to install the dependencies is using Quicklisp. Follow the instructions at http://www.quicklisp.org/ to install it. In short:

$ curl -O https://beta.quicklisp.org/quicklisp.lisp
$ sbcl --load quicklisp.lisp

Then at the REPL:

(quicklisp-quickstart:install)

Make sure you have added it to your lisp init file using:

 (ql:add-to-init-file)

Then, in a repl:

 (ql:quickload "clx")
 (ql:quickload "cl-ppcre")
 (ql:quickload "alexandria")

Note: The recommended way to install SBCL is by downloading one of their pre-built binaries available in their web page or build it from source. Please do not install SBCL using your distributions package manager, especially Ubuntu. If you do so it is likely that you'll run into problems when building StumpWM due to using obsolete versions of the dependencies.

Building

Building stumpwm from git requires that you build the configure script:

 ./autogen.sh

Then run it:

 ./configure

Now build it:

 make

If all goes well, you should have a stumpwm binary now. You can run the binary from where it is (starting it with X) or install it, along with the .info documentation, with:

 make install

Now that you have a binary, call it from your ~/.xinitrc file:

 # The default path is /usr/local/bin/stumpwm
 echo /path/to/stumpwm >> ~/.xinitrc
 startx

Hopefully that will put you in X running stumpwm! See StartUp on the wiki for more examples.

Contributing

Pull requests are always welcome! Here are some guidelines to ensure that your contribution gets merged in a timely manner:

If you aren't a lisp hacker, you can contribute in the form of documenting and organizing the wiki. There's a lot of information floating around; if you find it where you didn't expect it, move or link to it in a more logical place.

Wishlist

Fancy yourself a lisp hacker? Here's a wishlist of features for the StumpWM universe (in no particular order):

Help

There's a texinfo manual, stumpwm.texi. The build scripts generate an info file you can read in emacs or with the `info' program. The manual for the latest git version (may be slightly out of date) is available to read online at: The Manual

And, as in Emacs, you can always get documentation with:

Key Help
C-t h v Variables
C-t h f Functions
C-t h k Key sequences
C-t h c Commands
C-t h w Find key sequences for a command

For other stuff (tips tricks and examples) visit the stumpwm wiki

There's a #stumpwm channel on irc.libera.chat, too.

Finally, there's our mailing list (click to sign up) stumpwm-devel@nongnu.org.