{ pkgs, lib, ... }: let kb = 1000; mb = 1000 * kb; gb = 1000 * mb; in { nix = { package = pkgs.lix; settings = { cores = lib.mkDefault 0; use-xdg-base-directories = true; keep-outputs = true; warn-dirty = false; # https://jackson.dev/post/nix-reasonable-defaults/ connect-timeout = 5; min-free = 128 * mb; max-free = 1 * gb; fallback = true; builders-use-substitutes = lib.mkDefault true; substituters = [ "https://nix-community.cachix.org" "https://cache.lix.systems" "https://binarycache.alin.ovh" ]; trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "binarycache.alin.ovh:ZwqO3XMuajPictjwih8OY2+RXnOKpjZEZFHJjGSxAI4=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" ]; experimental-features = [ "nix-command" "flakes" ]; }; gc = { automatic = lib.mkDefault true; options = lib.mkDefault "--delete-older-than 14d"; }; }; environment.systemPackages = with pkgs; [ nix-output-monitor ]; services.angrr = { enable = true; settings = { temporary-root-policies = { direnv = { path-regex = "/\\.direnv/"; period = "14d"; }; result = { path-regex = "/result[^/]*$"; period = "3d"; }; }; profile-policies = { system = { profile-paths = [ "/nix/var/nix/profiles/system" ]; keep-since = "30d"; keep-latest-n = 5; keep-booted-system = true; keep-current-system = true; }; user = { enable = true; profile-paths = [ # `~` at the beginning will be expanded to the home directory of each discovered user "~/.local/state/nix/profiles/profile" "/nix/var/nix/profiles/per-user/root/profile" ]; keep-since = "3d"; keep-latest-n = 1; }; }; }; }; }