{ inputs, outputs, lib, config, pkgs, ... }: { nix = let flakeInputs = lib.filterAttrs (_: lib.isType "flake") inputs; in { settings = { auto-optimise-store = true; experimental-features = "nix-command flakes"; flake-registry = ""; # Workaround for https://github.com/NixOS/nix/issues/9574 nix-path = config.nix.nixPath; substituters = [ # "https://cache-nixos-org.aarn.shelman.io" "https://cache.nixos.org/" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ]; }; channel.enable = false; registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; }; nixpkgs = { overlays = [ outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages ]; config.allowUnfree = true; }; programs.nh = { enable = true; clean.enable = true; clean.extraArgs = "--keep-since 14d --keep 5"; }; programs.nix-ld.enable = true; environment.systemPackages = with pkgs; [ nvd ]; }