You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
966 B
Bash

#!/bin/sh
get_mic_default() {
pactl get-default-source
}
is_mic_muted() {
mic_name="$(get_mic_default)"
pactl list sources | \
awk -v mic_name="${mic_name}" '{
if ($0 ~ "Name: " mic_name) {
matched_mic_name = 1;
} else if (matched_mic_name && /Mute/) {
print $2;
exit;
}
}'
}
get_mic_status() {
is_muted="$(is_mic_muted)"
if [ "${is_muted}" = "yes" ]; then
printf "%s\n" ""
else
printf "%s\n" ""
fi
}
listen() {
get_mic_status
LANG=EN; pactl subscribe | while read -r event; do
if printf "%s\n" "${event}" | grep --quiet "source" || printf "%s\n" "${event}" | grep --quiet "server"; then
get_mic_status
fi
done
}
toggle() {
pactl set-source-mute @DEFAULT_SOURCE@ toggle
}
case "$1" in
--toggle)
toggle
;;
*)
listen
;;
esac