dotfiles/.config/polybar/scripts/pipewire-microphone.sh
2024-01-29 08:31:23 -06:00

40 lines
670 B
Bash

#!/bin/sh
get_mic_default() {
pactl info | awk '/Default Source:/ {print $3}'
}
is_mic_muted() {
pactl get-source-mute "$(get_mic_default)" | awk '{print $2}'
}
get_mic_status() {
if [ "$(is_mic_muted)" = "yes" ]; then
printf "%s\n" "#1"
else
printf "%s\n" "#2"
fi
}
listen() {
get_mic_status
LANG=EN; pactl subscribe | while read -r event; do
if printf "%s\n" "${event}" | grep -qE '(source|server)'; then
get_mic_status
fi
done
}
toggle() {
pactl set-source-mute @DEFAULT_SOURCE@ toggle
}
case "${1}" in
--toggle)
toggle
;;
*)
listen
;;
esac