System configuration for my machines using the Dendritic pattern — a structured way to organise NixOS/nix configurations as reusable modules that anyone can adopt.
- A devshell with handy hooks to keep your config orgnised,
- A formatter set under the flake makes it easy as one command
nix fmtto format the codebase, - Flake Templates such as language specific environments
- Module option Helpers template that offers module Helpers such as (nixvim, nix-darwin, nixos, nixpkgs, etc..) available such as an easy
nix flake init -t github:eveeifyeve/dotfiles#module-option-helpers - A good configuration examples
| Platform | Status |
|---|---|
| NixOS | ✅ Supported |
| Home-Manager | |
| Hjem | ❌ Not supported at all (simply due to missing module support/maturity) |
| nix-darwin (macOS) | ✅ Supported |
| nix-on-droid | 🚧 In progress |
| nix-bsd | 🟠 (Highly expermential & not tested) |
| nix-windows | ❌ (Will work on it once nix-windows exists) |
| System-Manager | 🟠 (Highly expermential, not tested & missing module support) |
| Need support for another platform? Open a GitHub issue if one doesn't already exist (don't open a new issue if one exists, just 👍 if you think it's important). |
- Darwin:
sudo nix run --extra-experimental-features "nix-command flakes" nixpkgs#git -- clone https://github.com/eveeifyeve/dotfiles /etc/nixos
sudo nix run nix-darwin/master#darwin-rebuild -- switch --flake /etc/nixos- NixOS (Manual):
nix run --extra-experimental-features "nix-command flakes" nixpkgs#git -- clone https://github.com/eveeifyeve/dotfiles /etc/nixos
sudo nixos-rebuild switch --flake /etc/nixos#<your-hostname>
This repo uses nh, a friendly wrapper around nixos-rebuild, darwin-rebuild, and home-manager. It gives cleaner output and handles common tasks automatically.
See the nh documentation for available commands →
Keeping your system up to date is a two-step process: update the lock file, then rebuild.
a. Manually — run the following to update all flake inputs and commit it:
nix flake update
git add flake.lock && git commit -m "chore: update flake inputs"b. Automatically — use Renovate or Dependabot to open pull requests for input updates, then merge them.
- NixOS / Darwin: Your system will pick up the changes on the next rebuild (or automatically if you use the deployment service comin).
- Home-Manager: You need to manually trigger a rebuild — see the rebuild section above.