diff options
| author | Ahmed Abdelhalim <[email protected]> | 2026-01-14 23:12:28 +0100 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2026-01-14 23:12:28 +0100 |
| commit | 5bb4cb6d7138fcac012305b50f52ffd53f9bd2c2 (patch) | |
| tree | 70a18261e4ed8e247293186348771582612b83d5 /roles/hyprtheme/files/scripts | |
| parent | 7986ef492d2ea651730bc0d1324e39f3d56276e5 (diff) | |
Add hyprtheme (based on omarchy themes) role with 2 themes
Diffstat (limited to 'roles/hyprtheme/files/scripts')
| -rw-r--r-- | roles/hyprtheme/files/scripts/theme-bg-next | 49 | ||||
| -rw-r--r-- | roles/hyprtheme/files/scripts/theme-set | 57 |
2 files changed, 106 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 diff --git a/roles/hyprtheme/files/scripts/theme-set b/roles/hyprtheme/files/scripts/theme-set new file mode 100644 index 00000000..905ce932 --- /dev/null +++ b/roles/hyprtheme/files/scripts/theme-set @@ -0,0 +1,57 @@ +#!/bin/bash + +# Extracted from omarchy with a little modifications +if [[ -z $1 ]]; then + echo "Usage: theme-set <theme-name>" + exit 1 +fi + +THEMES_PATH="$HOME/.config/hyprthemes/themes" +CURRENT_THEME_PATH="$HOME/.config/hyprthemes/current" +THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-') + +if [[ ! -d "$THEMES_PATH/$THEME_NAME" ]]; then + echo "Theme '$THEME_NAME' does not exist" + exit 1 +fi + +# Get close to as atomic as possible. +ln -sfn "$THEMES_PATH/$THEME_NAME" "$CURRENT_THEME_PATH.new" +rm -rf "$CURRENT_THEME_PATH" +mv "$CURRENT_THEME_PATH.new" "$CURRENT_THEME_PATH" +./.config/hyprthemes/scripts/theme-bg-next + +pkill -x waybar || true +setsid uwsm-app -- waybar >/dev/null 2>&1 & + +# pkill -x swayosd-server || true +# setsid uwsm-app -- swayosd-server >/dev/null 2>&1 & + +hyprctl reload >/dev/null 2>&1 + +pkill -SIGUSR2 btop || true + +makoctl reload + +if [[ -f ~/.config/alacritty/alacritty.toml ]]; then + touch ~/.config/alacritty/alacritty.toml +fi +killall -SIGUSR1 kitty >/dev/null 2>&1 || true +killall -SIGUSR2 ghostty >/dev/null 2>&1 || true + +# if [[ -f ~/.config/hyprthemes/current/light.mode ]]; then + # gsettings set org.gnome.desktop.interface color-scheme "prefer-light" + # gsettings set org.gnome.desktop.interface gtk-theme "Adwaita" +# else + # gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" + # gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" +# fi + +# # Change gnome icon theme color +# GNOME_ICONS_THEME=~/.config/hyprthemes/current/icons.theme +# if [[ -f $GNOME_ICONS_THEME ]]; then + # gsettings set org.gnome.desktop.interface icon-theme "$(<$GNOME_ICONS_THEME)" +# else + # gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" +# fi + |
