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 like deploy-rs and colmena.
    • Also: an .#update flake app to update the primary inputs (which can be overriden)
  • 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.
  • Sensible defaults
  • 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.