Personal NixOS and Home Manager configurations for x86-64 and Apple Silicon machines. Built with flake-parts and import-tree using the Dendritic pattern.
modules/
profiles/ # shared configuration and hardware profiles
hosts/ # machine metadata and host-specific configuration
users/ # identities and per-user Home Manager configuration
system/ # boot, storage, persistence, and Nix
desktop/ # shared bindings, workspaces, appearance, and session helpers
programs/ # applications, compositors, adapters, and packages
services/ # service configuration
upstream/ # reusable NixOS, Home Manager, and Stylix modules
flake/ # inputs, tooling, generated files, and infrastructure
The import-tree loader discovers feature modules under modules/. Features contribute to deferred modules through three option groups:
profiles.<name>.{module,homeModule}: shared NixOS and Home Manager configuration.baseprovides headless foundations,pcadds desktop configuration, andapple-siliconextendspcfor Apple hardware.hosts.<hostname>.{module,homeModule}: profile selection and machine-specific configuration, accompanied by platform, SSH key, and user metadata.users.<username>.module: per-user Home Manager configuration, accompanied by identity and SSH keys.
Reusable modules live in modules/upstream/_modules/{nixos,home-manager,stylix}/.
The base profile imports the exported nixosModules.upstream and homeModules.upstream bundles.
Keep related settings, packages, and assets beside their owning feature.
Build packages with nix build .#<package>.
Run available passthru.updateScript hooks with just update-packages; pass package names to update a subset.
| Package | Description | Updatable |
|---|---|---|
berkeley-mono |
A love letter to the golden era of computing | |
berkeley-mono-variable |
A love letter to the golden era of computing | |
bibata-combined |
Bibata Cursor theme combining both Xcursor and hyprcursor versions | |
bibata-cursor |
Material based cursor theme | ✓ |
bibata-hyprcursor |
Bibata Cursor theme adapted for hyprcursor | |
breezex-combined |
BreezeX Cursor theme combining both Xcursor and hyprcursor versions | |
breezex-cursor |
Extended KDE cursor | ✓ |
breezex-hyprcursor |
BreezeX Cursor theme adapted for hyprcursor | |
cider |
A cross-platform Apple Music experience built on Vue.js and written from the ground up with performance in mind | ✓ |
geode |
Geometry Dash mod loader for Windows and Proton | ✓ |
google-combined |
Google Cursor theme combining both Xcursor and hyprcursor versions | |
google-cursor |
Opensource cursor theme inspired by Google | ✓ |
google-hyprcursor |
Google Cursor theme adapted for hyprcursor | |
google-sans-flex |
The next generation of Google's brand typeface | |
jupynvim |
VSCode-style Jupyter notebook editing in Neovim | ✓ |
linux-asahi-fairydust |
Experimental Asahi Linux kernel with DisplayPort Alt Mode support | ✓ |
muvm-steam |
ARM64 Steam beta client with codecs and runtime in muvm for Apple Silicon | |
pragmata-pro-variable |
Condensed monospaced font optimized for screen, designed by Fabrizio Schiavi to be the ideal font for coding, math and engineering | |
update-packages |
Update all packages in this flake that have an update script |
Definitions under modules/flake/files/ produce the following files. Regenerate them with just generate.