dotfiles/.config/hypr/scripts/WaybarStyles.sh
2025-12-15 18:20:18 +01:00

64 lines
1.7 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ##
# Script for waybar styles
IFS=$'\n\t'
# Define directories
waybar_styles="$HOME/.config/waybar/style"
waybar_style="$HOME/.config/waybar/style.css"
SCRIPTSDIR="$HOME/.config/hypr/scripts"
rofi_config="$HOME/.config/rofi/config-waybar-style.rasi"
msg=' 🎌 NOTE: Some waybar STYLES NOT fully compatible with some LAYOUTS'
# Apply selected style
apply_style() {
ln -sf "$waybar_styles/$1.css" "$waybar_style"
"${SCRIPTSDIR}/Refresh.sh" &
}
main() {
# resolve current symlink and strip .css
current_target=$(readlink -f "$waybar_style")
current_name=$(basename "$current_target" .css)
# gather all style names (without .css) into an array
mapfile -t options < <(
find -L "$waybar_styles" -maxdepth 1 -type f -name '*.css' \
-exec basename {} .css \; \
| sort
)
# mark the active style and record its index
default_row=0
MARKER="👉"
for i in "${!options[@]}"; do
if [[ "${options[i]}" == "$current_name" ]]; then
options[i]="$MARKER ${options[i]}"
default_row=$i
break
fi
done
# launch rofi with the annotated list and preselected row
choice=$(printf '%s\n' "${options[@]}" \
| rofi -i -dmenu \
-config "$rofi_config" \
-mesg "$msg" \
-selected-row "$default_row"
)
[[ -z "$choice" ]] && { echo "No option selected. Exiting."; exit 0; }
# remove annotation and apply
choice=${choice#"$MARKER "}
apply_style "$choice"
}
# Kill Rofi if already running before execution
if pgrep -x "rofi" >/dev/null; then
pkill rofi
#exit 0
fi
main