From: Jakub Czajka Date: Sat, 30 May 2026 14:42:29 +0000 (+0200) Subject: [ai] Initialize CLAUDE.md. X-Git-Url: https://git.ekhem.eu.org/?a=commitdiff_plain;h=12298bc8d00a072e329350d468203e75d6ba5c1a;p=guix.git [ai] Initialize CLAUDE.md. --- diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 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. +- / — Dotfile tree for a . +- 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 / 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.