From 8aad18447c6b0a03c4cbff889052e53449d36e8b Mon Sep 17 00:00:00 2001
From: Patrick Spek
Date: Wed, 13 Oct 2021 13:30:49 +0200
Subject: Use pactl for volume control
---
.local/bin/vol | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/.local/bin/vol b/.local/bin/vol
index 4da6c18..c3634dc 100755
--- a/.local/bin/vol
+++ b/.local/bin/vol
@@ -29,26 +29,27 @@ main()
case "$1" in
inc)
- amixer set Master ${2:-5}%+ > /dev/null
+ pactl set-sink-volume @DEFAULT_SINK@ +${2:-5}% > /dev/null
notify="Level increased to $(volume_level)%"
;;
dec)
- amixer set Master ${2:-5}%- > /dev/null
+ pactl set-sink-volume @DEFAULT_SINK@ -${2:-5}% > /dev/null
notify="Level decreased to $(volume_level)%"
;;
set)
- amixer set Master $2% > /dev/null
+ pactl set-sink-volume @DEFAULT_SINK@ $2% > /dev/null
notify="Level set to $(volume_level)%"
;;
on)
- amixer set Master on > /dev/null
+ pactl set-sink-mute @DEFAULT_SINK@ 0 > /dev/null
notify="Unmuted at $(volume_level)%"
;;
off)
- amixer set Master off > /dev/null
+ pactl set-sink-mute @DEFAULT_SINK@ 1 > /dev/null
notify="Muted"
;;
toggle)
+ echo $(volume_state)
case "$(volume_state)" in
on) exec $0 off ;;
off) exec $0 on ;;
@@ -61,12 +62,22 @@ main()
volume_level()
{
- amixer get Master | awk '/Left:/ { print $5 }' | head -n 1 | tr -d '[]%'
+ sink_name="$(pactl info | awk -F': ' '/Default Sink/ { print $NF }')"
+ sink_index="$(pactl list short sinks | awk -v index_number="$sink_name" '$2==index_number {print $1}')"
+
+ pactl list sinks \
+ | perl -000ne 'if(/#'"$sink_index"'/){/(Volume:.*)/; print "$1\n"}' \
+ | sed 's/.*\ \(.*\)%.*/\1/g'
}
volume_state()
{
- amixer get Master | awk '/Left:/ { print $6 }' | head -n 1 | tr -d '[]'
+ sink_name="$(pactl info | awk -F': ' '/Default Sink/ { print $NF }')"
+ sink_index="$(pactl list short sinks | awk -v index_number="$sink_name" '$2==index_number {print $1}')"
+
+ pactl list sinks \
+ | perl -000ne 'if(/#'"$sink_index"'/){/(Mute:.*)/; print "$1\n"}' \
+ | awk '$NF == "no" { print "on" } $NF == "yes" { print "off" }'
}
volume_icon()
--
cgit v1.1