Add a script to handle pulseaudio.
This commit is contained in:
79
i3/i3/scripts/pa-volume.bash
Normal file
79
i3/i3/scripts/pa-volume.bash
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# index of the sink. execute pactl list sinks to get a list
|
||||||
|
SINK=1
|
||||||
|
|
||||||
|
getvol() {
|
||||||
|
echo $(pactl list sinks | grep "^[[:space:]]*Volume" | head -n $(( $SINK + 1 )) | tail -n 1 | grep -o "[[:digit:]]*%" | head -n 1 | cut -d "%" -f 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
setvol() {
|
||||||
|
pactl set-sink-volume $SINK $(( $1 * 65536 / 100 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
ismuted() {
|
||||||
|
muted=$(pactl list sinks | grep "^[[:space:]]*Mute" | head -n $(( $SINK + 1 )) | tail -n 1 | cut -d " " -f 2)
|
||||||
|
if [[ $muted == "no" ]]; then
|
||||||
|
echo 0
|
||||||
|
else
|
||||||
|
echo 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mute() {
|
||||||
|
pactl set-sink-mute $SINK 1
|
||||||
|
}
|
||||||
|
|
||||||
|
unmute() {
|
||||||
|
pactl set-sink-mute $SINK 0
|
||||||
|
}
|
||||||
|
|
||||||
|
mute-toggle() {
|
||||||
|
pactl set-sink-mute $SINK toggle
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [[ $(ismuted) == "1" ]] ; then
|
||||||
|
echo "mute"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "$(getvol)%"
|
||||||
|
}
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage:"
|
||||||
|
echo
|
||||||
|
echo "$0 get-vol"
|
||||||
|
echo "$0 set-vol VOL_PERC"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"get-vol")
|
||||||
|
echo $(getvol)
|
||||||
|
;;
|
||||||
|
"set-vol")
|
||||||
|
if [[ -z "$2" ]] ; then
|
||||||
|
usage
|
||||||
|
else
|
||||||
|
setvol "$2"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"mute")
|
||||||
|
mute
|
||||||
|
;;
|
||||||
|
"unmute")
|
||||||
|
unmute
|
||||||
|
;;
|
||||||
|
"mute-toggle")
|
||||||
|
mute-toggle
|
||||||
|
;;
|
||||||
|
"is-muted")
|
||||||
|
echo $(ismuted)
|
||||||
|
;;
|
||||||
|
"status")
|
||||||
|
echo $(status)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "wrong usage"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
Reference in New Issue
Block a user