=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.
** Goal The main goal of =dwl-guile= is to serve as a minimal =dwm=-like Wayland compositor for those who use [[https://guix.gnu.org/][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.
** Features *** Scheme/Guile configuration 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!
*** Dynamic configuration and interaction...
Evaluate expression in real time using =dwl-guile -e "
*** ... also with a REPL! You may also use a REPL client such as [[https://www.nongnu.org/geiser/][Geiser]] to control =dwl-guile= for an even more interactive experience.
** Installation The best way to install and configure =dwl-guile= is through the Guix channel [[https://github.com/engstrand-config/home-service-dwl-guile][home-service-dwl-guile]], which (as the name suggests) provides a [[https://guix.gnu.org/manual/devel/en/html_node/Home-Configuration.html][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
** Releases The [[https://github.com/engstrand-config/dwl-guile/releases][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