I only use nixos for my base configuration. All GUI desktop applications are installed through flatpak and development is done through distrobox.
I only use nixos for my base configuration. All GUI desktop applications are installed through flatpak and development is done through distrobox.
You can help improve the desktop integration documentation at their GitHub repo.
Fish and its search functionality work great for me.
If you want to go for traditional distributions that don’t have native rollback mechanisms, I would suggest using btrfs along with something like snapper.
Updating individual applications is a pain on NixOS. You’d either have to override the attributes of the package (which can get quite ugly and complicated and does not always work) or pull in a new commit of nixpkgs that has the version you want which requires the download of a ton of other dependencies that were compiled for that specific commit of nixpkgs.
Flatpaks solved this problem for me and helped reduce the download size every time I wanted to update something.
I’ve been using NixOS with flatpaks and distrobox and have had pretty much the same experience. NixOS provides rock solid base system, services, and CLI tools that are easy to configure and flatpaks provide the rest of the desktop applications.
One neat feature of installing eveything through flatpak is that you can update applications individually without having to upgrade the whole system.
Desktop:
btrfs + snapper can easily achieve the same thing. You can checkout OpenSUSE.