diff --git a/local/bin/sslider.sh b/local/bin/sslider.sh index 5ab0d6b..a7c81ec 100755 --- a/local/bin/sslider.sh +++ b/local/bin/sslider.sh @@ -1,9 +1,15 @@ #!/bin/sh -control="$(amixer scontrols | sed -n "1s/.*'\(.*\)'.*/\1/p")" +if pamixer -v >/dev/null; then + uplimit=100 + lolimit=0 + current="$(pamixer --get-volume)" + setV() { pamixer --set-volume "$@"; } +else + control="$(amixer scontrols | sed -n "1s/.*'\(.*\)'.*/\1/p")" + uplimit="$(amixer get "$control" | grep "Limits:" | tr -s ' ' | cut -d' ' -f6)" + lolimit="$(amixer get "$control" | grep "Limits:" | tr -s ' ' | cut -d' ' -f4)" + current="$(amixer get "$control" | sed -n '/dB/{p;q}' | sed 's/.*Playback \([0-9]*\) .*/\1/')" + setV() { amixer -q set "$control" "$@"; } +fi -uplimit="$(amixer get "$control" | grep "Limits:" | tr -s ' ' | cut -d' ' -f6)" -lolimit="$(amixer get "$control" | grep "Limits:" | tr -s ' ' | cut -d' ' -f4)" -current="$(amixer get "$control" | sed -n '/dB/{p;q}' | sed 's/.*Playback \([0-9]*\) .*/\1/')" -wjt -l "$lolimit" -u "$uplimit" -x "$current" | while read next; do - amixer -q set "$control" "$next" -done +wjt -l "$lolimit" -u "$uplimit" -x "$current" | while read next; do setV "$next"; done