nixos-config/hosts/worf/sketchybar/plugins/volume.sh

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