aboutsummaryrefslogtreecommitdiff
path: root/CLAUDE.md
diff options
context:
space:
mode:
authorNatasha Moongrave <natasha@256phi.eu>2026-04-04 23:08:40 +0200
committerNatasha Moongrave <natasha@256phi.eu>2026-04-04 23:08:40 +0200
commitcf0c9f66c4b5d9e6342c1eac302d0e6bbe9b1587 (patch)
tree906df69461643f32ff2987b6ed60a4641ca4070a /CLAUDE.md
parent34b430244dd21d6fb21bf0463190535574d1a1fc (diff)
Refactor rice system imports to flake level
- Rice system configs now imported in flake mkSystem helper - Removed rice system.nix imports from host configurations - mkSystem now takes hostname and rice name as parameters - Fixes module ordering issue where rice options weren't defined yet
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md57
1 files changed, 44 insertions, 13 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 0153194..d7cd295 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -9,17 +9,27 @@ NixOS flake configuration for multiple machines (kronos laptop, herra desktop) u
## Common Commands
```bash
-# Apply configuration
+# Apply configuration (full rebuild and activation)
sudo nixos-rebuild switch
-# Test without applying
+# Test configuration without making it the default boot option
sudo nixos-rebuild test
-# Validate flake syntax
+# Validate flake syntax and check for errors
nix flake check
-# Preview changes
+# Preview what changes would be made
sudo nixos-rebuild dry-run
+
+# Update flake inputs to latest versions
+nix flake update
+
+# Update specific input (e.g., nixpkgs)
+nix flake lock --update-input nixpkgs
+
+# Build for specific host
+sudo nixos-rebuild switch --flake .#kronos
+sudo nixos-rebuild switch --flake .#herra
```
## Architecture
@@ -44,31 +54,52 @@ home/rices/{nord-blue,original}/ # Desktop themes
## Key Files
-- `flake.nix` - Defines inputs (nixpkgs, home-manager, stylix, fenix)
-- `hosts/kronos/configuration.nix` - Laptop config
-- `hosts/herra/configuration.nix` - Desktop config (dual-boot)
+- `flake.nix` - Defines inputs (nixpkgs, nixpkgs-unstable, home-manager, stylix, fenix, crane, nixowos) and outputs
+- `hosts/kronos/configuration.nix` - Laptop-specific config (minimal: just hostname)
+- `hosts/herra/configuration.nix` - Desktop config (dual-boot with Windows 11, uses GRUB OS prober)
- `system/default.nix` - System module orchestrator
- `system/packages.nix` - System-wide packages
-- `home/mun/default.nix` - User orchestrator (imports active rice)
-- `home/rices/nord-blue/variables.nix` - Active rice colors
+- `home/mun/default.nix` - User orchestrator (imports active rice, user packages, programs)
+- `home/rices/nord-blue/variables.nix` - Active rice color definitions
+- `home/rices/nord-blue/default.nix` - Active rice module orchestrator
## Adding Configurations
-**New system package:** Add to `system/packages.nix`
+**New system package:** Add to `system/packages.nix` under `environment.systemPackages`
+
+**New user package:** Add to `home/mun/default.nix` under `home.packages` (supports fenix Rust toolchain, TeX Live combinations, RetroArch cores)
**New system module:** Create in `system/`, add to `system/default.nix` imports
**New user program:** Create in `home/mun/programs/`, add to `home/mun/default.nix` imports
-**New rice module:** Create in active rice directory, add to its `default.nix`
+**New rice module:** Create in active rice directory (`home/rices/nord-blue/`), add to its `default.nix` imports
-**New rice:** Create `home/rices/my-rice/` with `default.nix` and `variables.nix`
+**New rice:** Create `home/rices/my-rice/` with `default.nix` (imports modules) and `variables.nix` (colors, wallpaper)
## Switching Rices
Edit `home/mun/default.nix` to change the rice import:
```nix
-../rices/nord-blue # or ../rices/original
+imports = [
+ ./programs/zsh.nix
+ ./programs/ssh.nix
+ ./programs/git.nix
+ ../rices/nord-blue # Current: alacritty, i3, nvim, helix, picom, fastfetch
+ # ../rices/original # Alternative: kitty, i3, polybar, rofi, dunst, neovim, nnn, picom
+];
```
Then: `sudo nixos-rebuild switch`
+
+## Important Architecture Details
+
+**Overlays:** Flake provides `pkgs.unstable.*` for accessing bleeding-edge packages from nixpkgs-unstable while staying on stable 25.11
+
+**NixOwOs Integration:** Enabled in `home/mun/default.nix` for NixOS branding/theming (os-release customization, overlays)
+
+**Machine Separation:** Host configs are intentionally minimal (hostname + hardware). All shared system config lives in `system/`, all shared user config in `home/mun/`
+
+**Rice Philosophy:** Rices are purely home-manager level. Desktop environment (X11 + i3wm base) is defined in `system/desktop.nix`, rices only configure appearance/theming
+
+**Stylix:** System-level theming framework imported at flake level, configured in `system/stylix.nix`