For me, the factors were:
- the ability to split your system configuration into logical modules. Describe one logical thing in one file, no matter how many other factors are involved. Don’t want that thing anymore? Just don’t reference the module, and all changes will be reverted.
- easily try out new configurations and roll back, regardless of underlying filesystem, without performance penalties.
- the ability to put logic into your configuration (technically, there’s no difference between what’s typically referred to as configuration and a module in nix, though the latter usually has more “logic” and provides values with lower priority).
- as a consequence, make modules transferable between systems. There’s e.g. a Lanzaboote module that enables Secure Boot in a really smart way on NixOS, and the configuration is in my opinion easier than on any other Linux system.
- the reproducibility, from which the “easy reinstallation” follows
From a quick glance, this is
pacman
with a yaml file instead of a shell script and PKGINFO (the latter was introduced for the same reason you’re doing it your way in the first place). The carcinization of package managers