This is our opinionated, minimalist GNU Guix configuration.
It features rde
, Emacs (evil mode) and various Wayland applications.
We have patched some of our favorite applications with GNU Guile support and also created some tools from scratch in Guile, for example:
Application | Description | Links |
---|---|---|
dwl-guile | dynamic tiling window manager | repo, home service |
dtao-guile | a minimal status bar | repo, home service |
farg | system colorscheme manager | repo/home service |
bemenu-prompt | create bemenu prompts in Guile | source |
We like configuring as much as possible (WM, status bar etc.) in Guile, since it brings a unified approach to the configuration of our computing environment.
We own a number of desktop/laptop computers and they all have their own configuration file in ./engstrand/systems
.
In the system-specific configuration file we define hardware-specific settings such as mount points for drives, LUKS encryption, the resolution and refresh rate of monitors and more.
Our user-level configurations reside in ./engstrand/configs
.
This includes name, email address, GPG public key, default applications, personalized appearance of the window manager etc.
The entry point for applying a configuration to our rde
-powered Guix system is ~/.config/guix/config.scm
, so in order to reconfigure the system we run
RDE_USER=$USER \
RDE_TARGET=system \
sudo guix system reconfigure ~/.config/guix/config.scm
and similarly, to reconfigure the home environment
RDE_USER=$USER \
RDE_TARGET=home \
guix home reconfigure ~/.config/guix/config.scm
So, what is in ~/.config/guix/config.scm
?
That depends on the user and system configuration we would like to apply. For example, on the desktop system named ghost
that the user johan
uses, config.scm
contains the following:
(use-modules (engstrand reconfigure))
(make-config #:user "johan" #:system "ghost")
The build-iso.sh
script builds a GNU Guix System ISO that has
- the full Linux kernel
- the channels in
./engstrand/channels.scm
included
Passwords for e.g. git send-mail are fetched from Bitwarden using the rbw
binary. On newly installed computers, you need to first register your device to the Bitwarden API.
- Login to your Bitwarden account in your browser.
- Navigate to https://vault.bitwarden.com/#/settings/security/security-keys.
- Create/view your API key.
- Run
rbw register
. - Enter the client id and secret as requested.
- If you are using 2FA for your account, login using
rbw login
. - Done.
To improve the adblock in qutebrowser, you need to install the Brave adblocker. This needs to be manually downloaded from pip (for now).
Run pip install adblock
, followed by :adblock-update
in qutebrowser.