Guix Configuration
home: quotes: Add quote.
emacs: rs-erc: Remove #pine64 from pine64.org autojoin alist
services: btrfs: Create btrfs-maintenance-service-type.


browse  log 



You can also use your local clone with git send-email.

Table of Contents

builds.sr.ht status

1. Introduction

This is a custom channel containing my Guix configuration for operating systems, home environments, and the like. Secrets are stored out of band for obvious reasons.

The channel directory structure looks like this:

├── configs
├── home
│   ├── configs
│   ├── manifests
│   └── services
├── machines
├── services
├── system
├── transformations
└── utils
  • configs contains global variables used within system, home, and machines directories.
    • This may include services, Xorg configuration blocks, etc.
  • home contains home environments and their configurations
    • The configs and services subdirectories are the home-specific equivalent of the top-level configs and services.
    • manifests contains loosely organized packages
  • machines contains operating systems and machine lists used by $ guix deploy
  • services contains custom service types
  • systems contains generic operating systems. These are primarily inherited by other systems to share behavior.
  • transformations contains functions that use record inheritance to add arbitrary configuration data to operating systems that may be difficult to express with service extensions.
  • utils contains helper functions that don't fit elsewhere.

2. Usage

Save the following to a file.

  (name 'rsent)
  (url "https://git.sr.ht/~freakingpenguin/rsent")
  (branch "master")
    ;; Use commit after .guix-authorizations appeared because I merged a
    ;; branch the wrong direction.
     "0BC0 5236 B0DA D691 2F6E  1993 A2D2 1FA4 2A90 8978"))))

Then run

$ guix pull -C <file-name>

Alternatively, you can use the channels.scm file stored in the init branch. To do that:

$ git checkout init
$ guix pull -C channels.scm

For temporary use and testing unpushed/pulled changes, you can use

$ guix <command> -L . <args>

3. StumpWM

StumpWM is currently split into two parts; a system-level package and a home-level configuration. If odd behavior is detected (e.g. SBCL attempting to place .fasl in /gnu/store), ensure that:

  1. Builds are done with --no-grafts
    1. https://issues.guix.gnu.org/62890
  2. System and Home are reconfigured with the same version
    1. Outside of SBCL version mismatches (which at least print helpful error messages), changes to Mesa/Xorg/similar may cause SBCL to attempt to recompile files in /gnu/store when the System is reconfigured and Home is stagnant.

4. YubiKey

To set up a Yubikey after initial system installation, run the following commands with the YubiKey connected:

$ gpg --card-edit

$ gpg --card-status