I want the MacBooks for the battery backup, but I cannot live without NixOS, and seems like Asahi is still a few months away.
I want the MacBooks for the battery backup, but I cannot live without NixOS, and seems like Asahi is still a few months away.
I'm really happy with it overall. All the hardware works perfectly, and I don't notice the bit of RAM & CPU reserved for the host. The only downside is that some packages aren't available for aarch64-linux, e.g. Slack, Spotify, etc. I just run those on the host OS instead, which is a little annoying due to context switching but not a huge deal.
Some packages on nixpkgs aren't available for aarch64-linux, but mostly unfree stuff like Spotify that's available on macOS. Overall I really like it, and I hardly ever interact with the host OS anymore for dev work. That said, I still use macOS for casual browsing, since scrolling and trackpad gestures are smoother than in linux. Not a big deal, since copy/paste works fine.
edit to add a link to my config, which has a couple tweaks for screen resolution, etc: https://github.com/yusefnapora/nixos-system-flake/blob/main/...
Mine is using an older and more complicated version of the parallels-tools patch, so go with the one linked above if you end up using Parallels.
You could also try UTM, which now has support for Rosetta for x86 binaries. There's a good writeup for NixOS + Rosetta here that I can confirm works: https://xyno.space/post/nixos-utm-rosetta - I had some random instability with UTM though, so switched back to Parallels.
Personally I use tend to use Linux VMs as if they were remote servers, so I don't have a huge need for Linux GPU drivers.
One thing that helped with VMware Fusion is using host-local interfaces with static IP addresses. Otherwise I would tend to get disconnected from VMs when macOS disconnected from wi-fi, which was very annoying. This is less of an issue if you're using the VM window directly.
Overall it all worked fine, and far more reliably than Linux on a modern laptop running natively (if you can get past the minor annoyances).
The README describes the experience, though the author takes the approach of using the VM mainly for terminal-based stuff.
Just to double check: nix on Darwin isn't good enough?
Nix-Darwin (the module system that gives you some NixOS-like features with Nix on macOS) is nice, but macOS ultimately can't match the predictability and control one gets used to on NixOS. A system that updates in a non-uniform way, has limited configurability, and where the configuration of the system isn't given anywhere in a trackable, comprehensible form feels painfully chaotic in comparison.
(I can understand why Nix on Darwin (with or without Nix-Darwin) is a great fit for many, though. Having a 'normal', mainstream desktop underneath your still relatively predictable, explicit, reproducible dev tooling is awesome in a lot of ways.)