summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzachir <zachir@librem.one>2021-08-04 02:44:16 -0500
committerzachir <zachir@librem.one>2021-08-04 02:44:16 -0500
commit65b9133de8371312c956ab5bc4484d033c56ebab (patch)
tree90bfb04b50552b410372874540dcee53c77fb929
parent3729260503e7fbd9bd717ea73d48c2a3fdc6b92e (diff)
Update volsv
-rwxr-xr-xvolsv71
1 files changed, 55 insertions, 16 deletions
diff --git a/volsv b/volsv
index f79662b..7699982 100755
--- a/volsv
+++ b/volsv
@@ -1,12 +1,20 @@
#!/bin/sh
-# calculate average of two integers (for ALSA)
-average () {
- echo "$(( $(( $1 + $2 )) / 2 ))$"
-}
# print error message
printerror () {
echo "$1 is not a recognized command or flag"
}
+# if sndio
+sndiosv () {
+ case "$1" in
+ "up" | "-i") sndioctl output.level=+0.05 ;;
+ "down" | "-d") sndioctl output.level=-0.05 ;;
+ "toggle" | "-t") sndioctl output.mute=! ;;
+ "mic" | "-m") sndioctl input.mute=! ;;
+ "getv" | "-v") printf "%s%%" `sndioctl output.level | rev | cut -d'.' -f1 | rev | cut -c 1,2` ;;
+ "getm" | "-g") sndioctl output.mute | cut -d'=' -f2 | sed 's/1/[off]/;s/0/[on]/' ;;
+ *) printerror "$1" ;;
+ esac
+}
# if pulseaudio
pulsesv () {
case "$1" in
@@ -21,15 +29,38 @@ pulsesv () {
}
# if alsa
alsasv () {
- case "$1" in
- "up" | "-i") amixer sset Master 5%+ ;;
- "down" | "-d") amixer sset Master 5%- ;;
- "toggle" | "-t") amixer sset Master toggle ;;
- "mic" | "-m") amixer sset Capture toggle ;;
- "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | cut -d' ' -f6 | sed 's/\[//;s/\]//g' ;;
- "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
- *) printerror "$1" ;;
- esac
+ DEVICE=`pgrep -x bluealsa >/dev/null && echo -n "bluealsa"`
+ if [ -z "$DEVICE" ]; then
+ case "$1" in
+ "up" | "-i") amixer sset Master 5%+ ;;
+ "down" | "-d") amixer sset Master 5%- ;;
+ "toggle" | "-t") amixer sset Master toggle ;;
+ "mic" | "-m") amixer sset Capture toggle ;;
+ "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' ;;
+ "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ elif [ -z `amixer -D $DEVICE controls` ]; then
+ case "$1" in
+ "up" | "-i") amixer sset Master 5%+ ;;
+ "down" | "-d") amixer sset Master 5%- ;;
+ "toggle" | "-t") amixer sset Master toggle ;;
+ "mic" | "-m") amixer sset Capture toggle ;;
+ "getv" | "-v") amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' ;;
+ "getm" | "-g") amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ else
+ MIXER=`amixer -D $DEVICE | grep 'A2DP' | cut -d"'" -f2`
+ case "$1" in
+ "up" | "-i") amixer -D "$DEVICE" sset "$MIXER" 5%+ ;;
+ "down" | "-d") amixer -D "$DEVICE" sset "$MIXER" 5%- ;;
+ "toggle" | "-t") amixer -D "$DEVICE" sset "$MIXER" toggle ;;
+ "getv" | "-v") amixer -D "$DEVICE" sget "$MIXER" | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' | head -1;;
+ "getm" | "-g") amixer -D "$DEVICE" sget "$MIXER" | grep '\[o[fn]' | cut -d' ' -f9 | head -1 ;;
+ *) printerror "$1" ;;
+ esac
+ fi
}
#Search input for
echo "$@" | grep -q ' *-h *' && echo \
@@ -46,7 +77,15 @@ get volume level: 'getv' or '-v'
get mute state: 'getm' or '-g'" && exit
for i in $@; do
- pgrep -x pulseaudio >/dev/null && pulsesv $1 || alsasv $1
- pgrep -x dwmblocks >/dev/null && pkill -RTMIN+10 dwmblocks
- pgrep -x dwmbar >/dev/null && dwmbar-signal volume
+ if pgrep -x pulseaudio >/dev/null; then
+ pulsesv $i
+ elif pgrep -x pipewire >/dev/null; then
+ pulsesv $i
+ elif pgrep -x sndiod >/dev/null; then
+ sndiosv $i
+ else
+ alsasv $i
+ fi
+ pgrep -x dwmblocks >/dev/null && pkill -RTMIN+13 dwmblocks
+ #pgrep -x dwmbar >/dev/null && dwmbar-signal volume
done