From 89d678ae0efc6a02196a6bbfc283f918a5fa1ba2 Mon Sep 17 00:00:00 2001 From: zachir Date: Wed, 2 Aug 2023 02:01:04 -0500 Subject: Remove pamixer dep, improve syntax, use case Signed-off-by: zachir --- volsv | 64 +++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 25 deletions(-) diff --git a/volsv b/volsv index ac9b7a3..5976fcc 100755 --- a/volsv +++ b/volsv @@ -3,30 +3,34 @@ #{{{ detect detect () { if pgrep -x pulseaudio >/dev/null; then - PULSE='y' ; unset PIPEWIRE SNDIO ALSA + AUDIO_SERVER="PULSE" elif pgrep -x pipewire >/dev/null; then - PIPEWIRE='y' ; unset PULSE SNDIO ALSA + AUDIO_SERVER="PW" elif pgrep -x sndiod >/dev/null; then - SNDIO='y' ; unset PIPEWIRE PULSE ALSA + AUDIO_SERVER="SNDIO" else - ALSA='y' ; unset PIPEWIRE PULSE SNDIO + AUDIO_SERVER="ALSA" fi } #}}} #{{{ up up () { - [ -n "$SNDIO" ] && sndioctl output.level=+"$(printf "%0.02f" "$(( amt * 0.01 ))")" - [ -n "$PULSE$PIPEWIRE" ] && pactl set-sink-volume $(pactl get-default-sink) "+${amt}%" - [ -n "$ALSA" ] && amixer sset Master "${amt}%+" + case "$AUDIO_SERVER" in + SNDIO) sndioctl output.level=+"$(printf "%0.02f" "$(( amt * 0.01 ))")" ;; + PULSE|PW) pactl set-sink-volume $(pactl get-default-sink) "+${amt}%" ;; + ALSA) amixer sset Master "${amt}%+" ;; + esac } #}}} #{{{ down down () { - [ -n "$SNDIO" ] && sndioctl output.level=-"$(printf "%0.02f" "$(( amt * 0.01 ))")" - [ -n "$PULSE$PIPEWIRE" ] && pactl set-sink-volume $(pactl get-default-sink) "-${amt}%" - [ -n "$ALSA" ] && amixer sset Master "${amt}%-" + case "$AUDIO_SERVER" in + SNDIO) sndioctl output.level=-"$(printf "%0.02f" "$(( amt * 0.01 ))")" ;; + PULSE|PW) pactl set-sink-volume $(pactl get-default-sink) "-${amt}%" ;; + ALSA) amixer sset Master "${amt}%-" ;; + esac } #}}} @@ -34,14 +38,18 @@ down () { mute () { case "$1" in spr) - [ -n "$SNDIO" ] && sndioctl output.mute=! - [ -n "$PULSE$PIPEWIRE" ] && pactl set-sink-mute $(pactl get-default-sink) toggle - [ -n "$ALSA" ] && amixer sset Master toggle + case "$AUDIO_SERVER" in + SNDIO) sndioctl output.mute=! ;; + PULSE|PW) pactl set-sink-mute $(pactl get-default-sink) toggle ;; + ALSA) amixer sset Master toggle ;; + esac ;; mic) - [ -n "$SNDIO" ] && sndioctl input.mute=! - [ -n "$PULSE$PIPEWIRE" ] && pactl set-source-mute $(pactl get-default-source) toggle - [ -n "$PIPEWIRE$ALSA" ] && amixer sset Capture toggle + case "$AUDIO_SERVER" in + SNDIO) sndioctl input.mute=! ;; + PULSE|PW) pactl set-source-mute $(pactl get-default-source) toggle ;; + ALSA) amixer sset Capture toggle ;; + esac ;; esac } @@ -51,19 +59,25 @@ mute () { get () { case "$1" in volu) - [ -n "$SNDIO" ] && printf "%s%%" `sndioctl output.level | rev | cut -d'.' -f1 | rev | cut -c 1,2` - [ -n "$PULSE$PIPEWIRE" ] && printf "%s%%\n" "$(pamixer --get-volume)" - [ -n "$ALSA" ] && amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' + case "$AUDIO_SERVER" in + SNDIO) printf "%s%%" "$(sndioctl output.level | rev | cut -d'.' -f1 | rev | cut -c 1,2)" ;; + PULSE|PW) printf "%s\n" "$(pactl get-sink-volume "$(pactl get-default-sink)")" ;; + ALSA) amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g' ;; + esac ;; mute) - [ -n "$SNDIO" ] && sndioctl output.mute | cut -d'=' -f2 | sed 's/1/[off]/;s/0/[on]/' - [ -n "$PULSE$PIPEWIRE" ] && pamixer --get-mute | sed 's/[Ff]alse/\[on\]/;s/[Tt]rue/\[off\]/' - [ -n "$ALSA" ] && amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 + case "$AUDIO_SERVER" in + SNDIO) sndioctl output.mute | cut -d'=' -f2 | sed 's/1/[off]/;s/0/[on]/' ;; + PULSE|PW) pactl get-sink-mute "$(pactl get-default-sink)" | sed 's/[Ff]alse/\[on\]/;s/[Tt]rue/\[off\]/' ;; + ALSA) amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1 ;; + esac ;; both) - [ -n "$SNDIO" ] && printf "%s%s%%" `sndioctl output.mute | cut -d'=' -f2 | sed 's/1/[off]/;s/0/[on]/'` `sndioctl output.level | rev | cut -d'.' -f1 | rev | cut -c 1,2` - [ -n "$PULSE$PIPEWIRE" ] && printf "%s%s%%\n" `pamixer --get-mute | sed 's/[Ff]alse/\[on\]/;s/[Tt]rue/\[off\]/'` "$(pamixer --get-volume)" - [ -n "$ALSA" ] && printf "%s%s" `amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1` `amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g'` + case "$AUDIO_SERVER" in + SNDIO) printf "%s%s%%" "$(sndioctl output.mute | cut -d'=' -f2 | sed 's/1/[off]/;s/0/[on]/')" "$(sndioctl output.level | rev | cut -d'.' -f1 | rev | cut -c 1,2)" ;; + PULSE|PW) printf "%s%s%%\n" "$(pactl get-sink-mute "$(pactl get-default-sink)" | sed 's/[Ff]alse/\[on\]/;s/[Tt]rue/\[off\]/')" "$(pactl get-sink-volume "$(pactl get-default-sink)")" ;; + ALSA) printf "%s%s" "$(amixer sget Master | grep '\[o[fn]' | cut -d' ' -f8 | head -1)" "$(amixer sget Master | grep '\[[0-9]*\%\]' | sed "s/ /\n/g" | grep '%' | sed 's/\[//;s/\]//g')" ;; + esac ;; esac } -- cgit v1.2.3