{ lib, config, ... }: with lib; let cfg = config.voidcruiser.nixSettings; in { options.voidcruiser.nixSettings = { gc = { automatic = mkOption { type = types.bool; default = true; description = "Enables automatic garbage collection"; }; dates = mkOption { type = types.str; default = "weekly"; example = "03:15"; description = mdDoc '' How often or when garbage collection is performed. For most desktop and server systems a sufficient garbage collection is once a week. The format is described in {manpage}`systemd.time(7)`. ''; }; }; }; config = { nix = { optimise.automatic = true; settings = { trusted-users = [ "root" "@wheel" ]; }; gc = { automatic = cfg.gc.automatic; dates = cfg.gc.dates; }; settings.experimental-features = [ "flakes" "nix-command" ]; }; }; }