@mcc Well, NixOS is completely declarative so it won’t break just from reinstalling it (you get a flake.lock file, so it’ll be the same software versions and all). It can break from updating, such as syntax changes or deprecated software, but it’ll let you know and will simply not apply the system configuration. You won’t get a broken system caused by that.
If you do get a broken system due to installing wrong drivers or whatever, you can rollback to a previous generation from the bootloader (similarly to openSUSE with snapper). And if you use git you can always revert a commit and rebuild.
Yes, you’d have to copy the configuration files. But you can just put it on GitHub or some git forge and then do a git clone. I keep my system configuration on GitHub. Mine is quite complex with me trying to do some cursed shit, but a simple NixOS configuration isn’t big. NixOS does have quite the learning curve, but after a few weeks getting stressed about it it really pays off!
Since nix does have quite the learning curve, it’s nice to have someone who knows nix to help you. If you want, feel free to ask me for help with it whenever you need!
Everything you install you do so by adding to your system configuration file, so it’s pretty much effortless to get a system exactly as the one you had previously installed. (for single use stuff, you can use nix shell and nix run)
For desktop configuration related stuff, you’ll probably need home-manager too. But it integrates into your nix configuration pretty seamlessly, can be done on the same file and stuff. There’s a home manager module for configuring KDE even! So if you use KDE you can configure even your DE declaratively!!