Comment by choobacker
Comment by choobacker 6 months ago
I'm a NixOS user and contributor.
This post is fair.
Nix is very flexible, and it hasn't yet stabilised on a firm set of recommendations for a happy path.
Going on a whim:
* Use nixos-unstable. It's defacto stable, and gets much more attention than nixos-stable.
* Use flakes.
* Don't use multiple versions of nixpkgs. In the rare case a package is failing to build, then raise an issue, or wait, or rollback.
* On NixOS, don't use user profiles. They won't interop in the way OP hopes.
* Only use nixpkgs. If you absolutely must use another flake, only use popular ones from https://github.com/nix-community.
But until the community give opinionated suggestions, users will stray towards bad practices.
(Also, no need to mix pipewire and jack. Pipewire can emulate jack.)
This sounds like a great idea! How do I do it? (The unstable stuff and using modern techniques? How do I even know what's modern?)
I currently have a spare laptop lying around. I popped in the latest NixOS ISO and just gave it a spin. Some things I noticed:
- The installer only allows to install on ext4 unless you manually partition the disk? I thought it was 2025, not 2005.
- Is there no way to search for packages without a browser?
- I found boot.grub.* and boot.systemd-boot.* - what if I want to use refind? What about Limine?
- How do I know if any given program goes into programs.programname.enable = true or into environment.systemPackages = with pkgs; [ programname ]?
- Why is the ISO furnishing me with a configuration.nix when everyone says to use flakes instead of that? How do I switch?
I'd preferably be able to answer those questions without reading a 300 page handbook. I've been using a lot of Linux distros over the last 30 years and the above questions have usually bean answerable on a headless system with the supplied documentation. I understand that Nix is a paradigm shift compared to "classic" distros, but that only puts the onus more in Nix to be discoverable.