nixos-unified is a flake-parts module to unify NixOS + nix-darwin + home-manager configuration in a single flake, while providing a consistent interface at DX and UX level.
Why?
nixos-unified provides the following features:
-
One-click activation & deployment
-
Activation: An
.#activate
flake app that works uniformly on NixOS, nix-darwin and home-manager.-
Remote Activation:
.#activate
can also remotely activate machines (be it macOS or NixOS) over SSH, thus acting as a simple alternative to deployment tools likedeploy-rs
andcolmena
.
-
Remote Activation:
-
Also: an
.#update
flake app to update the primary inputs (which can be overriden)
-
Activation: An
-
Seamless access to top-level flake
-
All NixOS/ nix-darwin/ home-manager modules receive specialArgs which includes all the information in the top-level flake.
- This enables those modules to be aware of the flake inputs, for instance.
-
All NixOS/ nix-darwin/ home-manager modules receive specialArgs which includes all the information in the top-level flake.
-
Sensible defaults
- Sensible defaults for home-manager/ nix-darwin/ and NixOS configurations (#75).
-
Autowiring of flake outputs
- Autowiring: An optional module that will scan the directory structure and wire up the appropriate flake outputs automatically without you having to do it manually.
Getting Started
See: Getting Started.