1) Are these kind of systems overkill for the desktop user?
2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time?
1) Are these kind of systems overkill for the desktop user?
2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time?
1. There might be slightly more convenience for the desktop user because installing applications in their user environment doesn't require root permission. You can set the system to a full Gnome with it's networking/wifi configuration if you like that sort of thing, but understandably it's less popular and minimalism is en vogue.
2. There is no global equivalent to Gentoo's USE flags, however most derivations follow conventions and expose comparable options with sensible defaults. These are largely easy to override. You usually lose the benefit of the large cache of binary builds so the culture of micromanaging all the options is not as prominent as in Gentoo. E.g. removing X11 support because you're not using it on a server might result in the need to locally build a lot of packages, some of them slow, and hence most don't bother with this level of "optimization."
The single configuration file and rebuilding the whole system with one command (that actually runs quickly and is easily rolled back) is what caused me to finally leave Gentoo behind. I had way too much manual intervention with an almost vanilla Gentoo configuration when performing upgrades (e.g. newer profiles, but sometimes just a package update). I'm not sure if NixOS is resilient enough to allow such things as system-wide ABI changes (such as the last Gentoo profile bump) but I suspect it is, and it's mission is to provide a seamless user experience when rebuilding. Should a rebuild fail, it's not activated so you're not stuck with a partially working environment.
> 1) Are these kind of systems overkill for the desktop user?
There is more to learn to be free to do everything — for some this might be too much (even though it is easy to start and the learning is mostly gradual), for others this is fine (especially those viewing the obstacles as opportunities to learn rather than distractions), and many others can be satisfied with their systems before achieving such freedom. While efficient usage of NixOS requires more upfront involvement, once settled or learned it becomes the easiest to maintain, and brings the piece of mind I had with no other OS with its easy global configuration, nondestructive updates, and manageable malleability (adding and customizing packages, effortlessly offloading their build to your other machines with Nix, even without NixOS).
> 2) How easy is it to customize/tweak these systems in the manner that Gentoo does? So, building from source by tweaking the software options on build time?
Nixpkgs have close to optimal balance between the ability to use prebuilt packages and the ability to extend them, and it's more customizable (thanks to Nix and Nixpkgs designed to allow reaching into the old definition of a package, writing tweaks just for the parts you need, while keeping automatic updates!), although it's geared towards users that want most of their packages prebuilt (in particular it does not have cross-cutting USE-flags). You can either replace a package (and cause dependent ones to be rebuilt against it), or override under a new name (and install it alongside other packages that may depend upon and actually use the non-overridden one).
To tweak packages, Guix has "transformation options" that make a number of tweaks readily accessible from the command line: https://guix.gnu.org/manual/en/html_node/Package-Transformat...
Other than that you will have to deal with a non-conventional language for which you may need to look at the manual when making changes depending on how much you use nix-shell.
I use nixos on a laptop. You have to watch space usage here to clean old generations.