|
|
- #!/bin/bash
-
- # pacontrol.sh
- #
- # This script changes the volume of the current audio source based on a set interval
-
- function send_notification {
-
-
- if [ "$2" = "yes" ]; then
- icon="婢"
- dunstify -t 1000 -r 53 -a "蓼 Volume" "$icon MUTED"
- return
- else
- if [ "$1" -lt "20" ]; then
- icon="奄"
- else
- if [ "$1" -lt "60" ]; then
- icon="奔"
- else
- icon="墳"
- fi
- fi
- fi
- bar=$(seq -s "▮" $(($1/4)) | sed 's/[0-9]//g')
- empty=$(seq -s "▯" $((26 - $1/4)) | sed 's/[0-9]//g')
- dunstify -t 1000 -r 53 -a "蓼 Volume" "$icon $bar$empty"
- }
-
- usage() {
- echo "Usage: pacontrol.sh [up|down|toggle-mute]"
- }
-
- vol_interval=3
- sinks=$(pactl list short sinks | cut -c 1)
- latest_sink=${sinks[*]: -1}
-
- SINK=$(pactl list short sinks | grep -n RUNNING | cut -d":" -f1)
- if [ "$SINK" = "" ]; then
- SINK=1
- fi
-
- NOW=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $SINK | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' )
- MUTE=$(pactl list sinks | grep '^[[:space:]]Mute:'| head -n $SINK | tail -n 1 | awk -F ":" '{print $2}'| xargs)
-
- case $1 in
- "up")
- pactl set-sink-mute $latest_sink 0
- if [ "$NOW" -lt "100" ]; then
- pactl set-sink-volume $latest_sink +$vol_interval%
- else
- pactl set-sink-volume $latest_sink 100%
- fi
- ;;
- "down")
- pactl set-sink-volume $latest_sink -$vol_interval%
- ;;
- "toggle-mute")
- pactl set-sink-mute $latest_sink toggle
- ;;
- "open-mute")
- pactl set-sink-mute $latest_sink 1
- ;;
- "close-mute")
- pactl set-sink-mute $latest_sink 0
- ;;
- *) usage ;;
- esac
-
-
- NOW=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $SINK | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' )
- MUTE=$(pactl list sinks | grep '^[[:space:]]Mute:'| head -n $SINK | tail -n 1 | awk -F ":" '{print $2}'| xargs)
-
- kill -48 $(pidof dwmblocks)
- send_notification $NOW $MUTE
|