This is precisely why I use NixOS. I have almost my entire configuration as “code” (data structures more like, but what’s the difference any way?), such that when I break something, I can just undo my commits and go back to a working version (and the OS itself retrains several snapshots, so I can always pick the previous one.
And with LLMs the bar to do things, with my nix configuration (nixcfg), has lowered to the ground. Throw in a few videos from Vimjoyer and you got a stew going.
I’ve hopped from HoloISO to Nobora and EndeavourOS to OpenSUSE. Landed on NixOS on all my machines now and it’s perfect. There’s a bit of a learning curve even compared to other distros but once it clicks, you wonder why you weren’t using it earlier.
To get started: Install NixOS, grab your /etc/nix/configuration.nix, and /etc/nix/hardware-configuration.nix (from the top of my head) and throw them in a git repo. nix-shell -p <application> if you quickly need a shell with a specific (temporary) program, like git (just for bootstrapping; add git to the configuration.nix if you wish to keep it.
Start with that, and slowly keep adding programs, configuration. If you eventually wish to add a second computer to the one configuration (so you can start reusing configuration), do that. Keep steps small.
Here you can dig through each step I take in my nixcfg - I started with just the configuration.nix, and share that between machines, but it turns out you’re supposed to add the hardware-conguration.nix to the repo as well, so then I started to do that (with still a shared configuration.nix. Well, partially:
This is precisely why I use NixOS. I have almost my entire configuration as “code” (data structures more like, but what’s the difference any way?), such that when I break something, I can just undo my commits and go back to a working version (and the OS itself retrains several snapshots, so I can always pick the previous one.
And with LLMs the bar to do things, with my nix configuration (nixcfg), has lowered to the ground. Throw in a few videos from Vimjoyer and you got a stew going.
Urge to distro hop again…rising…
I’ve hopped from HoloISO to Nobora and EndeavourOS to OpenSUSE. Landed on NixOS on all my machines now and it’s perfect. There’s a bit of a learning curve even compared to other distros but once it clicks, you wonder why you weren’t using it earlier.
To get started: Install NixOS, grab your
/etc/nix/configuration.nix, and/etc/nix/hardware-configuration.nix(from the top of my head) and throw them in a git repo.nix-shell -p <application>if you quickly need a shell with a specific (temporary) program, like git (just for bootstrapping; add git to theconfiguration.nixif you wish to keep it.Start with that, and slowly keep adding programs, configuration. If you eventually wish to add a second computer to the one configuration (so you can start reusing configuration), do that. Keep steps small.
Here you can dig through each step I take in my nixcfg - I started with just the
configuration.nix, and share that between machines, but it turns out you’re supposed to add thehardware-conguration.nixto the repo as well, so then I started to do that (with still a sharedconfiguration.nix. Well, partially:https://github.com/NostraDavid/nixcfg/commits/master/?after=78d40edc8b756088a73fd087808d438eabbcf06f+401
Read nixstory.md if you want to see a quick LLM-generated history of how my repo changed over time (based on my git history).
So it’s kinda like klipper/mainsail but for an operating system?