diff --git a/hosts/MaxNixosLaptop/configuration.nix b/hosts/MaxNixosLaptop/configuration.nix index 48f62df..262b335 100644 --- a/hosts/MaxNixosLaptop/configuration.nix +++ b/hosts/MaxNixosLaptop/configuration.nix @@ -152,6 +152,14 @@ randomizedDelaySec = "45min"; }; + nix.gc = { + automatic = true; + dates = "10:00"; + randomizedDelaySec = "45min"; + options = "--delete-older-than 14d"; + }; + nix.settings.auto-optimise-store = true; + # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/modules/nixos/rebuild.nix b/modules/nixos/rebuild.nix index 63bf788..99f0db5 100644 --- a/modules/nixos/rebuild.nix +++ b/modules/nixos/rebuild.nix @@ -1,45 +1,40 @@ {pkgs, ...}: let # script for rebuilding nixos - rebuild = pkgs.writeTextFile { - name = "rebuild"; - destination = "/bin/rebuild"; - executable = true; - text = '' - #!${pkgs.bash}/bin/bash + rebuild = pkgs.writeShellScriptBin "rebuild" '' + # A rebuild script that commits on a successful build + set -e - # A rebuild script that commits on a successful build - set -e + # cd to your config dir + pushd ~/dotfiles/nixos - # cd to your config dir - pushd ~/dotfiles/nixos + # Edit your config + $EDITOR - # Edit your config - $EDITOR + # Autoformat your nix files + ${pkgs.alejandra}/bin/alejandra . #&>/dev/null - # Autoformat your nix files - ${pkgs.alejandra}/bin/alejandra . #&>/dev/null + # Shows your changes + ${pkgs.git}/bin/git diff -U0 *.nix - # Shows your changes - ${pkgs.git}/bin/git diff -U0 *.nix + echo "NixOS Rebuilding..." - echo "NixOS Rebuilding..." + # echo using sudo so we get feedback after unlocking + sudo echo "Beginning rebuild" + # Rebuild, output simplified errors, log trackebacks + sudo nixos-rebuild switch &>nixos-switch.log || (${pkgs.coreutils}/bin/cat nixos-switch.log | ${pkgs.gnugrep}/bin/grep --color error && false) - # Rebuild, output simplified errors, log trackebacks - sudo nixos-rebuild switch &>nixos-switch.log || (${pkgs.coreutils}/bin/cat nixos-switch.log | ${pkgs.gnugrep}/bin/grep --color error && false) + # Get current generation metadata + current=$(nixos-rebuild list-generations | ${pkgs.gnugrep}/bin/grep current) - # Get current generation metadata - current=$(nixos-rebuild list-generations | ${pkgs.gnugrep}/bin/grep current) + # Commit all changes with the gereation metadata + ${pkgs.git}/bin/git commit -am "$current" - # Commit all changes with the gereation metadata - ${pkgs.git}/bin/git commit -am "$current" + # Back to where you were + popd - # Back to where you were - popd - - # Notify all OK! - ${pkgs.libnotify}/bin/notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available - ''; - }; + # Notify all OK! + ${pkgs.libnotify}/bin/notify-send -e "NixOS Rebuilt OK!" --icon=software-update-available + ''; in { environment.systemPackages = [rebuild]; }