diff --git a/home/programs/group/cybersecurity.nix b/home/programs/group/cybersecurity.nix index 9bc09363..1d6e3a64 100644 --- a/home/programs/group/cybersecurity.nix +++ b/home/programs/group/cybersecurity.nix @@ -1,4 +1,9 @@ -{pkgs, ...}: { +{ + pkgs, + config, + lib, + ... +}: { home.packages = import ./cybersecurity-packages.nix { inherit pkgs; }; @@ -38,7 +43,9 @@ }; }; - home.persistence."/persist".directories = [ - "Cyber" - ]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [ + "Cyber" + ]; + }; } diff --git a/home/programs/group/dev.nix b/home/programs/group/dev.nix index 71393a3c..07569779 100644 --- a/home/programs/group/dev.nix +++ b/home/programs/group/dev.nix @@ -1,6 +1,8 @@ { pkgs, pkgs-unstable, + config, + lib, ... }: { home = { @@ -19,7 +21,7 @@ rsync ]); - persistence."/persist" = { + persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { directories = [ ".claude" ]; diff --git a/home/programs/gui/helium/default.nix b/home/programs/gui/helium/default.nix index 72c8d37d..6606904a 100644 --- a/home/programs/gui/helium/default.nix +++ b/home/programs/gui/helium/default.nix @@ -137,7 +137,9 @@ in { mimeType = ["text/html" "text/xml" "application/xhtml+xml"]; }; - home.persistence."/persist".directories = [ - ".config/net.imput.helium" - ]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [ + ".config/net.imput.helium" + ]; + }; } diff --git a/home/programs/gui/pkgs.nix b/home/programs/gui/pkgs.nix index 12888523..68ae1959 100644 --- a/home/programs/gui/pkgs.nix +++ b/home/programs/gui/pkgs.nix @@ -1,4 +1,9 @@ -{pkgs, ...}: { +{ + pkgs, + config, + lib, + ... +}: { home.packages = with pkgs; [ vlc # Video player obsidian # Note taking app @@ -13,9 +18,11 @@ gnome-text-editor ]; - home.persistence."/persist".directories = [ - ".config/ticktick" - ".config/Signal" - ".config/obsidian" - ]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [ + ".config/ticktick" + ".config/Signal" + ".config/obsidian" + ]; + }; } diff --git a/home/programs/gui/proton/default.nix b/home/programs/gui/proton/default.nix index 475d3570..b0576c85 100644 --- a/home/programs/gui/proton/default.nix +++ b/home/programs/gui/proton/default.nix @@ -1,6 +1,7 @@ { pkgs, config, + lib, ... }: { home.packages = with pkgs; [ @@ -28,8 +29,10 @@ }; }; - home.persistence."/persist".directories = [ - ".config/protonvpn" - ".config/Proton Pass" - ]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [ + ".config/protonvpn" + ".config/Proton Pass" + ]; + }; } diff --git a/home/programs/tui/pkgs.nix b/home/programs/tui/pkgs.nix index b8e2e5d6..5f0c839e 100644 --- a/home/programs/tui/pkgs.nix +++ b/home/programs/tui/pkgs.nix @@ -1,6 +1,8 @@ { pkgs, pkgs-unstable, + config, + lib, ... }: { home.packages = with pkgs; [ @@ -38,5 +40,7 @@ smassh # typing test, 10fastfinger like ]; - home.persistence."/persist".directories = [".config/gh" ".config/gh-dash"]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [".config/gh" ".config/gh-dash"]; + }; } diff --git a/home/programs/tui/shell/zsh.nix b/home/programs/tui/shell/zsh.nix index f5db37d6..29d4aeb7 100644 --- a/home/programs/tui/shell/zsh.nix +++ b/home/programs/tui/shell/zsh.nix @@ -15,7 +15,9 @@ COLORTERM = "truecolor"; MANPAGER = "bat -l man -p"; }; - persistence."/persist".files = [".zsh_history"]; + persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + files = [".zsh_history"]; + }; }; programs.zsh = { diff --git a/home/programs/tui/spotatui/default.nix b/home/programs/tui/spotatui/default.nix index 75b3c0a6..242724c4 100644 --- a/home/programs/tui/spotatui/default.nix +++ b/home/programs/tui/spotatui/default.nix @@ -2,6 +2,7 @@ { config, pkgs, + lib, ... }: let c = config.lib.stylix.colors; @@ -11,7 +12,9 @@ in { spotatui ]; - home.persistence."/persist".directories = [".config/spotatui" ".config/spotify"]; + home.persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { + directories = [".config/spotatui" ".config/spotify"]; + }; home.file.".config/spotatui/config.yml".text = '' keybindings: diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 2839fc5c..dd19bcc4 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -1,6 +1,7 @@ { config, inputs, + lib, ... }: { imports = [ @@ -49,7 +50,7 @@ inherit (config.var) username; homeDirectory = "/home/" + config.var.username; - persistence."/persist" = { + persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { directories = [ ".config/nixos" # this repo itself (nixy manages it here) ".local/share" diff --git a/hosts/laptop/variables.nix b/hosts/laptop/variables.nix index c703f538..d03bf839 100644 --- a/hosts/laptop/variables.nix +++ b/hosts/laptop/variables.nix @@ -26,6 +26,7 @@ autoUpgrade = false; autoGarbageCollector = true; + impermanenceEnabled = true; }; # DON'T TOUCH THIS diff --git a/hosts/server/flake.nix b/hosts/server/flake.nix index bfe90f61..fabd495c 100644 --- a/hosts/server/flake.nix +++ b/hosts/server/flake.nix @@ -13,6 +13,7 @@ nixpkgs.lib.nixosSystem { inputs.nixarr.nixosModules.default inputs.nix-index-database.nixosModules.default inputs.default-creds.nixosModules.default + inputs.impermanence.nixosModules.impermanence ./configuration.nix ]; } diff --git a/hosts/work/home.nix b/hosts/work/home.nix index ff18fc7f..28a1be83 100644 --- a/hosts/work/home.nix +++ b/hosts/work/home.nix @@ -1,6 +1,7 @@ { config, inputs, + lib, ... }: { imports = [ @@ -48,7 +49,7 @@ inherit (config.var) username; homeDirectory = "/home/" + config.var.username; - persistence."/persist" = { + persistence."/persist" = lib.mkIf (config.var.impermanenceEnabled or false) { directories = [ ".config/nixos" # this repo itself (nixy manages it here) ".local/share" diff --git a/hosts/work/variables.nix b/hosts/work/variables.nix index 529e0131..b7d7a415 100644 --- a/hosts/work/variables.nix +++ b/hosts/work/variables.nix @@ -26,6 +26,7 @@ autoUpgrade = false; autoGarbageCollector = true; + impermanenceEnabled = true; }; # DON'T TOUCH THIS