Resources on building a modern and featureful desktop

I’ve been making the switch to NixOS after many years on Fedora Workstation. I’m switching because I like the extensive (yet stable) control NixOS gives me over my system and also because nixpkgs is larger than fedora’s package repositories. However, I’ve been very, very happy with Fedora. Most things I need from a primary workstation just work out of the box, so much so that use cases that I never think of, but hit once in a blue moon are well addressed. The more I read about Fedora’s internals, the more I agree on their choice of design and program selection.

The base NixOS installation by giving you more control is a lot more bare bones by default. The problem is I need pointers on what to install to build a modern, fully featured desktop like Fedora Workstation. I’m aware of the basics like a DE, Wayland, Pipewire, NetworkManager etc, but I’m worried that I’m missing something else, and that I’ll be in a world of pain when I urgently need something (like when I need to use a printer).

I was looking for any resources that addressed building a desktop, the general architecture and design, notes on selecting the best programs for a task, and more. I thought of Beyond Linux from Scratch, but that seemed too focused on the build process as opposed to what to install and configure on a higher level.

To be clear, I’m not asking for notes solely on Nix and NixOS itself like https://nixos-and-flakes.thiscute.world/, what I am asking for is more along the lines of “Things to setup on a fresh NixOS install”, though something a little more comprehensive than a simple list would be better.

What do you need that is not covered by the NixOS installation?
When NixOS is installed, it tries to set the best config already.

For specific hardware, you can find them here: GitHub - NixOS/nixos-hardware: A collection of NixOS modules covering hardware quirks. · GitHub

When you choose an IDE like KDE, it will work. IF you need bluetooth, you’ll have to enable it bluetooth hardware.bluetooth.enable = true;. But that’s kind of it. Any extra KDE package usually works (unless marked for security), see NixOS Search

The wiki for KDE has tips and troubleshooting information:

1 Like