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
51 lines
1.6 KiB
Bash
Executable File
51 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Cycles through the background images available
|
|
|
|
THEME_NAME=$(cat "$HOME/.config/omarchy/current/theme.name" 2>/dev/null)
|
|
THEME_BACKGROUNDS_PATH="$HOME/.config/omarchy/current/theme/backgrounds/"
|
|
USER_BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME/"
|
|
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
|
|
|
|
mapfile -d '' -t BACKGROUNDS < <(find -L "$USER_BACKGROUNDS_PATH" "$THEME_BACKGROUNDS_PATH" -maxdepth 1 -type f -print0 2>/dev/null | sort -z)
|
|
TOTAL=${#BACKGROUNDS[@]}
|
|
|
|
if [[ $TOTAL -eq 0 ]]; then
|
|
notify-send "No background was found for theme" -t 2000
|
|
pkill -x swaybg
|
|
setsid uwsm-app -- swaybg --color '#000000' >/dev/null 2>&1 &
|
|
else
|
|
# Get current background from symlink
|
|
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
|
|
CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
|
|
else
|
|
# Default to first background if no symlink exists
|
|
CURRENT_BACKGROUND=""
|
|
fi
|
|
|
|
# Find current background index
|
|
INDEX=-1
|
|
for i in "${!BACKGROUNDS[@]}"; do
|
|
if [[ "${BACKGROUNDS[$i]}" == "$CURRENT_BACKGROUND" ]]; then
|
|
INDEX=$i
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Get next background (wrap around)
|
|
if [[ $INDEX -eq -1 ]]; then
|
|
# Use the first background when no match was found
|
|
NEW_BACKGROUND="${BACKGROUNDS[0]}"
|
|
else
|
|
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
|
|
NEW_BACKGROUND="${BACKGROUNDS[$NEXT_INDEX]}"
|
|
fi
|
|
|
|
# Set new background symlink
|
|
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
|
|
|
|
# Relaunch swaybg
|
|
pkill -x swaybg
|
|
setsid uwsm-app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
|
|
fi
|