summaryrefslogtreecommitdiff
path: root/mac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh
diff options
context:
space:
mode:
Diffstat (limited to 'mac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh')
-rwxr-xr-xmac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh82
1 files changed, 82 insertions, 0 deletions
diff --git a/mac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh b/mac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh
new file mode 100755
index 0000000..82badb8
--- /dev/null
+++ b/mac/.config/sketchybar.mon/sketchybar/plugins/volume_click.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+
+# Source colors for consistent theming
+source "$CONFIG_DIR/colors.sh"
+
+# Toggle popup
+sketchybar --set volume popup.drawing=toggle
+
+# Get current volume and mute status
+VOLUME=$(osascript -e "output volume of (get volume settings)" 2>/dev/null || echo "50")
+MUTED=$(osascript -e "output muted of (get volume settings)" 2>/dev/null || echo "false")
+
+# Add mute toggle
+if [ "$MUTED" = "true" ]; then
+ MUTE_ICON="󰖁"
+ MUTE_COLOR=$RED
+else
+ MUTE_ICON="󰕾"
+ MUTE_COLOR=$GREEN
+fi
+
+sketchybar --add item volume.mute popup.volume \
+ --set volume.mute icon="$MUTE_ICON" \
+ icon.color="$MUTE_COLOR" \
+ label.drawing=off \
+ background.drawing=off \
+ padding_left=8 \
+ padding_right=2 \
+ click_script="osascript -e 'set volume output muted not (output muted of (get volume settings))'"
+
+# Add volume down button
+sketchybar --add item volume.down popup.volume \
+ --set volume.down icon="−" \
+ icon.color=$WHITE \
+ icon.font="SF Pro:Medium:14.0" \
+ label.drawing=off \
+ background.drawing=off \
+ padding_left=2 \
+ padding_right=2 \
+ click_script="osascript -e 'set volume output volume ((output volume of (get volume settings)) - 5)'"
+
+# Create compact slider bar with 50 segments
+SLIDER_BAR=""
+FILLED_SEGMENTS=$((VOLUME / 2))
+
+for i in {1..50}; do
+ if [ $i -le $FILLED_SEGMENTS ]; then
+ SLIDER_BAR="${SLIDER_BAR}█"
+ else
+ SLIDER_BAR="${SLIDER_BAR}▒"
+ fi
+done
+
+sketchybar --add item volume.slider popup.volume \
+ --set volume.slider icon="$SLIDER_BAR" \
+ icon.color=$ACCENT_PRIMARY \
+ icon.font="SF Pro:Regular:2.0" \
+ label.drawing=off \
+ background.drawing=off \
+ padding_left=2 \
+ padding_right=2 \
+ click_script="osascript -e 'set volume output volume 50'"
+
+# Add volume up button
+sketchybar --add item volume.up popup.volume \
+ --set volume.up icon="+" \
+ icon.color=$WHITE \
+ icon.font="SF Pro:Medium:14.0" \
+ label.drawing=off \
+ background.drawing=off \
+ padding_left=2 \
+ padding_right=2 \
+ click_script="osascript -e 'set volume output volume ((output volume of (get volume settings)) + 5)'"
+
+# Add volume percentage
+sketchybar --add item volume.percent popup.volume \
+ --set volume.percent icon="$VOLUME%" \
+ icon.color=$WHITE \
+ icon.font="SF Pro:Medium:9.0" \
+ label.drawing=off \
+ background.drawing=off \
+ padding_left=2