{ config, lib, ... }: let cfg = config.sys.core.storage; in { options.sys.core.storage = { enable = lib.mkEnableOption "enables storage management"; keepDays = lib.mkOption { type = lib.types.int; default = 14; description = "Number of days to keep old Nix generations before GC."; }; }; config = lib.mkIf cfg.enable { nix.settings.auto-optimise-store = true; nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than ${toString cfg.keepDays}d"; }; services.fstrim.enable = true; services.btrfs.autoScrub = { enable = true; interval = "monthly"; fileSystems = [ "/" ]; }; boot.tmp = { useTmpfs = true; tmpfsSize = "50%"; }; }; }