{ lib, outputs, ... }: { # Apply overlays nixpkgs = { # TODO: apply this to hm and nixos without duplicate code overlays = builtins.attrValues outputs.overlays; config = { nvidia.acceptLicense = true; allowUnfree = true; allowUnfreePredicate = _: true; # TODO: what is this warn-dirty = false; permittedInsecurePackages = [ "olm-3.2.16" ]; }; }; nix.settings.auto-optimise-store = lib.mkDefault true; nix.settings.experimental-features = [ "nix-command" "flakes" "ca-derivations" ]; # warn-dirty = false; nix.gc = { automatic = true; dates = "weekly"; # Keep the last 3 generations options = "--delete-older-than +3"; }; programs.nix-ld.enable = true; # TODO: is this useful?, what does it do? # nix.settings.flake-registry = ""; # Disable global flake registry # Add each flake input as a registry and nix_path # registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs; # nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; }