I’m not the type to put my dotfiles in git, though.
That's what I'm saying, you don't have to! Just install the package (like neovim or whatever) through NixOS and it will use your ad-hoc dotfiles like it would on any other distro. For a lot of stuff you can make use of declarative NixOS options (programs.neovim = { ... };), but you don't have to, except for really basic system stuff like networking I guess.
Pre-compiled, non-system binaries.
Gotcha. There's several ways do do this on NixOS (steam-run works like a charm!), but I'll concede that there's an extra step involved here that you don't have to do on other distros.
That, and seeing talk about how great Nix is but also people having trouble later on too (major updates? bleeding edge woes?).
There's a learning curve for sure, but I haven't looked back or experienced any major issues (where I hadn't shot myself in the foot) since 22.11.
Absolutely! I'll give you an example. In the NixOS config for my desktop I have the lines:
{ environment.systemPackages = with pkgs; [ firefox ... ]; }So Firefox is installed every time I build a system with this config. This is just like
apt-get install firefoxin that very user can use it after installation. The config lives in the respective user's dotfiles (.config/mozilla/firefox) and will of course survive reboots.What I chose to do additionally (but this is in no way required!) is a
home-managerconfig for my main account with the lines:{ programs.firefox = { enable = true; policies = { DisableFirefoxAccounts = true; DisablePocket = true; DisableTelemetry = true; DownloadDirectory = "${config.home.homeDirectory}/tmp"; OfferToSaveLogins = false; ... } ... }This is a declarative configuration that basically handles my dotfiles (profiles, extensions, themes, ...) for me. I think you have the impression that this is mandatory, but it is really a very specific behavior through the home-manager module, but you can absolutely run NixOS without it.