This works for all mics including webcam mics.
bin/mic-on
#!/usr/bin/env bash
# toggle webcam mic
amixer -c 1 sset Mic cap
# toggle default mic
pactl set-source-mute @DEFAULT_SOURCE@ off
notify-send "Listening"
bin/mic-off
#!/usr/bin/env bash
# toggle webcam mic
amixer -c 1 sset Mic nocap
# toggle default mic
pactl set-source-mute @DEFAULT_SOURCE@ on
notify-send "Muted"
bin/toggle-mics
#!/usr/bin/env bash
# toggle webcam mic
amixer -c 1 sset Mic toggle
# toggle default mic
pactl set-source-mute @DEFAULT_SOURCE@ toggle
amixer get Capture | grep '\[off\]' && notify-send -a "Microphone" "OFF" || notify-send -a "Microphone" "ON"
i3 configuration to bind to keys
# Media
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume
bindsym XF86AudioMicMute exec ~/bin/toggle-mics
# Push to speak
bindsym --release Menu exec ~/bin/mic-off
bindsym Menu exec ~/bin/mic-on
bindsym F1 exec pactl set-sink-mute @DEFAULT_SINK@ toggle # mute sound
bindsym F2 exec pactl set-sink-volume @DEFAULT_SINK@ -5% #decrease sound volume
bindsym F3 exec pactl set-sink-volume @DEFAULT_SINK@ +5% #increase sound volume
bindsym F4 exec ~/bin/toggle-mics