{ config, lib, pkgs, inputs, ... }: { nix = { # Flake support and whatnot package = pkgs.lix; # Weekly clean up the store, I think gc = { automatic = true; dates = "weekly"; }; # ~~Protect nix shell from garbage collection~~ # This was taking too much storage # extraOptions = '' # keep-outputs = true # keep-derivations = true # ''; # https://nixos.wiki/wiki/Storage_optimization optimise.automatic = true; # 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 = { # Enable flakes and new 'nix' command experimental-features = [ "nix-command" "flakes" # "repl-flake" "auto-allocate-uids" # "configurable-impure-env" ]; # Disable warning when rebuilding before commiting warn-dirty = false; # Deduplicate and optimize nix store auto-optimise-store = true; # TODO: what is a trusted user? trusted-users = [ "root" "@wheel" ]; }; }; }