1
0
Fork 0
forked from hako/Testament
Guix System literate configurations and dotfiles
  • Scheme 63.4%
  • Emacs Lisp 23.7%
  • Shell 6.2%
  • CSS 3.8%
  • Makefile 2.9%
Find a file
2025-10-27 23:25:50 +08:00
config dorphine: notmuch: Tag trashed mails. 2025-10-27 23:25:50 +08:00
dist dist/pack.sh: Rename to sign. 2025-10-03 19:59:38 +08:00
files Remove iocaine. 2025-10-27 23:25:50 +08:00
LICENSES LICENSES: Use text versions from upstream that fits in 80 columns. 2025-06-17 16:55:01 +08:00
.dir-locals.el 2025-08-12. 2025-08-12 23:14:46 +08:00
.envrc 2025-08-12. 2025-08-12 23:14:46 +08:00
.gitignore 2025-10-13. 2025-10-14 13:07:45 +08:00
.guix-authorizations 2025-08-12. 2025-08-12 23:14:46 +08:00
.sops.yaml maint: Add Makefile. 2025-02-21 22:47:58 +08:00
channels.lock Update channels.lock. 2025-10-26 00:12:39 +08:00
channels.scm channels: Use %default-channels. 2025-09-25 14:54:15 +08:00
common.scm Remove 'blobs' submodule. 2025-10-26 00:12:39 +08:00
Makefile Makefile: Add 'run-%' target. 2025-10-26 00:13:09 +08:00
README.org Remove 'blobs' submodule. 2025-10-26 00:12:39 +08:00

Testament - Personal dot(?)files

This repository contains my dotfiles and Guix System literate configurations. Part of them are also used for the public Guix build farm and mirrors I run.

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.

See Makefile for usage.

Guix channels in use:

Systems

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

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

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

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

rakuen (aarch64-linux, UEFI, XFS) | deploy

worker | deploy

Temporary build workers for Guix Moe CI.

mirror | deploy

Mirrors for Guix Moe CI substitutes.

LiveCDs

I provide two LiveCDs for the manual installation of Guix System. Pre-built images are available for x86_64-linux: https://files.boiledscript.com/livecd/

These LiveCDs use fish as the login shell. NetworkManager is available for network configuration. A set-keymap script is provided for keyboard setup of both LiveCDs.

  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.

This repository includes several Guix System configuration examples, they are available in the LiveCDs as well, under the /etc/configuration directory. Most of the examples are based on the templates included in Guix source tree.

Two external channels, Nonguix and Rosenthal, are configured via their transformation interfaces (TODO documentation), so you can add and remove these channels from the configurations easily.

Examples created by me (with a rosenthal- prefix in file names) are replicated from the LiveCD(s) and they have hard dependency on the Rosenthal channel. Since Rosenthal is still unstable, they are considered experimental.

console

Username: live, password: rosenthal.

To facilitate remote installation, this LiveCD starts a SSH daemon. Remember to change the password when logged in if the machine is exposed to the Internet ;)

desktop

Username: live, no password.

This LiveCD provides a pre-configured Emacs text editor and a desktop environment built around the niri Wayland compositor. Configurations files for the environment are managed in the Rosenthal channel, exposed as the %rosenthal-skeletons variable and available under /etc/skel in LiveCD and the final system if configured.

Default keybindings:

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

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.