It’s a declarative package manager that allows you to configure and deploy software through their own expression language also named Nix. Whenever home-manager, nixos-rebuild or darwin-rebuild switch is invoked, the configuration is then used to automate the process of installing and configuring the programs in your environment to your specifications and automatically switch to the latest generation built.
As the previous generations of your environment are kept, you can rollback to a previous environment if the change you made ended up introducing issues. To stop previous generations and the programs you had installed to them or used through nix-shell from clogging up space, you can run the command nix-collect-garbage -d to delete old generations and remove unreferenced packages from the Nix store.
That’s more or less how Nix werks.
*Edited.
Fedora does use Sellinux, so I’m not sure whether vanilla Nix will work for you on Asahi Fedora remix. i’ve gone ahead and provided you with the files you’ll need to get started. Just replace the ‘Georgia‘ part in both files with the actual name of your user and home directory and you should be good to go.
Once you’ve installed Nix either through the official script or used Determinate Nix for their Sellinux support, give me a ping and I’ll fill you on the next steps to get home-manager with flakes working.