about summary refs log tree commit diff stats
path: root/flake/nixosConfigurations
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-24 15:13:13 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-24 15:13:13 +0200
commit6cd16cfab0e9d8557d8a6e876fffb636da615cc9 (patch)
treef7893309ec1a3e776df733384ff7cd984a7c0aff /flake/nixosConfigurations
parentrefactor({modules,pkgs}/by-name-overlay): De-duplicate in a `nixLib` (diff)
downloadnixos-config-6cd16cfab0e9d8557d8a6e876fffb636da615cc9.tar.gz
nixos-config-6cd16cfab0e9d8557d8a6e876fffb636da615cc9.zip
feat(modules/unison): Auto-ignore all symlinks made with `home.file`
This allows us to actually sync symlinks, as most of the unwanted ones
are already ignored. And syncing the `.direnv` gc-roots is not that much
of a problem, because these are re-generated when they point to a
non-existent path.
Diffstat (limited to 'flake/nixosConfigurations')
-rw-r--r--flake/nixosConfigurations/common.nix24
1 files changed, 16 insertions, 8 deletions
diff --git a/flake/nixosConfigurations/common.nix b/flake/nixosConfigurations/common.nix
index 2ff85521..68533bd8 100644
--- a/flake/nixosConfigurations/common.nix
+++ b/flake/nixosConfigurations/common.nix
@@ -43,16 +43,24 @@
         foreign.userName = "soispha";
         dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison";
         userSourceDir = "/srv/home/soispha";
-        pathsToIgnore = [
-          # already synchronized by the taskserver
-          "~/.local/share/task"
+        pathsToIgnore = let
+          extractTarget = attr: "~/${attr.target}";
+          homeManagerSymlinks =
+            builtins.map extractTarget
+            (builtins.attrValues
+              config.home-manager.users.soispha.home.file);
+        in
+          [
+            # already synchronized by the taskserver
+            "~/.local/share/task"
 
-          # Should not be synchronized
-          "~/.local/share/unison"
+            # Should not be synchronized
+            "~/.local/share/unison"
 
-          # Is just to big to be synchronized (# TODO: Work around that <2024-08-31> )
-          "~/media/music"
-        ];
+            # Is just to big to be synchronized (# TODO: Work around that <2024-08-31> )
+            "~/media/music"
+          ]
+          ++ homeManagerSymlinks;
 
         pathsToSync = [
           "~/.local/state/mpv"