_                    _                       _       _
 _ __ (_)_ __  ___  ___    | |_ ___ _ __ ___  _ __ | | __ _| |_ ___
| '_ \| | \ \/ / _ \/ __|  | __/ _ \ '_ ` _ \| '_ \| |/ _` | __/ _ \
| | | | |  >  < (_) \__ \  | ||  __/ | | | | | |_) | | (_| | ||  __/
|_| |_|_| /_/\_\___/|___/   \__\___|_| |_| |_| .__/|_|\__,_|\__\___|
                                             |_|      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.

The just menu

▸ what you get

Flake-first

Fully reproducible with flake.lock — one command to build any host.

Profile-based Home Manager

base · desktop · development · server profiles compose cleanly.

Multi-host templates

desktop · laptop · server · WSL2 · macOS — ready to clone.

GPU auto-detection

AMD, NVIDIA, and Intel configured declaratively.

VM testing

Spin up any host as a QEMU VM in seconds — no install.

Installer ISOs

Build bootable NixOS installers pre-seeded with your config.

agenix secrets

age-encrypted secrets wired into systemd — zero plaintext in the store.

The just menu

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
];

full code showcase

▸ screenshots

explore the full menu