Guix System literate configurations and dotfiles
  • Scheme 96.1%
  • Emacs Lisp 3.4%
  • CSS 0.5%
Find a file
Hilton Chain 69489ccf08
nuporta: cuirass: Limit aarch64-linux builds to guix and nonguix.
Pin commit for aarch64-linux builds of channel ‘guix’.
Stop aarch64-linux builds of channel ‘rosenthal’ for now.
2026-02-02 18:05:16 +08:00
config nuporta: cuirass: Limit aarch64-linux builds to guix and nonguix. 2026-02-02 18:05:16 +08:00
dist dist/pack.sh: Rename to sign. 2025-10-03 19:59:38 +08:00
files nuporta: setup-mirror: Adjust nars list creation and cleaning-up. 2026-02-02 18:05:14 +08:00
LICENSES Update REUSE.toml. 2026-01-28 08:48:20 +08:00
modules/installer modules/installer: Split the patch. 2026-01-25 00:24:52 +08:00
.dir-locals.el 2025-08-12. 2025-08-12 23:14:46 +08:00
.envrc .envrc: Watch manifest.scm changes as well. 2026-01-31 17:09:40 +08:00
.gitignore Update REUSE.toml. 2026-01-28 08:48:20 +08:00
.guix-authorizations Update REUSE.toml. 2026-01-28 08:48:20 +08:00
.sops.yaml maint: Add Makefile. 2025-02-21 22:47:58 +08:00
channels.lock Update channels.lock. 2026-01-31 13:47:41 +08:00
channels.scm channels.scm: Update ‘sops-guix’ URL. 2026-01-29 19:23:06 +08:00
common.scm mirror: Lock syncing process. 2026-02-01 17:31:03 +08:00
maak.scm maak.scm: Adjust verbosity. 2026-01-31 13:47:42 +08:00
manifest.scm Add manifest.scm. 2026-01-29 19:23:04 +08:00
README.org Update REUSE.toml. 2026-01-28 08:48:20 +08:00
REUSE.toml Add manifest.scm. 2026-01-29 19:23:04 +08:00

Testament - Personal dot(?)files

This repository contains my dotfiles and Guix System literate configurations.

Structure

config
Guix System configurations.
files/deploy
Configurations for guix deploy.
files/dotfiles
Dotfiles for home-dotfiles-service-type.
files/plain
Files to be referenced in configurations.
modules
Guile libraries (e.g. Guix System installer) forked from other projects.

See maak.scm for usage.

Guix channels in use:

Systems

dorphine (x86_64-linux, UEFI, ZFS, NVIDIA) | deploy

chapra (x86_64-linux, UEFI, ZFS) | deploy

nuporta (x86_64-linux, UEFI, ZFS) | deploy

ignamma (x86_64-linux, UEFI, XFS) | deploy

worker | deploy

Build workers for Guix Moe build farm.

mirror | deploy

Substitute mirrors for Guix Moe build farm.

LiveCDs

I provide Guix System installation LiveCDs in this repository, pre-built images below.

Variants:

  • Minimal: installer-only
  • HiDPI: larger console font

Build date: 2026-01-25

Variant System Image Signature SHA256 Checksum
Default x86_64-linux default.iso default.iso.asc 58ad4670f7b8d2663e8f5c58b1d4fe9caf0de453e2cef4d9228f7a231d135f83
Minimal x86_64-linux minimal.iso minimal.iso.asc 8ef84a5a3204c487ca575829e40b7627f26ad1edc6aa6afc3aaea941f54763c3
Minimal-HiDPI x86_64-linux minimal-hidpi.iso minimal-hidpi.iso.asc fed72973945bd60311eabf85a8716c6d573621323bed00c2b13fe41cf1083c99

Once downloaded, follow Guix System's installation instructions.

Comparing with the official one, these LiveCDs integrate Linux kernel and nonfree firmwares from the Nonguix channel to support more hardware. The experience should be the same as installing on hardware that supports Linux-Libre.

To provide similiar downloading experience around the world, they are configured to use Guix Moe's infrastructure. It won't be available in the installed system, so you'll need to set it up later if you want.

For manual installation, I suggest using the installer first to configure locale, keyboard layout and networking, stopping at the step setting a password.

In the LiveCDs, fish is chosen as the login shell and several example configurations are available under /etc/configuration. These examples are based on the ones shipped in Guix, with Nonguix channel configured.

Here follows ttys in the LiveCDs:

tty1 (Ctrl+Alt+F1)
Guix System installer.
tty2 (Ctrl+Alt+F2)
GNU Guix reference manual.
tty3~6 (Ctrl+Alt+F3 ~ Ctrl+Alt+F6)
root shell.
tty7 (Ctrl+Alt+F7)
Login manager (not included in the Minimal variant).
tty12 (Ctrl+Alt+F12)
System log.

For the login manager: it logs into a desktop environment built around the niri Wayland compositor

Default keybindings:

Super+Shift+/
Open an overlay for available hotkeys.
Super+T
Open terminal emulator: foot.
Super+D
Open application launcher: rofi.

Configurations files for the environment, including a pre-configured Emacs text editor are managed in the Rosenthal channel, exposed as %rosenthal-skeletons and available under /etc/skel when configured.

A set-keymap script is provided for keyboard layout setup. Since the installer already does part of its work, you generally don't need it.

  Usage: set-keymap LAYOUT [VARIANT] [-m MODEL] [-o OPTIONS]

  OPTIONS are comma-separated e.g. "ctrl:nocaps,grp:alt_shift_toggle"

Example usage below

  $ set-keymap us dvorak -o ctrl:nocaps

For a full list of available layouts, variants, models and options, refer to the xkeyboard-config.7 manual page.

Resources

A Scheme Primer
Nice short guide to get you started with Scheme.
GNU Guix Reference Manual (info "(guix)")
See Getting Started if you want an entry point.
GNU Guix Cookbook (info "(guix-cookbook)")
Tutorials and detailed examples. Some entries may be outdated, contribution is welcome ;)
Contact — GNU Guix
Official communication channels.
Packages — GNU Guix
Official package index, guix channel only (see Channels in Guix manual).
Toys / Webring for GNU Guix channels
Unofficial package index, including most known Guix channels.