diff options
| author | Natasha Moongrave <natasha@256phi.eu> | 2026-04-04 23:08:40 +0200 |
|---|---|---|
| committer | Natasha Moongrave <natasha@256phi.eu> | 2026-04-04 23:08:40 +0200 |
| commit | cf0c9f66c4b5d9e6342c1eac302d0e6bbe9b1587 (patch) | |
| tree | 906df69461643f32ff2987b6ed60a4641ca4070a /CLAUDE.md | |
| parent | 34b430244dd21d6fb21bf0463190535574d1a1fc (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.md | 57 |
1 files changed, 44 insertions, 13 deletions
@@ -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` |
