aboutsummaryrefslogtreecommitdiffstats
path: root/flake
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
parentrefactor({modules,pkgs}/by-name-overlay): De-duplicate in a `nixLib` (diff)
downloadnixos-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')
-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"