Stumpwm is a “everything-and-the-kitchen-sink WM” or “the emacs of WMs.”
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.
Use the playbook below. Also found in my Ansible repo
- name: Install StumpWM from Quicklisp
hosts: localhost
vars:
qldir: '{{ansible_env.HOME}}/quicklisp'
qlpath: '{{ansible_env.HOME}}/quicklisp.lisp'
slpath: '{{ansible_env.HOME}}/quicklisp/setup.lisp'
tasks:
- name: Download Quicklisp
get_url:
url: https://beta.quicklisp.org/quicklisp.lisp
dest: '{{qlpath}}'
- name: Check if Quicklisp already installed
stat:
path: '{{slpath}}'
register: setup
- name: Install Quicklisp
shell: |
sbcl --load {{qlpath}} --eval '(quicklisp-quickstart:install)'
sbcl --load {{slpath}} --eval '(ql:add-to-init-file)'
when: not setup.stat.exists
- name: Install StumpWM and StumpWM contrib packages
shell: |
sbcl --load {{slpath}} --eval '(ql:quickload :stumpwm)'
sbcl --load {{slpath}} --eval '(ql:quickload :xembed)'
sbcl --load {{slpath}} --eval '(ql:quickload :swank)'
sbcl --load {{slpath}} --eval '(ql:quickload :quicklisp-slime-helper)'
sbcl --load {{slpath}} --eval '(ql:quickload :zpng)'
Get Quicklisp from here:
curl -O https://beta.quicklisp.org/quicklisp.lisp
curl -O https://beta.quicklisp.org/quicklisp.lisp.asc
gpg --verify quicklisp.lisp.asc quicklisp.lisp
Then load it into the REPL with:
sbcl --load quicklisp.lisp
From the REPL, install it:
(quicklisp-quickstart:install)
And make sure you have added it to your lisp init file using:
(ql:add-to-init-file)
Install stumpwm and some packages we need for niceties.
(ql:quickload :stumpwm) ;; Install stumpwm
(ql:quickload :xembed) ;; Required by stumptray
(ql:quickload :clx-truetype) ;; Required by ttf-fonts
(ql:quickload :swank) ;; Required by slime-connect
(ql:quickload :quicklisp-slime-helper) ;; Required by slime-connect
(ql:quickload :zpng) ;; Required by screenshot
Next add the following line to your .xinitrc to be able to run with startx
:
sbcl --eval '(require :stumpwm)' --eval '(stumpwm:stumpwm)'
Clone the StumpWM Contrib repo to ~/.stumpwm-contrib
. I am using a few
modules from this source.
The rest of my own custom modules can be located here.
https://dataswamp.org/~solene/2016-06-06-stumpwm.html