I’ve been straddling between NixOS and a Debian derivative for a while recently. Using nix, I really enjoy managing my system using declarative code, like I would for any other software infrastructure.
Although, for work, I still resort back to Debian or Ubuntu when it comes to collaborating with existing FOSS communities around robotic software or medical imaging, as those respective domains are heavily ingrained/invested into the Debian release and package distribution.
So it’s been a challenge to migrate anything other than my personal computing to NixOS. However I do appreciate the easy access to latest version releases of packages, kernels, and drivers. Being able to patch and document the idiosyncrasies of my hardware using declarative configs and revision control has been so helpful and solving a bug once and never forgetting how to reproduce the fix later on.
Another benefit is being able to explore public repositories for examples of how other users may be installing the same types of modules or software features I’m looking to setup, or solve a similar issue. It’s one thing to read the stack overflow answer about how to edit an arcane etc config for an anonymous package version, but it’s another to be able to read the commit history of hundreds of other nix users and PRs from nixpkgs maintainers.
My flake config is still rather simplistic, and synchronizing two hosts between two branches. I did appreciate the reference repo linked by the author as an example for modular host and user config.
https://github.com/jnsgruk/nixos-config
Any suggested resources or templates on that front? I.e. structuring and modularizing NicOS flake configs for multiple hosts for overlapping and non overlapping use cases? For example, I’ve just gotten into how to overlay nixpkgs PRs and explore dev shells.
I understand the frustration. L however at least use mint or Debian