nixos-cirno-pointing-gun

NixOS & flakes really ruin my decade of computing experience.

This month, I’ve been researching Arch-based, Debian-based, Void, Freebsd, even immutable systems like VanillaOS with ABRoot and Fedora Atomic with OSTree, including its Universal Blue derivative. It has the same flaws that every imperative system has, where you don’t have a blueprint of your own system.

NixOS really fix that: it’s designed to be high-level transparent. Your system is written in JSON with functions (which is Nix basically).

Although I can plug and play with Fedora Atomic easy and use Nix to make the process declarative, which immensely reduces cognitive load. It turns out to create more technical baggage and extensive resource usage, the system is not designed for it.

On NixOS, you still can use flatpak, distrobox, run executable binaries with an FHS environment, doing everything imperatively but sandboxed, just like Fedora Atomic does.

Rebuild your system without the need for a restart, or for more safety test your deployment first, debug it, and make changes for the next boot or make automated vm-image with just simple command nixos-rebuild vm-build. it’s more overkill if you combine Nix with Btrfs snapshots for backup your home directory.

Important thing I learned: never use the nix-env command, because it can make your system untraceable and cluttered without a sandbox environment.

From a poweruser perspective, NixOS is the best ROI you can get. it’s the same as how you build an app, but this builds an orchestrated system for your life.

A simple question “What if I decide to use and improve this system for a decade?” is why I choose NixOS & flakes as my main operating system.