summaryrefslogtreecommitdiffstats
path: root/roles/hyprtheme/files/scripts/theme-bg-next
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2026-01-14 23:12:28 +0100
committerAhmed Abdelhalim <[email protected]>2026-01-14 23:12:28 +0100
commit5bb4cb6d7138fcac012305b50f52ffd53f9bd2c2 (patch)
tree70a18261e4ed8e247293186348771582612b83d5 /roles/hyprtheme/files/scripts/theme-bg-next
parent7986ef492d2ea651730bc0d1324e39f3d56276e5 (diff)
Add hyprtheme (based on omarchy themes) role with 2 themes
Diffstat (limited to 'roles/hyprtheme/files/scripts/theme-bg-next')
-rw-r--r--roles/hyprtheme/files/scripts/theme-bg-next49
1 files changed, 49 insertions, 0 deletions
diff --git a/roles/hyprtheme/files/scripts/theme-bg-next b/roles/hyprtheme/files/scripts/theme-bg-next
new file mode 100644
index 00000000..c3259a45
--- /dev/null
+++ b/roles/hyprtheme/files/scripts/theme-bg-next
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# Cycles through the background images available
+
+THEMES_PATH="$HOME/.config/hyprthemes/"
+THEME_BACKGROUNDS_PATH="$THEMES_PATH/current/backgrounds/"
+CURRENT_BACKGROUND_LINK="$THEMES_PATH/current/background"
+
+mapfile -d '' -t BACKGROUNDS < <(find -L "$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