diff --git a/nixos/home/danny/home.nix b/nixos/home/danny/home.nix index f2b4384..91fd887 100644 --- a/nixos/home/danny/home.nix +++ b/nixos/home/danny/home.nix @@ -150,10 +150,12 @@ # Writable copy (not a symlink to the store — cp in the sync script must replace a real file). home.activation.alacrittySystemTheme = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - MOCHA="${config.xdg.configHome}/alacritty/catppuccin-mocha-colors.toml" + MOCHA="${../../../assets/alacritty/catppuccin-mocha-colors.toml}" ACTIVE="${config.xdg.configHome}/alacritty/active-colors.toml" + $DRY_RUN_CMD mkdir -p "${config.xdg.configHome}/alacritty" if [ ! -f "$ACTIVE" ]; then $DRY_RUN_CMD cp "$MOCHA" "$ACTIVE" + $DRY_RUN_CMD chmod 0644 "$ACTIVE" fi $DRY_RUN_CMD ${pkgs.bash}/bin/bash "${../../../scripts/alacritty-sync-system-theme.sh}" || true ''; diff --git a/scripts/alacritty-sync-system-theme.sh b/scripts/alacritty-sync-system-theme.sh old mode 100644 new mode 100755 index 5e03a94..2238ef5 --- a/scripts/alacritty-sync-system-theme.sh +++ b/scripts/alacritty-sync-system-theme.sh @@ -26,15 +26,16 @@ else want="light" fi -if [[ -f "$MARKER" ]] && [[ "$(tr -d '\n' <"$MARKER")" == "$want" ]]; then - exit 0 -fi - mkdir -p "$ALACRITTY_DIR" printf '%s' "$want" >"$MARKER" if [[ "$want" == "light" ]]; then - cp "$LIGHT" "$ACTIVE" + tmp="$(mktemp "$ALACRITTY_DIR/active-colors.toml.XXXXXX")" + cp "$LIGHT" "$tmp" else - cp "$DARK" "$ACTIVE" + tmp="$(mktemp "$ALACRITTY_DIR/active-colors.toml.XXXXXX")" + cp "$DARK" "$tmp" fi + +chmod 0644 "$tmp" +mv -f "$tmp" "$ACTIVE"