45 lines
911 B
Bash
Executable File
45 lines
911 B
Bash
Executable File
#!/bin/bash
|
|
|
|
WIDTH=100
|
|
|
|
volume_change() {
|
|
source "$CONFIG_DIR/icons.sh"
|
|
case $INFO in
|
|
[6-9][0-9]|100) ICON=$VOLUME_100
|
|
;;
|
|
[3-5][0-9]) ICON=$VOLUME_66
|
|
;;
|
|
[1-2][0-9]) ICON=$VOLUME_33
|
|
;;
|
|
[1-9]) ICON=$VOLUME_10
|
|
;;
|
|
0) ICON=$VOLUME_0
|
|
;;
|
|
*) ICON=$VOLUME_100
|
|
esac
|
|
|
|
sketchybar --set volume_icon label=$ICON
|
|
|
|
sketchybar --set $NAME slider.percentage=$INFO \
|
|
--animate tanh 30 --set $NAME slider.width=$WIDTH
|
|
|
|
sleep 2
|
|
|
|
# Check wether the volume was changed another time while sleeping
|
|
FINAL_PERCENTAGE=$(sketchybar --query $NAME | jq -r ".slider.percentage")
|
|
if [ "$FINAL_PERCENTAGE" -eq "$INFO" ]; then
|
|
sketchybar --animate tanh 30 --set $NAME slider.width=0
|
|
fi
|
|
}
|
|
|
|
mouse_clicked() {
|
|
osascript -e "set volume output volume $PERCENTAGE"
|
|
}
|
|
|
|
case "$SENDER" in
|
|
"volume_change") volume_change
|
|
;;
|
|
"mouse.clicked") mouse_clicked
|
|
;;
|
|
esac
|