Extension Modules for StumpWM
Go to file
2017-07-30 14:19:15 -05:00
media Remove ^ from regex - .* doesn't include newlines 2017-05-27 20:52:21 +02:00
minor-mode Update URL to MPD protocol's documentation 2017-01-08 00:26:02 +02:00
modeline Fix division by zero when retrieving CPU usage 2017-05-20 14:57:29 +02:00
util Add swm-gaps module 2017-07-30 14:19:15 -05:00
.gitignore Add swm-gaps module 2017-07-30 14:19:15 -05:00
COPYING License updates 2015-10-30 15:01:20 -04:00
README.org Add Ctrl behavior option. Expand README. 2015-08-17 10:34:56 +02:00

A collection of StumpWM modules

Documentation on modules can be found on our wiki.

How to write a module

General guidelines

  • 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.

A pseudo-tutorial

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!

More docs here.

Current Modules