dwl-guile allows you to configure and interact with dwl using GNU Guile through a startup configuration file and/or a REPL.
dwl-guile is based on the latest version of dwl (v0.4) and wlroots 0.16.x, and will be continuously rebased against new versions.
The main goal of dwl-guile is to serve as a minimal dwm-like Wayland compositor for those who use GNU Guix System — a GNU/Linux distribution in which the user can customize and configure their entire system in GNU Guile.
dwl-guile integrates the window manager customization with that of the rest of the system, which allows for a dynamic, programmable and reproducible configuration for our entire computing environment — all in Guile.
The file ./share/default.scm contains an example configuration. You can script the configuration to your heart’s content, since it is written in an actual programming language!
Evaluate expression in real time using dwl-guile -e "<sexp>" and change tiling layouts, bind keys and much more on the fly — there is no need to restart the compositor if you want to try something new!
You may also use a REPL client such as Geiser to control dwl-guile for an even more interactive experience.
The best way to install and configure dwl-guile is through the Guix channel home-service-dwl-guile, which (as the name suggests) provides a Guix Home service for dwl-guile.
Non-Guix System users can download the GNU Guix package manager for their current GNU/Linux distribution in order to use the Guix Home service.
An alternative way (that works without the Guix package manager) would be to
- Clone the
dwl-guilerepository - Build a
dwl-guilebinary using theMakefile - Supply the produced binary with a Guile configuration file.
The Releases section contains the dwl-guile patch for dwl and an assortment of useful patches that provide additional functionality.
Some patches are already included in the main dwl-guile patch, namely
keycode,smartborders,vanitygaps, andcyclelayout.