My attempt to move to nix from a decade of using arch
- Nix 48.3%
- TypeScript 27.6%
- Python 19.7%
- JavaScript 3.9%
- Shell 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| assets | ||
| home | ||
| homelab | ||
| hosts | ||
| parts | ||
| secrets | ||
| .gitignore | ||
| .sops.yaml | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
Branches of Yggdrasil
My machines, like how I wanted.
My attempt to move to nix after nearly a decade on Arch lulw. defo not production ready but tis what I have.
How it's wired
.
├── flake.nix # Root entrypoint: machines list + mkHost generator
├── agents/ # Agent rules and memory samples (not part of the build)
├── assets/ # Vendored themes and fonts
│ ├── fonts/ # The font pile (pulled in by parts/universal/fonts.nix)
│ ├── grub/ # GRUB boot-menu theme
│ └── plymouth/ # Boot splash
├── home/ # home-manager land, one concern per file
│ ├── base/ # Headless-safe shell bits (zsh, git)
│ ├── desktop/ # niri session, lockscreen, theming
│ ├── files/ # Vendored per-app config samples
│ ├── programs/ # App configs (kitty, fuzzel, vscode, dolphin, btop, fastfetch)
│ └── scripts/ # Helper scripts
├── homelab/ # Inventory of the SEPARATE Proxmox homelab (docs only)
├── hosts/ # One dir per machine
│ ├── svartalfheim/ # Framework 13 laptop
│ │ └── extra/ # Host-only bits, auto-imported
│ └── vanaheim/ # Desktop
│ └── extra/ # Host-only bits, auto-imported
├── parts/ # System config, split by how it switches on
│ ├── modules/ # Opt-in pieces (gpu, gaming, laptop, vpn), flag-gated
│ ├── templates/ # Declares the host.* feature flags
│ └── universal/ # Always-on base (boot, net, audio, fonts, users)
└── secrets/ # SOPS-encrypted secret store
The shell that I use is based on a heavily stripped down and customised end-4 with the rest of the description blah blah over at my .dotfiles