mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
* Attempt to templaterize the theme specific files * Cleanup * Slim down * Combine render into -set * Pull out the dynamic template rendering again, but simpler * Fix vars * Variables are lowercase * Better presentation * Fix missing colors * Provide stripped values too * Fix colors for regular hex format * Bring back explicit btop themes They're too involved to derive from a basic color set * Make an atomic swap of the theme directories * No longer used by walker to cancel * Explain why * Remove redundant const * Consistent const naming * No longe have $THEMES_DIR * Correct the blue * Set opencode colors too * Fix colors for readability * Move the templates together with the others in default * Split user themes and default themes * Fix paths * Look for both user themes and default themes Plus speed things up * Migrate to the new setup where default themes live inside omarchy * Explicitly store the name of the current theme * Cleanup * No longer need omarchy-theme-next since themes are now fully rendered, not symlinks * Get current theme name from the new theme.name file * Look for user background images in dedicated directory * Need yq for toml * Need yq to parse colors.toml * Look for backgrounds matching the new theme.name We no longer have symlinks * Migrate existing user backgrounds to the new proper location * Install user backgrounds in the correct path * Fix quoting * Just rely on the system theme for opencode and get ready for USRSIG2 being available to live reload * Fix template generation for rgb colors
63 lines
2.0 KiB
Bash
63 lines
2.0 KiB
Bash
echo "Migrate to new theme setup"
|
|
|
|
omarchy-pkg-add yq
|
|
|
|
# Move user-added backgrounds from Omarchy theme folders to user config
|
|
OMARCHY_DIR="$HOME/.local/share/omarchy"
|
|
USER_BACKGROUNDS_DIR="$HOME/.config/omarchy/backgrounds"
|
|
|
|
if [[ -d "$OMARCHY_DIR/themes" ]]; then
|
|
cd "$OMARCHY_DIR"
|
|
|
|
# Get list of git-tracked background files (relative to omarchy dir)
|
|
mapfile -t TRACKED_BACKGROUNDS < <(git ls-files --cached 'themes/*/backgrounds/*' 2>/dev/null)
|
|
|
|
# Find all background files and check if they're untracked (user-added)
|
|
for theme_dir in themes/*/; do
|
|
theme_name=$(basename "$theme_dir")
|
|
backgrounds_dir="themes/$theme_name/backgrounds"
|
|
|
|
[[ -d "$backgrounds_dir" ]] || continue
|
|
|
|
for bg_file in "$backgrounds_dir"/*; do
|
|
[[ -f "$bg_file" ]] || continue
|
|
|
|
# Check if this file is tracked by git
|
|
is_tracked=false
|
|
for tracked in "${TRACKED_BACKGROUNDS[@]}"; do
|
|
if [[ "$tracked" == "$bg_file" ]]; then
|
|
is_tracked=true
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [[ "$is_tracked" == "false" ]]; then
|
|
# This is a user-added background, move it to user config
|
|
user_theme_bg_dir="$USER_BACKGROUNDS_DIR/$theme_name"
|
|
mkdir -p "$user_theme_bg_dir"
|
|
mv "$bg_file" "$user_theme_bg_dir/"
|
|
echo "Moved user background: $bg_file -> $user_theme_bg_dir/"
|
|
fi
|
|
done
|
|
done
|
|
fi
|
|
|
|
THEMES_DIR="$HOME/.config/omarchy/themes"
|
|
CURRENT_THEME_LINK="$HOME/.config/omarchy/current/theme"
|
|
|
|
# Get current theme name from symlink before removing anything
|
|
CURRENT_THEME_NAME=""
|
|
if [[ -L $CURRENT_THEME_LINK ]]; then
|
|
CURRENT_THEME_NAME=$(basename "$(readlink "$CURRENT_THEME_LINK")")
|
|
elif [[ -f "$HOME/.config/omarchy/current/theme.name" ]]; then
|
|
CURRENT_THEME_NAME=$(cat "$HOME/.config/omarchy/current/theme.name")
|
|
fi
|
|
|
|
# Remove all symlinks from ~/.config/omarchy/themes
|
|
find "$THEMES_DIR" -mindepth 1 -maxdepth 1 -type l -delete
|
|
|
|
# Re-apply the current theme with the new system
|
|
if [[ -n $CURRENT_THEME_NAME ]]; then
|
|
omarchy-theme-set "$CURRENT_THEME_NAME"
|
|
fi
|