Personal NixOS configuration with multi-host support: desktop, laptop, WSL, VM, and homelab.
Built with Flakes, Home-Manager, SOPS-nix, and a public/private split using composable flake modules.
switch # auto-detects hostname and private repo
switch wsl # specify a hostnalyx/ (public) nalyx-private/ (optional flake)
βββ flake.nix βββ flake.nix (exports modules)
βββ vars.nix βββ nixos/ (SOPS, passwords, secrets)
βββ hosts/ βββ home/ (MCPs, scripts, aliases)
β βββ desktop/ βββ secrets/secrets.yaml
β βββ laptop/
β βββ wsl/
β βββ vm/
β βββ homelab/
βββ modules/ (core, desktop, drivers, services)
βββ home/features/ (cli, desktop, languages, programs)
βββ ci/empty-private/ (CI placeholder)
The private repo is an optional flake that exports NixOS and Home-Manager modules. When present, they overlay config on top of public defaults. When absent, the system builds with safe defaults.
No public module references secrets, private URLs, or knows the private repo exists.
| Host | Description | Desktop | Extras |
|---|---|---|---|
desktop |
Main PC | Hyprland / GNOME | NVIDIA, Steam, gaming |
laptop |
Notebook | Hyprland / GNOME | Intel |
wsl |
WSL2 | None | Docker Desktop |
vm |
Test VM | Hyprland / GNOME | Minimal |
homelab |
Server | None | Tailscale, SSH, headless |
| Layer | Technologies |
|---|---|
| System | NixOS, Flakes, Home-Manager |
| Desktop | Hyprland (Caelestia), GNOME |
| Secrets | SOPS-nix, Age |
| Boot | Lanzaboote (Secure Boot), systemd-boot |
| Shell | Zsh, Oh-My-Zsh |
| Drivers | NVIDIA, Intel |
git clone https://github.com/alysnnix/nalyx.git ~/nalyx
cd ~/nalyxgit clone git@github.com:alysnnix/nalyx-private.git .private/nalyx-private# First time (switch alias doesn't exist yet)
bash home/features/cli/zsh/scripts/update-sys.sh wsl
# After the first rebuild
switch wslnix develop # Enter dev shell (activates pre-commit hooks)
nix fmt # Format all Nix files
nix flake check --no-build # Validate configurationsPre-commit hooks: nixfmt, statix, deadnix
Packages sourced from outside nixpkgs:
| Package | Source | Description |
|---|---|---|
| Claude Code | sadjow/claude-code-nix | Nix package for Anthropic's Claude Code CLI |
All other flake inputs (home-manager, sops-nix, lanzaboote, etc.) are tools from the NixOS ecosystem and don't package external software.