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 it configures
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 is 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.