#!/usr/bin/env bash source "$CONFIG_DIR/colors.sh" source "$CONFIG_DIR/icons.sh" STEP=5 # % per scroll tick (Waybar used scroll-step: 1 — bump this down to taste) if [ "$SENDER" = "mouse.scrolled" ]; then CUR="$(osascript -e 'output volume of (get volume settings)')" case "$SCROLL_DELTA" in -*) VOL=$(( CUR - STEP )) ;; # scroll down *) VOL=$(( CUR + STEP )) ;; # scroll up esac [ "$VOL" -lt 0 ] && VOL=0 [ "$VOL" -gt 100 ] && VOL=100 osascript -e "set volume output volume $VOL" elif [ "$SENDER" = "volume_change" ]; then VOL="$INFO" else VOL="$(osascript -e 'output volume of (get volume settings)')" fi MUTED="$(osascript -e 'output muted of (get volume settings)')" if [ "$MUTED" = "true" ] || { [ "$VOL" -eq 0 ] 2>/dev/null; }; then sketchybar --set "$NAME" label="$VOL_MUTE" # format-muted exit 0 fi if [ "$VOL" -ge 66 ]; then ICON=$VOL_3 elif [ "$VOL" -ge 33 ]; then ICON=$VOL_2 elif [ "$VOL" -ge 1 ]; then ICON=$VOL_1 else ICON=$VOL_0 fi # Waybar: {volume} {icon} sketchybar --set "$NAME" label="$VOL $ICON"