aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/scripts/WaybarLayout.sh
diff options
context:
space:
mode:
Diffstat (limited to 'config/hypr/scripts/WaybarLayout.sh')
-rwxr-xr-xconfig/hypr/scripts/WaybarLayout.sh49
1 files changed, 32 insertions, 17 deletions
diff --git a/config/hypr/scripts/WaybarLayout.sh b/config/hypr/scripts/WaybarLayout.sh
index 0bea6ffe..955432fc 100755
--- a/config/hypr/scripts/WaybarLayout.sh
+++ b/config/hypr/scripts/WaybarLayout.sh
@@ -11,32 +11,47 @@ SCRIPTSDIR="$HOME/.config/hypr/scripts"
rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
msg=' 🎌 NOTE: Some waybar LAYOUT NOT fully compatible with some STYLES'
-# Function to display menu options
-menu() {
- options=()
- while IFS= read -r file; do
- options+=("$(basename "$file")")
- done < <(find -L "$waybar_layouts" -maxdepth 1 -type f -exec basename {} \; | sort )
-
- printf '%s\n' "${options[@]}"
-}
-
# Apply selected configuration
apply_config() {
ln -sf "$waybar_layouts/$1" "$waybar_config"
"${SCRIPTSDIR}/Refresh.sh" &
}
-# Main function
main() {
- choice=$(menu | rofi -i -dmenu -config "$rofi_config" -mesg "$msg")
+ # Resolve current symlink target and basename
+ current_target=$(readlink -f "$waybar_config")
+ current_name=$(basename "$current_target")
+
+ # Build sorted list of available layouts
+ mapfile -t options < <(
+ find -L "$waybar_layouts" -maxdepth 1 -type f -printf '%f\n' | sort
+ )
+
+ # Mark and locate the active layout
+ default_row=0
+ for i in "${!options[@]}"; do
+ if [[ "${options[i]}" == "$current_name" ]]; then
+ options[i]="👉 ${options[i]}"
+ default_row=$i
+ break
+ fi
+ done
+
+ # Launch rofi with the annotated list, pre‑selecting the active row
+ choice=$(printf '%s\n' "${options[@]}" \
+ | rofi -i -dmenu \
+ -config "$rofi_config" \
+ -mesg "$msg" \
+ -selected-row "$default_row"
+ )
+
+ # Exit if nothing chosen
+ [[ -z "$choice" ]] && { echo "No option selected. Exiting."; exit 0; }
- if [[ -z "$choice" ]]; then
- echo "No option selected. Exiting."
- exit 0
- fi
+ # Strip marker before applying
+ choice=${choice% ⮕}
- case $choice in
+ case "$choice" in
"no panel")
pgrep -x "waybar" && pkill waybar || true
;;
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage