From 8c70ac492c3058fce029ffa9a31cdb9556a40bcc Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 16 Jan 2026 19:42:32 -0500 Subject: Added submeu for RainbowBorders and the new modes - Added `Rainbow Borders sub memu` - Code provided by [brunoorsolon](https://github.com/brunoorsolon) - There are now mulitple modes for the Rainbow Borders feature - `Disabled`, `Wallust Color`, `Rainbow`, `Gradient flow` - Thank you for the submission On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/UserScripts/RainbowBorders.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh --- config/hypr/scripts/Kool_Quick_Settings.sh | 74 +++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) (limited to 'config/hypr/scripts') diff --git a/config/hypr/scripts/Kool_Quick_Settings.sh b/config/hypr/scripts/Kool_Quick_Settings.sh index c8f71d06..5f0193ed 100755 --- a/config/hypr/scripts/Kool_Quick_Settings.sh +++ b/config/hypr/scripts/Kool_Quick_Settings.sh @@ -74,6 +74,76 @@ toggle_rainbow_borders() { fi } +# Submenu to choose Rainbow Borders mode (disable, wallust_random, rainbow, gradient_flow) +rainbow_borders_menu() { + local rainbow_script="$UserScripts/RainbowBorders.sh" + local disabled_sh_bak="${rainbow_script}.bak" + local disabled_bak_sh="$UserScripts/RainbowBorders.bak.sh" + local refresh_script="$scriptsDir/Refresh.sh" + + # Determine current mode/status + local current="disabled" + if [[ -f "$rainbow_script" ]]; then + current=$(grep -E '^EFFECT_TYPE=' "$rainbow_script" 2>/dev/null | sed -E 's/^EFFECT_TYPE="?([^"]*)"?.*/\1/') + [[ -z "$current" ]] && current="unknown" + fi + + # Build options and prompt + local options="disable\nwallust_random\nrainbow\ngradient_flow" + local choice + choice=$(printf "%b" "$options" | rofi -i -dmenu -config "$rofi_theme" -mesg "Rainbow Borders: choose mode (current: $current)") + + [[ -z "$choice" ]] && return + + case "$choice" in + disable|Disable) + if [[ -f "$rainbow_script" ]]; then + mv "$rainbow_script" "$disabled_sh_bak" + fi + current="disabled" + ;; + wallust_random|rainbow|gradient_flow) + # Ensure script is enabled + if [[ ! -f "$rainbow_script" ]]; then + if [[ -f "$disabled_sh_bak" ]]; then + mv "$disabled_sh_bak" "$rainbow_script" + elif [[ -f "$disabled_bak_sh" ]]; then + mv "$disabled_bak_sh" "$rainbow_script" + else + show_info "RainbowBorders script not found in $UserScripts." + return + fi + fi + + # Update EFFECT_TYPE in place; insert if missing + if grep -q '^EFFECT_TYPE=' "$rainbow_script" 2>/dev/null; then + sed -i 's/^EFFECT_TYPE=.*/EFFECT_TYPE="'"$choice"'"/' "$rainbow_script" + else + if head -n1 "$rainbow_script" | grep -q '^#!'; then + sed -i '1a EFFECT_TYPE="'"$choice"'"' "$rainbow_script" + else + sed -i '1i EFFECT_TYPE="'"$choice"'"' "$rainbow_script" + fi + fi + current="$choice" + ;; + *) + return ;; + esac + + # Run refresh if available + if [[ -x "$refresh_script" ]]; then + "$refresh_script" >/dev/null 2>&1 & + fi + + # Notify + if [[ "$current" == "disabled" ]]; then + show_info "Rainbow Borders disabled." + else + show_info "Rainbow Borders: $current." + fi +} + # Function to display the menu options without numbers menu() { cat <