{ pkgs, inputs, lib, config, ... }: { nix = { gc.automatic = true; optimise.automatic = true; # Protect nix-shell from garbage collection # TODO: look into whether this is still needed when using nix flakes extraOptions = '' keep-outputs = true keep-derivations = true experimental-features = nix-command flakes ''; # This will add each flake input as a registry # To make nix3 commands consistent with your flake registry = lib.mapAttrs (_: value: { flake = value; }) inputs; # This will additionally add your inputs to the system's legacy channels # Making legacy nix commands consistent as well, awesome! # nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; settings = { trusted-users = [ "root" "adrielus" "@wheel" ]; auto-optimise-store = true; # Caching and whatnot substituters = [ "https://cache.nixos.org" "https://nix-community.cachix.org" "https://cm-idris2-pkgs.cachix.org" "https://danth.cachix.org" # "https://all-hies.cachix.org" # Do I even use all-hies anymore? ]; trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "cm-idris2-pkgs.cachix.org-1:YB2oJSEsD5oMJjAESxolC2GQtE6B5I6jkWhte2gtXjk=" "danth.cachix.org-1:wpodfSL7suXRc/rJDZZUptMa1t4MJ795hemRN0q84vI=" # "all-hies.cachix.org-1:JjrzAOEUsD9ZMt8fdFbzo3jNAyEWlPAwdVuHw4RD43k=" ]; }; }; }