{ lib, config, inputs, ... }: let inherit (lib.attrsets) mapAttrs mapAttrsToList; in { config = { # Common Nix Settings, registry thing is specifically for flakes nix = { registry = lib.mkForce (mapAttrs (_: value: {flake = value;}) inputs); nixPath = lib.mkForce (mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry); optimise.automatic = true; gc = { automatic = true; options = "--delete-older-than 14d"; }; settings = { experimental-features = "nix-command flakes"; warn-dirty = false; keep-derivations = true; keep-env-derivations = true; keep-outputs = true; auto-optimise-store = false; substituters = [ "https://nix-community.cachix.org" "https://cache.nixos.org/" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; }; nixpkgs = { config.allowUnfree = true; overlays = [ # overlays if you want them ]; }; }; }