{lib, pkgs, config, ...}: let cfg = config.nixGc; in { options.nixGc = { enable = lib.mkEnableOption "enable nix gc default settings"; }; config = lib.mkIf cfg.enable { # Limit the number of generations to keep boot.loader.systemd-boot.configurationLimit = 5; # Perform garbage collection weekly to maintain low disk usage nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 1w"; }; # Optimize storage # You can also manually optimize the store via: # nix-store --optimise # Refer to the following link for more details: # https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store nix.settings.auto-optimise-store = true; }; }