Extension Modules for StumpWM
Go to file
2015-10-01 14:55:55 +02:00
media fix newline in README 2014-08-14 19:28:58 -05:00
minor-mode Rectified whitespace 2015-04-20 12:21:54 -06:00
modeline updated hostname.asd, so now package.lisp can be removed 2015-03-20 00:06:22 -03:00
util Adds a list of default commands. 2015-10-01 14:55:55 +02:00
.gitignore Create a base version of layot switcher. 2015-08-07 16:03:39 +02: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