49 lines
1.3 KiB
Bash
49 lines
1.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
WIDTH=100
|
||
|
|
||
|
detail_on() {
|
||
|
sketchybar --animate tanh 30 --set volume slider.width=$WIDTH
|
||
|
}
|
||
|
|
||
|
detail_off() {
|
||
|
sketchybar --animate tanh 30 --set volume slider.width=0
|
||
|
}
|
||
|
|
||
|
toggle_detail() {
|
||
|
INITIAL_WIDTH=$(sketchybar --query volume | jq -r ".slider.width")
|
||
|
if [ "$INITIAL_WIDTH" -eq "0" ]; then
|
||
|
detail_on
|
||
|
else
|
||
|
detail_off
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
toggle_devices() {
|
||
|
which SwitchAudioSource >/dev/null || exit 0
|
||
|
source "$CONFIG_DIR/colors.sh"
|
||
|
|
||
|
args=(--remove '/volume.device\.*/' --set "$NAME" popup.drawing=toggle)
|
||
|
COUNTER=0
|
||
|
CURRENT="$(SwitchAudioSource -t output -c)"
|
||
|
while IFS= read -r device; do
|
||
|
COLOR=$GREY
|
||
|
if [ "${device}" = "$CURRENT" ]; then
|
||
|
COLOR=$WHITE
|
||
|
fi
|
||
|
args+=(--add item volume.device.$COUNTER popup."$NAME" \
|
||
|
--set volume.device.$COUNTER label="${device}" \
|
||
|
label.color="$COLOR" \
|
||
|
click_script="SwitchAudioSource -s \"${device}\" && sketchybar --set /volume.device\.*/ label.color=$GREY --set \$NAME label.color=$WHITE --set $NAME popup.drawing=off")
|
||
|
COUNTER=$((COUNTER+1))
|
||
|
done <<< "$(SwitchAudioSource -a -t output)"
|
||
|
|
||
|
sketchybar -m "${args[@]}" > /dev/null
|
||
|
}
|
||
|
|
||
|
if [ "$BUTTON" = "right" ] || [ "$MODIFIER" = "shift" ]; then
|
||
|
toggle_devices
|
||
|
else
|
||
|
toggle_detail
|
||
|
fi
|