Yet another approach to volume/mute control.

This commit is contained in:
Bartek Stalewski 2021-08-23 20:25:41 +02:00
parent 9fcfdbad32
commit 4865f4f572
3 changed files with 45 additions and 41 deletions

View file

@ -1,42 +1,19 @@
#!/bin/bash
if [ $(xrandr | grep DisplayPort | grep ' connected' | wc -l) -gt 0 ]; then
sink=$(pamixer --list-sinks | awk '/HDMI/ {print $1}')
if [ "${1}" = "micmute" ]; then
case $(cat '/sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness') in
1) echo 0 | sudo tee /sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness;;
0) echo 1 | sudo tee /sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness;;
esac
for i in $(pactl list short sources | grep -v '\.monitor' | awk '{print $1}'); do
pactl set-source-mute "${i}" toggle
done
kill -46 $(pidof dwmblocks)
else
sink=$(pamixer --list-sinks | awk '/HD Audio Controller/ {print $1}')
vol="$(pamixer --get-volume)"
[ $(echo $vol | wc -c) -lt 4 ] && svol=" ${vol}%%" || svol="${vol}%%"
[ $(pamixer --get-mute) = true ] && volinfo="^c#eeeeee^^b#005577^\ue04f mute^d^" || volinfo="\ue050 ${svol}"
device=$(pamixer --list-sources | grep -v '^Sources:$' | grep -v 'Monitor of ' | head -n 1 | awk '{print $1}')
[ $(pamixer --source $device --get-mute) = true ] && micinfo="^c#eeeeee^^b#005577^\ue02b^d^" || micinfo="\ue02a^d^"
printf "${micinfo} ${volinfo}"
fi
case "${1}" in
"micmute")
case $(cat '/sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness') in
1) echo 0 | sudo tee /sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness;;
0) echo 1 | sudo tee /sys/devices/platform/thinkpad_acpi/leds/platform::micmute/brightness;;
esac
device=$(pamixer --list-sources | awk '/Raven/ {print $1}')
for i in $(pamixer --list-sources | grep -v Sources | awk '{print $1}'); do
pamixer --source $i -t
done
kill -46 $(pidof dwmblocks)
exit ;;
"volmute")
for i in $(pamixer --list-sinks | grep -v Sinks | awk '{print $1}'); do
pamixer --sink $i -t
done
kill -46 $(pidof dwmblocks)
exit ;;
"increase")
pamixer --sink $sink --allow-boost -i 5
kill -46 $(pidof dwmblocks)
exit ;;
"decrease")
pamixer --sink $sink --allow-boost -d 5
kill -46 $(pidof dwmblocks)
exit ;;
esac
vol="$(pamixer --sink $sink --get-volume)"
[ $(echo $vol | wc -c) -lt 4 ] && svol=" ${vol}%%" || svol="${vol}%%"
[ $(pamixer --sink $sink --get-mute) = true ] && volinfo="^c#eeeeee^^b#005577^\ue04f mute^d^" || volinfo="\ue050 ${svol}"
device=$(pamixer --list-sources | awk '/Raven/ {print $1}')
[ $(pamixer --source $device --get-mute) = true ] && micinfo="^c#eeeeee^^b#005577^\ue02b^d^" || micinfo="\ue02a^d^"
printf "${micinfo} ${volinfo}"