diff --git a/hosts/sakotop/configuration.nix b/hosts/sakotop/configuration.nix index 7687e186..084e2433 100644 --- a/hosts/sakotop/configuration.nix +++ b/hosts/sakotop/configuration.nix @@ -66,6 +66,8 @@ # makes nix search nixpkgs # ALOT faster search.enable = true; + # optimize store + optimize.enable = true; }; zsh.enable = true; newsboat.enable = true; @@ -88,13 +90,6 @@ services.xserver.videoDrivers = [ "nvidia" ]; - # garbage collection - nix.gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; - }; - # Enable the OpenSSH daemon. # services.openssh.enable = true; diff --git a/modules/shell/nix/default.nix b/modules/shell/nix/default.nix index 75d9724f..4286ab9f 100644 --- a/modules/shell/nix/default.nix +++ b/modules/shell/nix/default.nix @@ -1,5 +1,6 @@ { imports = [ ./search.nix + ./optimization.nix ]; } diff --git a/modules/shell/nix/optimization.nix b/modules/shell/nix/optimization.nix new file mode 100644 index 00000000..c8506aee --- /dev/null +++ b/modules/shell/nix/optimization.nix @@ -0,0 +1,30 @@ +{ inputs, options, config, lib, pkgs, ...}: +# this automatically optimizes stuff like nix-store +# and cleans out garbage weekly +# also limits generations +with lib; +let cfg = config.modules.shell.nix.optimize; +in +{ + options.modules.shell.nix.optimize = { + enable = mkEnableOption false; + }; + + config = mkIf cfg.enable { + nix = { + # garbage collection + gc = { + automatic = true; + dates = "weekly"; + options = "--delete-older-than 1w"; + }; + # optimizes store to reduce storage space :) + # does do alot on the cpu though :p + # shouldnt be a problem on high core cpus + # but might be a little problem on + # low end machines + # who cares though free storage woohoo + settings.auto-optimise-store = true; + }; + }; +}