Documentation on modules can be found on our wiki.
- Create your own package and optionally import the stumpwm package. Don’t use the stumpwm package. If you need a symbol exported, open an issue.
- Use
asdf
. - Document exported symbols and commands.
- Stay organized! Put things in neat little directories. A distro might want to package your module.
The path of least resistance is to use `quickproject` and its helper functions. Specifically (get quicklisp):
(ql:quickload "quickproject")
(quickproject:make-project #p"~/path/to/new-module" :depends-on '(stumpwm) :name "swm-new-module")
Then in ~/path/to/new-module/
you will have:
-rw-rw-r-- 1 dave dave 68 Apr 6 19:38 package.lisp -rw-rw-r-- 1 dave dave 53 Mar 16 2014 README.txt -rw-rw-r-- 1 dave dave 271 Mar 16 2014 swm-new-module.asd -rw-rw-r-- 1 dave dave 1.8K Apr 6 17:51 swm-new-module.lisp
The files that are important for you are package.lisp
and
swm-new-module.asd
. They contain the asdf
metadata that describes
your project.
An example asd
file looks like:
(asdf:defsystem #:swm-new-module :serial t :description "Describe swm-new-module here" :author "Guy Steele" :license "GPLv3" :depends-on (#:stumpwm) :components ((:file "package") (:file "swm-emacs"))) ; any other files you make go here
A package.lisp
looks like:
(defpackage #:swm-new-module (:use #:cl :stumpwm))
From here you can commence hacking. When you’re ready, advertise it to the world!
(click for its respective README/docs)