Introduction
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..#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
.
- 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
- 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.