Files
omarchy/bin/omarchy-theme-bg-next

49 lines
1.3 KiB
Plaintext
Raw Normal View History

2025-06-09 11:59:21 +02:00
#!/bin/bash
# Cycles through the background images available
BACKGROUNDS_DIR="$HOME/.config/omarchy/current/theme/backgrounds/"
2025-06-19 08:10:36 -04:00
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
2025-06-09 11:59:21 +02:00
mapfile -d '' -t BACKGROUNDS < <(find "$BACKGROUNDS_DIR" -type f -print0 | sort -z)
2025-06-09 11:59:21 +02:00
TOTAL=${#BACKGROUNDS[@]}
if [[ $TOTAL -eq 0 ]]; then
notify-send "No background was found for theme" -t 2000
pkill -x swaybg
uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
2025-06-09 11:59:21 +02:00
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
2025-07-17 16:54:19 -07:00
CURRENT_BACKGROUND=""
2025-06-18 22:00:47 +02:00
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
2025-06-18 22:00:47 +02:00
# Set new background symlink
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
2025-06-09 11:59:21 +02:00
# Relaunch swaybg
pkill -x swaybg
2025-07-22 18:33:25 -04:00
uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
fi