Provide NixOS, Home Manager, and Darwin modules in NUR
mainNUR repositories can host more than just packages. To make modules discoverable, place them in specific attributes within your repository's default.nix:
- NixOS modules: Use the
nixosModulesattribute. Accessible vianur.repos.<repo>.modules.nixos.<module>in flakes. - Home Manager modules: Use the
homeModulesattribute. Accessible vianur.repos.<repo>.modules.homeManager.<module>in flakes. - Darwin (nix-darwin) modules: Use the
darwinModulesattribute. Accessible vianur.repos.<repo>.modules.darwin.<module>in flakes. - flake-parts modules: Use the
flakeModulesattribute. Accessible vianur.repos.<repo>.modules.flake.<module>in flakes.
Note: Modules should be defined as paths, not functions, to avoid import conflicts.
Example default.nix for modules:
{ pkgs }: {
nixosModules = import ./modules;
homeModules = import ./hm-modules;
}{ pkgs }: {
nixosModules = import ./modules;
}