zaphyra's git: nixfiles

zaphyra and void's nixfiles

commit 7bcdc7435759ec603f5e087a22efcd9ce2c80f96
parent f3b6a9cca74d1ec88c21703d18964d7a4eb071cb
Author: Katja (zaphyra) <git@ctu.cx>
Date: Fri, 6 Jun 2025 19:03:03 +0200

config/home/katja: add impermanence to home `UwU`
10 files changed, 73 insertions(+), 1 deletion(-)
diff --git a/config/home/katja/configure/gnome.nix b/config/home/katja/configure/gnome.nix
@@ -17,6 +17,14 @@ in
     QT_QPA_PLATFORMTHEME = "gnome";
   };
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "dconf/.config/dconf"
+    "keyring/.local/share/keyrings"
+    "evolution-data-server/.local/share/evolution"
+    "gnome-online-accounts/.config/goa-1.0"
+    "gnome/.local/share/gnome-shell"
+  ];
+
   home.packages =
     with pkgs;
     [
diff --git a/config/home/katja/impermanence.nix b/config/home/katja/impermanence.nix
@@ -0,0 +1,22 @@
+{ ... }:
+
+{
+
+  home.persistence."/nix/persist/home/katja" = {
+    allowOther = true;
+    removePrefixDirectory = true;
+    directories = let
+      symlink = path: { method = "symlink"; directory = path; };
+    in [
+      (symlink "syncthing/Documents")
+      (symlink "syncthing/Bahn-Richtlinien")
+      (symlink "syncthing/Videos")
+      (symlink "syncthing/Pictures")
+      (symlink "syncthing/Music")
+      (symlink "syncthing/Audiobooks")
+      (symlink "data/Downloads")
+      (symlink "data/proj")
+    ];
+  };
+
+}+
\ No newline at end of file
diff --git a/config/home/katja/programs/firefox.nix b/config/home/katja/programs/firefox.nix
@@ -16,6 +16,11 @@
     target = ".mozilla/firefox/katja/chrome/firefox-gnome-theme";
   };
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "firefox/.mozilla/firefox/"
+    "firefox/.cache/mozilla/firefox"
+  ];
+
   programs.firefox = {
     enable = true;
     package = pkgs.firefox;
diff --git a/config/home/katja/programs/fish.nix b/config/home/katja/programs/fish.nix
@@ -2,6 +2,10 @@
 
 {
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "fish/.local/share/fish"
+  ];
+
   programs.fish = {
     enable = true;
     generateCompletions = true;
diff --git a/config/home/katja/programs/fractal.nix b/config/home/katja/programs/fractal.nix
@@ -2,6 +2,13 @@
 
 {
 
-  home.packages = [ pkgs.fractal ];
+  home = {
+    packages = [ pkgs.fractal ];
+
+    persistence."/nix/persist/home/katja".directories = [
+      "fractal/.local/share/fractal/"
+      "fractal/.cache/fractal/"
+    ];
+  };
 
 }
diff --git a/config/home/katja/programs/mcfly.nix b/config/home/katja/programs/mcfly.nix
@@ -2,6 +2,10 @@
 
 {
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "mcfly/.local/share/mcfly"
+  ];
+
   programs.mcfly = {
     enable = true;
     enableFishIntegration = true;
diff --git a/config/home/katja/programs/ssh.nix b/config/home/katja/programs/ssh.nix
@@ -2,6 +2,11 @@
 
 {
 
+
+  home.persistence."/nix/persist/home/katja".files = [
+    "ssh/.ssh/known_hosts"
+  ];
+
   programs.ssh = {
     enable = true;
     compression = true;
diff --git a/config/home/katja/programs/thunderbird.nix b/config/home/katja/programs/thunderbird.nix
@@ -9,6 +9,11 @@
 
   home.packages = [ pkgs.thunderbird ];
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "thunderbird/.thunderbird/"
+    "thunderbird/.cache/thunderbird"
+  ];
+
   systemd.user.services.thunderbird = lib.mkIf config.wayland.windowManager.sway.enable {
     Unit.After = [ "graphical-session-pre.target" ];
     Unit.PartOf = [ "graphical-session.target" ];
diff --git a/config/home/katja/programs/tuba.nix b/config/home/katja/programs/tuba.nix
@@ -4,6 +4,10 @@
 
   home.packages = [ pkgs.tuba ];
 
+  home.persistence."/nix/persist/home/katja".directories = [
+    "tuba/.cache/tuba"
+  ];
+
   dconf.settings = {
     "dev/geopjr/Tuba" = {
       work-in-background = true;
diff --git a/config/nixos/modules/users/katja.nix b/config/nixos/modules/users/katja.nix
@@ -25,6 +25,8 @@ in
       sopsFile = inputs.self.sopsSecrets.common;
     };
 
+    programs.fuse.userAllowOther = lib.mkIf config.modules.filesystem.impermanence.home.enable (lib.mkDefault true);
+
     users.users.katja = {
       uid = 1001;
       description = "Katja";

@@ -47,6 +49,11 @@ in
       [
         homeManagerModules.katja.common
       ]
+
+      (lib.optionals config.modules.filesystem.impermanence.home.enable [
+        inputs.impermanence.homeManagerModules.impermanence
+        homeManagerModules.katja.impermanence
+      ])
       (lib.optionals config.modules.presets.graphical.enable (
         with homeManagerModules.katja;
         [