40 lines
670 B
Bash
Executable File
40 lines
670 B
Bash
Executable File
#!/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
|