]> git.ekhem.eu.org Git - guix.git/commitdiff
[ai] Initialize CLAUDE.md.
authorJakub Czajka <jakub@ekhem.eu.org>
Sat, 30 May 2026 14:42:29 +0000 (16:42 +0200)
committerJakub Czajka <jakub@ekhem.eu.org>
Wed, 24 Jun 2026 22:53:01 +0000 (00:53 +0200)
CLAUDE.md [new file with mode: 0644]

diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644 (file)
index 0000000..5fd7a4f
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,41 @@
+# Overview
+
+GNU Guix configuration for a single machine, split across two files:
+
+- system.scm - Operating system configuration.
+- home.scm   - Home directory configuration.
+
+# Directories
+
+- conf/common/ — Shared definitions (service types, package constructors).
+- conf/home/   — Home directory services.
+- conf/system/ — Operating system services.
+- <program>/   — Dotfile tree for a <program>.
+- scripts/     — Shell scripts packaged as Guix packages.
+
+GUIX_PACKAGE_PATH is set to the repo root during reconfigure, so modules under
+conf/ are importable by their file path — e.g. conf/home/bash.scm is imported as
+(conf home bash).
+
+# System Profiles
+
+PROFILE selects between libre and nonfree setups at build time:
+
+- PROFILE=libre   — Free software only (e.g. linux-libre).
+- PROFILE=nonfree — Allows nonfree firmware (e.g. nonfree firmware blobs).
+  Requires the nonguix channel.
+
+# Home Directory
+
+Programs in the home configuration have dotfiles, which are installed alongside
+the program and respect the XDG base directory specification. Each program's
+dotfiles live in a <program>/ directory whose internal structure mirrors $HOME,
+e.g. emacs/.config/emacs/init.el → ~/.config/emacs/init.el.
+
+Core service types:
+
+- home-program-service-type (conf/home/program.scm) — primary building block
+  which installs the program and dotfiles. See home-program-configuration.
+- home-symlink-service-type (conf/home/symlink.scm) — symlinks files into the
+  home directory. Strips the first path component of each dotfile to derive its
+  $HOME-relative target.