I was referring to the use of Nix the imperative way, as opposed to declarative which requires writing a config file. In the imperative way you can install/upgrade/uninstall packages with just a single command, similar to other package managers.
Eg:
nix profile install nixpkgs#tealdeer
-> installs tealdeer from the nixpkgs repo.
I've been using Nix to install stuff this way on my immutable OS for about 6 months now this way and haven't had any issues. And it's fast. Like, even faster than pacman, which is one of the things I like about it.
I use uBlue and update manually (using a custom alias/script) whenever I get the time, like say during my lunch break or something. Reason being, I actually like watching the update process and seeing what gets updated, watching out for major version number changes or major package upgrades, and if I'm interested I may look up some of their changelogs to find out about their new features etc.
You should be forced to reboot though? And if you don't want to reboot, can't you just do an
--apply-live
? I mean you'd still need to reboot for a kernel update but for the most part, you should be able to use most of your new packages without a reboot. And this holds true even more so if you're updating Flatpak/container/Nix/pip/cargo/brew packages. And I hope you're not doing the rookie mistake of actually installing stuff at the ostree layer instead of using Flatpaks/containers/Nix etc.