mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Use theme config templates with singular color definition (#4053)
* 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
This commit is contained in:
committed by
GitHub
parent
de2757466b
commit
4a07b94cb6
62
migrations/1767306902.sh
Normal file
62
migrations/1767306902.sh
Normal file
@@ -0,0 +1,62 @@
|
||||
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
|
||||
Reference in New Issue
Block a user