The thing with #NixOS that annoys me the most: Installation is easy, but then you sit there on a command line and there are no examples on how to progress, I don't want to read non-descript configs of other people linked in a boring long list from the wiki. And no I don't want to watch a Video guide of someone talking me through a text-configuration-file. Documentation is helpful for describing how Nix and the config works. What's missing? Something like: "Here is an example running KDE Plasma"
@dunkelstern everything can be improved, but the configuration section of NixOS manual seems very similar to what you are asking, to me: https://nixos.org/manual/nixos/stable/index.html#ch-configuration
What am I missing?
BTW: up to date, one of the best documentation examples remain the Arch Linux Wiki.
@dunkelstern understood.
My workflow is this: I search in the NixOS options https://search.nixos.org/options?channel=23.05; I search in the manual; I search in the NixOS forum; I search in the ArchLinux wiki for discovering the generic concepts of the tool 🙂
NixOS suffers of this problem (and I mainly agree with you): NixOS configurations are on top of upstream packages; NixOS add often another layer, and there is the NixOS way to do things; often you had to understand both the standard way and how NixOS change it. For example I use the Arch Linux Wiki for understanding the standard way to configure things.
In worst case scenario, I inspect the config files generated.If you execute "systemctl status ..." often there is an hint about the config file used from the service.
NixOS is still an OS for hackers and advanced users, and sometime I don't know if the problems it solves are more than the problems it introduces. Especially if you use it for development.
BTW, Wayland appears by default in KDE login menu. IIRC, Wayland does not need a service/servers like X.
> ... and the concept that there is no `plasma` meta package or something threw me off,
In reality this is a strength of NixOS: meta packages are not needed, because you enable and configure services directly in the NixOS configuration files. Then the service configuration will install the necessary packages.
Service configurations in NixOS, accept many more options than a simple meta-package.
For example, from the `plasma` service description
you can open the NixOS source code, and see that it will install wayland packages like:
```
kwayland
kwayland-integration
```
and you can see how some things are configured.
I like very much the way one configure NixOS. It is a lot more readable and reproducible than an Ansible file.
@mzan yes i understand that the service config is so much more powerful, but it’s a thing that is very nix specific. I am missing a low entry barrier documentation that lists those quirks (when do i have to do it as a service, when do i just install a package?). And for a beginner in nix it is not that helpful to dive directly into the nix source tree as i am not familiar enough to a) read the nix language and b) actually find what i have to read (package vs. module, etc.)
@dunkelstern Regarding documentation there is this approach https://documentation.divio.com/
In the specific case of NixOS: something was done, but I agree that more must be done.
@mzan yep, it seems it's installed by default. Posting this from the new shiny install. It's a way to get there. My problem was i searched for plasma on the package search and the concept that there is no `plasma` meta package or something threw me off, then i searched the config thing which brings me to `services.xserver.desktopManager.plasma5.enable` and no further documentation. Is there a way to reach documentation from the search without reading the nix source?