72 lines
1.0 KiB
Plaintext
72 lines
1.0 KiB
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
################################
|
||
|
# Shows info about sound/volume.
|
||
|
# Allows simple volume controls.
|
||
|
#
|
||
|
# Thanks to [@EliteTK](https://gist.github.com/EliteTK/36d061fa24372fb70312),
|
||
|
# for the big speed gain when switching to `ponymix`
|
||
|
#
|
||
|
# Dependencies:
|
||
|
# - ponymix
|
||
|
# - ttf-font-icons
|
||
|
#
|
||
|
# @return {Number}: Current volume
|
||
|
################################
|
||
|
|
||
|
dir=$(dirname $0)
|
||
|
source $dir/util.sh
|
||
|
|
||
|
full=""
|
||
|
short=""
|
||
|
status=0
|
||
|
|
||
|
step=${BLOCK_INSTANCE:-5}
|
||
|
|
||
|
getVolume() {
|
||
|
ponymix get-volume
|
||
|
}
|
||
|
|
||
|
isMuted() {
|
||
|
ponymix is-muted
|
||
|
}
|
||
|
|
||
|
case $BLOCK_BUTTON in
|
||
|
# right click
|
||
|
# mute/unmute
|
||
|
3) ponymix toggle >/dev/null ;;
|
||
|
|
||
|
# scroll up
|
||
|
# raise volume
|
||
|
4) ponymix increase $step >/dev/null ;;
|
||
|
|
||
|
# scroll down
|
||
|
# lower volume
|
||
|
5) ponymix decrease $step >/dev/null ;;
|
||
|
esac
|
||
|
|
||
|
vol=$(getVolume)
|
||
|
|
||
|
# level-based icon
|
||
|
if (( $vol == 0 )); then
|
||
|
icon=""
|
||
|
elif (( $vol < 34 )); then
|
||
|
icon=""
|
||
|
elif (( $vol < 67 )); then
|
||
|
icon=""
|
||
|
else
|
||
|
icon=""
|
||
|
fi
|
||
|
|
||
|
# determine mute status
|
||
|
if isMuted; then
|
||
|
status=33
|
||
|
fi
|
||
|
|
||
|
full="$icon $vol%"
|
||
|
short=$vol
|
||
|
|
||
|
echo $full
|
||
|
echo $short
|
||
|
exit $status
|