blob: 82badb8c517b50bc6464894e6e59723f3d4bc7b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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
|