diff options
Diffstat (limited to 'hosts/sif/default.nix')
| -rw-r--r-- | hosts/sif/default.nix | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index 72cf534d..bf6ac3c4 100644 --- a/hosts/sif/default.nix +++ b/hosts/sif/default.nix | |||
| @@ -675,6 +675,31 @@ in { | |||
| 675 | 675 | ||
| 676 | home-manager.sharedModules = [ flakeInputs.nixVirt.homeModules.default ]; | 676 | home-manager.sharedModules = [ flakeInputs.nixVirt.homeModules.default ]; |
| 677 | 677 | ||
| 678 | systemd.timers.nix-gc = lib.mkForce { | ||
| 679 | timerConfig = { | ||
| 680 | RandomizedDelaySec = "12h"; | ||
| 681 | Persistent = true; | ||
| 682 | OnCalendar = "*-*-* 18:00:00 Europe/Berlin"; | ||
| 683 | }; | ||
| 684 | wantedBy = [ "timers.target" ]; | ||
| 685 | }; | ||
| 686 | systemd.services.nix-gc = lib.mkForce { | ||
| 687 | description = "Nix Garbage Collector"; | ||
| 688 | serviceConfig = { | ||
| 689 | Type = "oneshot"; | ||
| 690 | ExecStart = pkgs.resholve.writeScript "nix-gc" { | ||
| 691 | interpreter = lib.getExe pkgs.zsh; | ||
| 692 | inputs = [ pkgs.coreutils config.nix.package ]; | ||
| 693 | execer = [ "cannot:${lib.getExe' config.nix.package "nix-collect-garbage"}" ]; | ||
| 694 | } '' | ||
| 695 | max_size=$(($(du -bs /nix/store | cut -f 1) - 1024**4)) | ||
| 696 | [[ $max_size -gt 0 ]] || exit 0 | ||
| 697 | exec nix-collect-garbage -vv --max-freed $max_size --delete-older-than 30d | ||
| 698 | ''; | ||
| 699 | }; | ||
| 700 | restartIfChanged = false; | ||
| 701 | }; | ||
| 702 | |||
| 678 | system.stateVersion = "24.11"; | 703 | system.stateVersion = "24.11"; |
| 679 | }; | 704 | }; |
| 680 | } | 705 | } |
