mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
39 lines
888 B
Bash
Executable File
39 lines
888 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Get all theme names (user themes override default by name)
|
|
declare -A seen
|
|
THEMES=()
|
|
|
|
for dir in ~/.config/omarchy/themes "$OMARCHY_PATH/themes"; do
|
|
for path in "$dir"/*/; do
|
|
[[ -d "$path" ]] || continue
|
|
name=$(basename "$path")
|
|
if [[ -z "${seen[$name]}" ]]; then
|
|
seen[$name]=1
|
|
THEMES+=("$name")
|
|
fi
|
|
done
|
|
done
|
|
|
|
IFS=$'\n' THEMES=($(printf '%s\n' "${THEMES[@]}" | sort))
|
|
|
|
# Get current theme name
|
|
if [[ -f "$HOME/.config/omarchy/current/theme.name" ]]; then
|
|
CURRENT=$(cat "$HOME/.config/omarchy/current/theme.name")
|
|
else
|
|
CURRENT=""
|
|
fi
|
|
|
|
# Find next theme
|
|
TOTAL=${#THEMES[@]}
|
|
for i in "${!THEMES[@]}"; do
|
|
if [[ "${THEMES[$i]}" == "$CURRENT" ]]; then
|
|
NEXT_INDEX=$(((i + 1) % TOTAL))
|
|
break
|
|
fi
|
|
done
|
|
NEXT_INDEX=${NEXT_INDEX:-0}
|
|
|
|
omarchy-theme-set "${THEMES[$NEXT_INDEX]}"
|
|
notify-send "Theme changed to ${THEMES[$NEXT_INDEX]}" -t 2000
|