66 lines
1.3 KiB
Bash
66 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
DIR="$HOME/.config/polybar"
|
|
|
|
get_bars () {
|
|
find -H $DIR -name "config.ini" | xargs cat | grep -e "\[bar\/" | sort -u | sed "s/\[bar\// /g" | sed "s/.$//g"
|
|
}
|
|
|
|
error () {
|
|
cat <<- EOF
|
|
Usage : launch.sh [bar] [theme]
|
|
|
|
bars (defined in any config.ini):
|
|
EOF
|
|
|
|
get_bars
|
|
|
|
cat <<- EOF
|
|
themes:
|
|
rounded
|
|
grayblocks
|
|
EOF
|
|
exit 0
|
|
}
|
|
|
|
# Launch the bar
|
|
launch-bar () {
|
|
# Terminate already running bar instances
|
|
killall -q polybar
|
|
|
|
if [[ -f ~/.config/bspwm/bspwmrc ]]; then
|
|
sed -i -e "s/polybar.*/polybar\/launch\.sh $bar $style \&/g" ~/.config/bspwm/bspwmrc
|
|
fi
|
|
|
|
# Wait until the processes have been shut down
|
|
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
|
|
|
|
if type "xrandr"; then
|
|
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
|
|
POLYBAR_MONITOR=$m polybar --reload $bar -c "$DIR"/"$style"/config.ini &
|
|
done
|
|
|
|
else
|
|
polybar --reload $bar -c "$DIR"/"$style"/config.ini &
|
|
fi
|
|
}
|
|
|
|
if [[ "$1" = "bspwm" ]]; then
|
|
bar="bspwm"
|
|
elif [[ "$1" = "awesomewm" ]]; then
|
|
bar="awesomewm"
|
|
else
|
|
error
|
|
fi
|
|
|
|
|
|
if [[ "$2" = "rounded" ]]; then
|
|
style="rounded"
|
|
launch-bar
|
|
elif [[ "$2" = "grayblocks" ]]; then
|
|
style="grayblocks"
|
|
launch-bar
|
|
else
|
|
error
|
|
fi
|