_ _ _ _
_ __ (_)_ __ ___ ___ | |_ ___ _ __ ___ _ __ | | __ _| |_ ___
| '_ \| | \ \/ / _ \/ __| | __/ _ \ '_ ` _ \| '_ \| |/ _` | __/ _ \
| | | | | > < (_) \__ \ | || __/ | | | | | |_) | | (_| | || __/
|_| |_|_| /_/\_\___/|___/ \__\___|_| |_| |_| .__/|_|\__,_|\__\___|
|_| NixOS 26.05
A NixOS config you actually want to start from
Flake-based, profile-driven, multi-host. Stop copy-pasting configs — inherit a curated foundation and override only what your machine needs.
▸ see it in action
just opens a guided control panel — browse, read, pick. It previews the
command and confirms before running.

▸ what you get
Fully reproducible with flake.lock — one command to build any host.
base · desktop · development · server profiles compose cleanly.
desktop · laptop · server · WSL2 · macOS — ready to clone.
AMD, NVIDIA, and Intel configured declaratively.
Spin up any host as a QEMU VM in seconds — no install.
Build bootable NixOS installers pre-seeded with your config.
age-encrypted secrets wired into systemd — zero plaintext in the store.
A guided, zero-dependency control panel over every task.
▸ quick start
$ nix develop # enter the dev shell
$ cp -r hosts/desktop-template hosts/my-machine
$ sudo nixos-generate-config --show-hardware-config \
> hosts/my-machine/hardware-configuration.nix
Register it in flake.nix — one entry in the ADD YOUR OWN HOSTS HERE block:
my-machine = flakeUtils.mkSystem {
hostname = "my-machine";
profile = "workstation";
};
just test my-machine # activate, no boot entry yet
just switch my-machine # make it the default
Just want to look first? Boot it in a VM, no install:
nix build .#nixosConfigurations.desktop-test.config.system.build.vm
./result/bin/run-desktop-test-vm # login: vm-user / nixos
▸ a taste of the code
One builder. The machine type is a parameter, not nine near-identical functions:
nixosConfigurations = flakeUtils.allConfigurations // {
my-desktop = flakeUtils.mkSystem {
hostname = "my-desktop";
profile = "workstation";
};
};
Home Manager profiles compose; hosts override only what differs:
imports = [
../../home/profiles/base.nix # git, shell, core CLI tools
../../home/profiles/desktop.nix # GUI applications
../../home/profiles/development.nix # languages and dev tooling
];


