I’ve been using it for a few months now soon after getting a Mac Mini, following the instructions to set it up was a bit rocky but fortunately users were helpful, the configuration itself is well done like NixOS itself, but I’ve found it to be very unreliable because often when trying to rebuild, this or that package would failed to build. I feel like its a big flaw of Nix itself, where it shouldn’t let go of previous versions of packages unless they can build successfully, but that’s a whole different can of worms.
I don’t use any flakes on Nix-Darwin, I don’t like waiting to rebuild hoping that whatever random package or library that failed to build finally got fixed, I have to gamble every time I use the nh darwin / rebuild command.
I don’t use Darwin, this is a symptom of the problem. I believe there are simply not enough Darwin users to keep the massive repo of nixpkgs reliable. The more exotic the packages you use, the more of a gamble it gets.
Maybe `nix-weather` is a helpful tool to discern, if the package closure you are using is buildable.
There are channel blockers, but unfortunately only the Linux ones block unstable from advancing. (I wonder if that should change now that the Darwin builder situation is better.)
Were your packages failing to build due to linker errors?
There was an issue with the linker crashing in a previous staging cycle, but it wasn’t caught until the cycle had progressed far enough that fixing it would require a large number of rebuilds. An attempt was made to fix the affected packages, but not every package was fixed before the cycle ended. This was fallout from the x86_64-darwin removal; linker issues like this are unusual.
The linker issue has since been fixed. It should be on master and nixpkgs-unstable now.
I do not use nix-darwin, as it might be violating policies, or be blocked by such.
Though I do use nix + home-manager and devshells to manage my tooling and user config on that Mac. I do not have any problems with programs from nixpkgs being broken, though I generally follow a simple rule when using nix outside of NixOS: No graphical tools from nixpkgs. So the only graphical tool I use from nixpkgs (consciously) on the mac is ghostty-bin and it works fine.
I use nix on a company owned an managed device. And even thoguh I have sudo perms, the system might recognize or deny things that are not within company policy. Repeated violation of policy can also have disciplinary consequences. So I am careful with what I do.
This is a rule that origins in the NixOS vs “FHS Linux” and is not necessarily related to MacOS. Though in the discourse it seems as if most problems exist for exactly that, GUI programs.
I’ve been using it for about a year. It’s improved a lot over that time! and I really like it for a few reasons:
being able to define system settings / configurations with nix and not mostly having to faff about with the settings menus
sharing modules/packages/configuration between nixos hosts and nix-darwin hosts
managing brew via nix is very convenient (though i’ve mostly moved to using nixpkgs for installing applications since gui apps got fixed)
haven’t found any real issues with packages failing regularly, but I have CI for automatically updating flake inputs and building my configuration so I often get a heads up before I’m actually trying to rebuild my host so that probably helps.
I haven’t been using it too much, I am using nix-darwin and home-manager for an intel mac. I like using it to manage my terminal but not much else. I am hoping to get an M series one day and I would add it to my multi-host config later. I did get my nixvim config working on it too. Starting out, I looked up some starter flake and that got me most of the way there.