arch-waybar/scripts/switch-style.sh
Nicholai 600a35020b Fix symlink paths to use absolute paths
Changed scripts to use realpath() to create absolute symlinks
instead of relative paths, which were breaking with filenames
containing special characters. Also added sleep delay before
restarting waybar.
2025-11-23 23:13:58 -07:00

33 lines
942 B
Bash
Executable File

#!/bin/bash
# Quick waybar style/theme switcher
waybar_styles="$HOME/.config/waybar/style"
waybar_css="$HOME/.config/waybar/style.css"
# Get all available styles
styles=($(ls "$waybar_styles"/*.css 2>/dev/null | xargs -n1 basename | sort))
# If wofi is available, use it for selection
if command -v wofi &> /dev/null; then
choice=$(printf '%s\n' "${styles[@]}" | wofi --dmenu -i -p "Waybar Style" --parse-search false)
else
# Otherwise use a simple CLI menu
echo "Available Waybar Styles:"
for i in "${!styles[@]}"; do
echo "$((i+1)). ${styles[$i]}"
done
read -p "Select style (1-${#styles[@]}): " selection
choice="${styles[$((selection-1))]}"
fi
if [[ -n "$choice" ]]; then
# Use absolute path for the symlink target
ln -sf "$(realpath "$waybar_styles/$choice")" "$waybar_css"
echo "Switched to: $choice"
killall waybar
sleep 0.5
waybar &
else
echo "No selection made"
fi