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.
33 lines
942 B
Bash
Executable File
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
|