Add programs.firefox.enable = true; to configuration.nix.
Call sudo nixos-rebuild switch. Maybe add --flake if you’re feeling adventurous.
Done.
Or, more realistically…
programs = {
firefox = {
enable = true;
# Configure anything you want here (language,
# extensions, policies... whatever).
};
# Enable and configure other programs here.
};
… and keep the whole thing in a git repository to track changes and have it available for other machines.


As a programmer, the moment I learned about nixos (here on lemmy, if I recall correctly) I knew that’d be the one I’d pick once I found the time to move to linux. It just seemed like a reasonable way of doing things, you know?
Bit of a learning curve, but worth it, I believe.