engstrand-config / dwl-guile

Dynamic tiling Wayland compositor configurable in Guile Scheme, based on dwl and libguile - now with a REPL!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dwl-guile

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.

Goal

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.

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 “<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!

… also with a REPL!

You may also use a REPL client such as 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 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

  1. Clone the dwl-guile repository
  2. Build a dwl-guile binary using the Makefile
  3. Supply the produced binary with a Guile configuration file.

Releases

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, and
  • cyclelayout.

About

Dynamic tiling Wayland compositor configurable in Guile Scheme, based on dwl and libguile - now with a REPL!

License:Other


Languages

Language:C 91.9%Language:Scheme 6.3%Language:Makefile 1.5%Language:Shell 0.4%