Documentation on modules can be found on our wiki.
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.
- 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 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")
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!
Loading a module can usually be done in your ~/.stumpwmrc
for a module module-name
using:
(load-module "module-name")
Please see README.org
files for each module for further details. Missing module dependencies, can be installed with:
(ql:quickload "notify")
Advertise your module here, open a PR and include a org-mode link!
- stumpwm-weather
- Displays weather in the modeline
- stumpwm-dmenu
- StumpWM dmenu integration
- stumpwm-pamixer
- Pulseaudio volume and microphone control module
- stumpwm-acpi-backlight
- ACPI backlight control module for StumpWM
- stumpwm-mullvad
- StumpWM mullvad cli integration
(click for its respective README/docs)
- amixer
- Manipulate the volume using amixer
- stump-radio
- Minimalistic mplayer-based radio for StumpWM.
- stump-volume-control
- Minimalistic amixer-based volume control for StumpWM.
- stumpwm-sndioctl
- Interface to OpenBSD’s sndioctl from StumpWM.
- mpd
- Displays information about the music player daemon (MPD).
- notifications
- A notification library that sends notifications to the modeline via stumpish or from stumpwm itself.
- battery-portable
- Add battery information to the modeline in a portable way.
- bitcoin
- Display bitcoin price on StumpWM modeline.
- clim-mode-line
- A modeline written in CLIM
- cpu
- Add cpu info to the modeline.
- disk
- Display filesystem information in the modeline
- hidden
- Add hidden window info to the modeline.
- hostname
- Put hostname in the StumpWM modeline
- maildir
- Display maildir information in the modeline (%M conflicts with mem).
- mem
- Display memory in the modeline, %M conflicts with maildir.
- net
- Displays information about the current network connection.
- stumptray
- System Tray for stumpwm.
- ticker
- Display ticker price on StumpWM modeline.
- wifi
- Display information about your wifi.
- alert-me
- Alert me that an event is coming
- app-menu
- A simple application menu for launching shell commands
- beckon
- Beckon the mouse to the current window
- binwarp
- Keyboard-driven divide-and-conquer mouse control mode.
- browse
- Open the default web browser portably
- clipboard-history
- Simple clipboard history module for StumpWM
- command-history
- Save and load the stumpwm::*input-history* to a file
- desktop-entry
- desktop-entry
- end-session
- Provides commands to stumpwm that allow the user to shutdown, restart, and logoff through the stumpwm UI
- globalwindows
- Manipulate all windows in the current X session
- gnu-pw-mgr
- Reconstruct passwords with gnu-pw-mgr
- swm-golden-ratio
- Resize the currently focused frame to the golden ratio
- kbd-layouts
- Keyboard layout switcher for StumpWM
- logitech-g15-keysyms
- Describe logitech-g15-keysyms here
- lookup
- Dictionary/search engine lookup module for StumpWM.
- notify
- DBus-based notification server part
- numpad-layouts
- A module for handling different keyboards numpad layouts
- pass
- Integrate ‘pass’ with StumpWM
- passwd
- A simple password utility based on ironclad.
- perwindowlayout
- Change the keyboard layout per window.
- pinentry
- Integrate GnuPG Agent with StumpWM
- swm-pomodoro
- Pretty basic Pomodoro-tracker for StumpWM.
- productivity
- Lock StumpWM down so you have to get work done.
- qubes
- Integration to Qubes OS (https://www.qubes-os.org)
- screenshot
- Takes screenshots and stores them as png files
- searchengines
- Allows searching text using prompt or clipboard contents with various search engines
- shell-command-history
- Save and load the stumpwm::*input-shell-history* to a file
- spatial-groups
- Spatial Groups navigation for StumpWM
- stump-backlight
- Native backlight control from StumpWM
- stump-lock
- Screen locker in StumpWM
- stump-nm
- StumpWM integration with NetworkManager
- surfraw
- Integrates surfraw with stumpwm.
- swm-clim-message
- Display StumpWM messages and menus through CLIM
- swm-emacs
- A set of utilities for launching the beast.
- swm-gaps
- Pretty (useless) gaps for StumpWM
- swm-ssh
- A simple menu selector for ssh to a remote host for stumpwm that parses your ssh config to get available hosts
- ttf-fonts
- A pure lisp implementation of TTF font rendering.
- undocumented
- Look for stuff that should probably be in the manual that isn’t
- urgentwindows
- Allows focusing application windows that need user attention
- wacom
- Map StumpWM frames to Wacom tablets using `xsetwacom`.
- windowtags
- Add metadata to windows to manipulate them en mass.
- winner-mode
- Emacs’ winner-mode for StumpWM