cells/overlays

cells/overlays/default.nix is the bridge between custom package definitions, upstream overlays, and system package sets.

Up: cells

Down: pkgs | root overlays

What this node does

It composes the local package overlay with an upstream Neovim overlay, exports the result as flake.overlays.default, and injects overlays into the base branch.

let
  defaultOverlay = inputs.nixpkgs.lib.composeManyExtensions [
    (import ../../pkgs).overlay
    inputs.neovim-nightly.overlays.default
  ];
in {
  config.flake.overlays.default = defaultOverlay;
}

Why it belongs in cells

The flake needs to expose overlays for external consumers and also use those overlays internally. A cell can do both: set config.flake.overlays.default and contribute a NixOS module that applies overlays to branch-selected systems.

Base branch injection

config.my.branches.base.nixosModules = [
  {
    nixpkgs.overlays = (import ../../overlays) ++ [
      inputs.self.overlays.default
    ];
  }
];

This makes custom packages available to every system that selects base.