Files
dotfiles-ndesk/waybar/scripts/audio.sh

41 lines
974 B
Bash
Executable File

#!/bin/bash
DEFAULT_SINK=$(pactl info | grep 'Default Sink' | cut -d ' ' -f3)
DESCRIPTION=$(pactl list sinks | grep -A2 "Name: $DEFAULT_SINK" | grep "Description:" | cut -d ' ' -f2-)
case $1 in
cycle)
SINKS=($(pactl list short sinks | awk '{print $2}'))
NUM_SINKS=${#SINKS[@]}
CURRENT_SINK=$(pactl info | grep 'Default Sink' | cut -d ' ' -f3)
for i in "${!SINKS[@]}"; do
if [[ "${SINKS[$i]}" == "$CURRENT_SINK" ]]; then
NEXT_INDEX=$(( (i + 1) % NUM_SINKS ))
pactl set-default-sink "${SINKS[$NEXT_INDEX]}"
exit 0
fi
done
;;
show)
TEXT=$(echo "$DESCRIPTION" | cut -c -20)
if [ -z "$DESCRIPTION" ]; then
DESCRIPTION=$DEFAULT_SINK
fi
CLASS=""
case $(pactl get-sink-mute @DEFAULT_SINK@ | awk '{print $2}') in
yes)
CLASS="muted"
;;
no)
CLASS="unmuted"
;;
esac
printf '{"text": "%s", "tooltip": "%s", "class": "%s"}' "$TEXT" "$DESCRIPTION" "$CLASS"
;;
*)
echo "usage audio.sh {cycle|show}"
;;
esac