| Feature | NixOS | nix-darwin |
|---|---|---|
| Bootloader | Managed by NixOS | Managed by macOS |
| Kernel | Linux kernel | macOS XNU kernel |
| Init system | systemd | launchd |
| Display server | X11/Wayland | macOS WindowServer |
| Package manager | Only Nix | Nix + optional Homebrew |
| State version | system.stateVersion = "25.05" |
system.stateVersion = 5 |
boot.loader.*- Bootloader configurationservices.xserver.*- X11 display serverservices.tlp.*- Power managementservices.fprintd.*- Fingerprint reader
system.defaults.*- macOS system preferencessecurity.pam.enableSudoTouchIdAuth- Touch ID for sudohomebrew.*- Homebrew package management
- Use Nix for all packages
- Declarative configuration
- System-wide package management
- Nix for development tools and CLI packages
- Homebrew for GUI applications and gaps
- Hybrid approach for maximum compatibility
- NixOS: Full system control including kernel, bootloader, services
- nix-darwin: User-space configuration only, relies on macOS core
- Both: Use Home Manager for dotfiles and user packages
- NixOS: System-level user management
- nix-darwin: Integration with macOS user accounts
- NixOS:
nixos-rebuild switchfor system changes - nix-darwin:
darwin-rebuild switchfor system changes - Both:
home-manager switchfor user environment changes