My nix-darwin and NixOS config
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: add semantic version number

+21 -9
+21 -9
README.md
··· 1 1 # Nix Configuration 2 2 3 + v0.3.0 4 + 3 5 Personal NixOS and nix-darwin configurations for managing multiple machines with a unified, centralized setup. 4 6 5 7 > **Note:** This is a personal configuration repository. While you're welcome to use it as reference, it's specifically tailored to my needs and setup. ··· 95 97 All options are declared with typed defaults in `modules/options.nix`. Every system module reads values via `config.myConfig.*`; home-manager modules use `osConfig.myConfig.*`. No custom abstraction layer — it's plain NixOS module system. 96 98 97 99 **To change a value for all hosts:** 100 + 98 101 ```nix 99 102 # modules/options.nix 100 103 timeZone = mkOption { ··· 104 107 ``` 105 108 106 109 **To override for one host:** 110 + 107 111 ```nix 108 112 # hosts/laptop/default.nix 109 113 myConfig.gaming.enable = true; ··· 131 135 ### Building 132 136 133 137 **NixOS:** 138 + 134 139 ```bash 135 140 sudo nixos-rebuild switch --flake .#laptop 136 141 sudo nixos-rebuild switch --flake .#server 137 142 ``` 138 143 139 144 **macOS (first time):** 145 + 140 146 ```bash 141 147 sudo nix run nix-darwin -- switch --flake .#macmini 142 148 ``` 143 149 144 150 **macOS (subsequent):** 151 + 145 152 ```bash 146 153 sudo darwin-rebuild switch --flake .#macmini 147 154 ``` ··· 218 225 219 226 ## Inputs 220 227 221 - | Input | Version | 222 - |---|---| 223 - | [nixpkgs](https://github.com/NixOS/nixpkgs) | nixos-25.11 | 224 - | [home-manager](https://github.com/nix-community/home-manager) | release-25.11 | 225 - | [nix-darwin](https://github.com/LnL7/nix-darwin) | nix-darwin-25.11 | 226 - | [sops-nix](https://github.com/Mic92/sops-nix) | latest | 227 - | [plasma-manager](https://github.com/nix-community/plasma-manager) | latest | 228 + | Input | Version | 229 + | ----------------------------------------------------------------- | ---------------- | 230 + | [nixpkgs](https://github.com/NixOS/nixpkgs) | nixos-25.11 | 231 + | [home-manager](https://github.com/nix-community/home-manager) | release-25.11 | 232 + | [nix-darwin](https://github.com/LnL7/nix-darwin) | nix-darwin-25.11 | 233 + | [sops-nix](https://github.com/Mic92/sops-nix) | latest | 234 + | [plasma-manager](https://github.com/nix-community/plasma-manager) | latest | 228 235 229 236 ## Unified Configuration Benefits 230 237 231 238 ### Same Shell Everywhere 239 + 232 240 - **zsh** with identical aliases, history, and key bindings on all systems 233 241 - **SSH** client configuration unified (connection multiplexing, agent integration) 234 242 - **Git** settings consistent across NixOS and macOS 235 243 - **Starship** prompt looks the same everywhere 236 244 237 245 ### Platform-Specific When Needed 246 + 238 247 - **macOS**: SSH keys loaded at login via LaunchAgent (`ssh-add --apple-load-keychain`) 239 248 - **Linux desktop**: SSH keys loaded at login via systemd + ksshaskpass/KWallet 240 - - **Server**: No agent needed — SSH connections go *into* it, not out 249 + - **Server**: No agent needed — SSH connections go _into_ it, not out 241 250 - **KDE Plasma** settings only apply on Linux desktop 242 251 - **Homebrew** only on macOS 243 252 244 253 ## Documentation 245 254 246 255 ### Core Documentation 256 + 247 257 - [`lib/USAGE.md`](lib/USAGE.md) — module patterns for developers 248 - - [`docs/settings.md`](docs/settings.md) — how configuration works *(start here)* 258 + - [`docs/settings.md`](docs/settings.md) — how configuration works _(start here)_ 249 259 - [`docs/settings-config.md`](docs/settings-config.md) — full option reference 250 260 - [`docs/REFERENCE.md`](docs/REFERENCE.md) — quick-reference command card 251 261 252 262 ### Host Management 263 + 253 264 - [`docs/hosts.md`](docs/hosts.md) — hosts documentation index 254 265 - [`docs/hosts-overview.md`](docs/hosts-overview.md) — complete comparison of all three hosts 255 266 - [`docs/hosts-modification.md`](docs/hosts-modification.md) — how to modify and add hosts ··· 259 270 - [`docs/TAILSCALE-SSH.md`](docs/TAILSCALE-SSH.md) — inter-host SSH over Tailscale 260 271 261 272 ### Settings Management 273 + 262 274 - [`docs/settings.md`](docs/settings.md) — settings overview 263 275 - [`docs/settings-structure.md`](docs/settings-structure.md) — why the config is modular 264 276 - [`docs/secrets.md`](docs/secrets.md) — secrets management