NixOS is the odd one out as it’s declarative. Rather than building a working system, then adding to it, you create a specification for the system in a configuration file. This includes all the main configuration options such as the keyboard type along with the installed packages. These specs are applied during installation. When extra packages are added to a running system, the whole system is reconfigured and rebooted. This means you can take your config file and use it next time you install NixOS. It’s a fantastic system but guessing only gets you so far. We had to search online to find some configuration options.
Gentoo gives you a lot of control over what you install and a great deal of scope for fine-tuning because you compile the packages via Gentoo’s Portage package manager. Some of the aspects of the distro that work against it in other areas, such as ease of use, work in the distribution’s favour if you’re interested in tweaking things. Gentoo uses ‘use flags’ that can be configured globally or for individual packages. An example would be that a package can be compiled without OpenGL or CUPS support. Unlike most modern distros, Slackware allows detailed package selection during installation, and as it’s more basic when NixOS uses a flat text file to specify configuration. Initially, it has sensible defaults, but getting things up to the level of a typical desktop Linux system takes research.
first installed, less of the default decisions are made for you. Thus it’s a better customisation base than something like Ubuntu.
Void also doesn’t work that differently from other distros but its initial clean system is a good base for your own choices.