A fresh install · one command · done
NixOS, set up properly.
Flakes on, your config moved into a repository, a folder per host, home-manager wired in. Every guide agrees on the shape, and every guide takes an evening. nixthing does it in one command.
Act I
The usual way.
You've just installed NixOS and you want to do it right. So you ask, and the answer is very, very thorough.
01 · Flakes
Step one: turn on flakes.
They're how everyone does it, and they're still behind an "experimental" flag. So the first edit is to the file you're about to move.
02 · A repository
Then move everything.
A folder for your config, a folder per host, your two existing files copied in, ownership fixed, and a flake.nix written from scratch.
03 · home-manager
And wire in home-manager.
Another input, another module, a home.nix, and a warning about following nixpkgs that you'll only understand later.
04 · The gotcha
Then it can't find your files.
A flake only sees what git tracks, and nobody said to run git. The fix is one line, the next step, and there's always a next step.
That was one machine.
- steps to follow
- 6
- files written by hand
- 3
- errors on the way
- 1
- machines left to do
- all of them
Here's the same setup, with nixthing.
Act II
The nixthing way.
The shape everyone ends up with, written for you. It's shell scripts run straight out of the repository, so there's nothing to install first.
01 · New host
One command on a fresh install.
Flakes on, a repository with git in it, this machine's two files moved into its own folder, home-manager wired in, and switched to.
02 · What you get
The layout, already there.
A folder per host, a home for your user, and a flake that treats every machine the same way. Nothing you have to remember the shape of.
03 · The next machine
The next machine is the same line.
Run it on the desktop and it becomes a second host in the same repository, sharing your home and everything you've already declared.
04 · Every day after
And one word to switch.
switch.sh stands in for the rebuild incantation. It knows which host it's on, so it's the same command on every machine.
Act III
It's the flake you'd write.
There's no nixthing format and nothing to learn instead of Nix. It writes the ordinary flake the guides describe, so you can read it, change it, or walk away from it.
Plain Nix, in your repository.
Every host is the same function applied to its own folder, so a new machine is one line in nixosConfigurations. home-manager follows your nixpkgs, which is the warning from the chat, already handled.
| Measure | Following a chat | nixthing |
|---|---|---|
| Flakes, repository, hosts | seven steps | one command |
| home-manager | another input and a warning | wired in |
| The git gotcha | found the hard way | git is there from the start |
| The next machine | the chat again | the same command |
Moving a machine to NixOS?
Tell me what you're setting up. nixthing is how every machine here got its config.