Skip to content

engstrand-config/guix-dotfiles

Repository files navigation

The GNU/Linux+Engstrand system

This is our opinionated, minimalist GNU Guix configuration. It features rde , Emacs (evil mode) and various Wayland applications.

./images/desktop.jpeg ./images/apps.jpeg

Applications

We have patched some of our favorite applications with GNU Guile support and also created some tools from scratch in Guile, for example:

ApplicationDescriptionLinks
dwl-guiledynamic tiling window managerrepo, home service
dtao-guilea minimal status barrepo, home service
fargsystem colorscheme managerrepo/home service
bemenu-promptcreate bemenu prompts in Guilesource

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.

System level configuration

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.

User-level configuration

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.

Reconfiguring the system

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")

Building an installation ISO

The build-iso.sh script builds a GNU Guix System ISO that has

  • the full Linux kernel
  • the channels in ./engstrand/channels.scm included

Usage

Bitwarden CLI setup using rbw

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.

  1. Login to your Bitwarden account in your browser.
  2. Navigate to https://vault.bitwarden.com/#/settings/security/security-keys.
  3. Create/view your API key.
  4. Run rbw register.
  5. Enter the client id and secret as requested.
  6. If you are using 2FA for your account, login using rbw login.
  7. Done.

Qutebrowser adblock

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.