nixos-config/modules/flake-parts/setups/shared/nix-conf.nix

32 lines
951 B
Nix

{ inputs }:
{ config, lib, ... }:
let
inputs' = inputs // {
nixpkgs = inputs.${config.nixpkgs.branch};
home-manager = inputs.${config.homeManagerBranch};
};
flakeInputName = name: if name == "self" then "config" else name;
nixChannels =
lib.mapAttrsToList (name: source: "${flakeInputName name}=${source}")
inputs' ++ [ "/nix/var/nix/profiles/per-user/root/channels" ];
in {
config.modules = [
({ lib, ... }: {
# I want to capture the usual flakes to its exact version so we're
# making them available to our system. This will also prevent the
# annoying downloads since it always get the latest revision.
nix.registry = lib.mapAttrs' (name: flake:
lib.nameValuePair (flakeInputName name) { inherit flake; }) inputs';
nix.settings.nix-path = nixChannels;
# It doesn't work on the traditional tools like nix-shell so ehhh...
nix.nixPath = nixChannels;
})
];
}