diff --git a/settings/stylix.nix b/settings/stylix.nix index c97aae9..3aff924 100644 --- a/settings/stylix.nix +++ b/settings/stylix.nix @@ -87,6 +87,12 @@ ADWAITA="/run/current-system/sw/share/icons/Adwaita" PAPIRUS="/run/current-system/sw/share/icons/Papirus-Dark" PRIMARY="#${config.lib.stylix.colors.base0D}" + CACHE_FILE="$ICON_DIR/.color-cache" + + # Skip the SVG recolour pass if the palette colour hasn't changed. + if [ -f "$CACHE_FILE" ] && [ "$(cat "$CACHE_FILE" 2>/dev/null)" = "$PRIMARY" ] && [ -d "$ICON_DIR/scalable/places" ]; then + echo "recolorFolders: palette unchanged, skipping" + else $DRY_RUN_CMD mkdir -p "$ICON_DIR/scalable/places" @@ -229,6 +235,8 @@ done $DRY_RUN_CMD ${pkgs.gtk3}/bin/gtk-update-icon-cache -f "$ICON_DIR" 2>/dev/null || true + $DRY_RUN_CMD sh -c "echo '$PRIMARY' > '$CACHE_FILE'" + fi # end palette-changed block ''; }; };