{ 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; } )]; }