A collection of StumpWM modules
Documentation on modules can be found on our wiki.
Submitting a module
Right now we have an open door policy for modules. If you want it in,
just submit a PR adding the module to this repo. Follow the directory
structure already laid out below. Right before you’re ready to make
the final PR commit, run the script ’
update-readme.sh’ to have your
module (and its description) added to the appropriate category. The
script uses the ”
:description” tag in the
.asd file. The script
is pretty dumb, so if your description spans multiple lines, it
probably won’t show up correctly. Keep it short and sweet.
How to write a module
- 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.
- Document exported symbols and commands.
- Stay organized! Put things in neat little directories. A Distribution 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")
~/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
swm-new-module.asd. They contain the
asdf metadata that describes
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
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!
Loading a module
Loading a module can usually be done in your
~/.stumpwmrc for a module
README.org files for each module for further details. Missing module dependencies, can be installed with:
Third Party Modules
Advertise your module here, open a PR and include a org-mode link!
- Displays weather in the modeline
(click for its respective README/docs)
- Manipulate the volume using amixer
- Minimalistic mplayer-based radio for StumpWM.
- Minimalistic amixer-based volume control for StumpWM.
- Displays information about the music player daemon (MPD).
- A notification library that sends notifications to the modeline via stumpish or from stumpwm itself.
- Add battery information to the modeline in a portable way.
- Display bitcoin price on StumpWM modeline.
- Add cpu info to the modeline.
- Display filesystem information in the modeline
- Put hostname in the StumpWM modeline
- Display maildir information in the modeline (%M conflicts with mem).
- Display memory in the modeline, %M conflicts with maildir.
- Displays information about the current network connection.
- System Tray for stumpwm.
- Display information about your wifi.
- Alert me that an event is coming
- A simple application menu for launching shell commands
- Open the default web browser portably
- Simple clipboard history module for StumpWM
- Save and load the stumpwm::*input-history* to a file
- Provides commands to stumpwm that allow the user to shutdown, restart, and logoff through the stumpwm UI
- Manipulate all windows in the current X session
- Reconstruct passwords with gnu-pw-mgr
- Resize the currently focused frame to the golden ratio
- Keyboard layout switcher for StumpWM
- Describe logitech-g15-keysyms here
- Dictionary/search engine lookup module for StumpWM.
- DBus-based notification server part
- A module for handling different keyboards numpad layouts
- Integrate ‘pass’ with StumpWM
- A simple password utility based on ironclad.
- Change the keyboard layout per window.
- Integrate GnuPG Agent with StumpWM
- Lock StumpWM down so you have to get work done.
- Integration to Qubes OS (https://www.qubes-os.org)
- Takes screenshots and stores them as png files
- Allows searching text using prompt or clipboard contents with various search engines
- Save and load the stumpwm::*input-shell-history* to a file
- Integrates surfraw with stumpwm.
- A set of utilities for launching the beast.
- Pretty (useless) gaps for StumpWM
- A simple menu selector for ssh to a remote host for stumpwm that parses your ssh config to get available hosts
- A pure lisp implementation of TTF font rendering.
- Look for stuff that should probably be in the manual that isn’t
- Allows focusing application windows that need user attention
- Add metadata to windows to manipulate them en mass.
- Emacs’ winner-mode for StumpWM