Stop adjusting my microphone!
How to prevent applications from secretly adjusting the gain (input volume) of your microphone while you’re in a voice call.
The only general solution I’m aware of is for WirePlumber (the PipeWire session manager used in recent Linux distributions). I’ll update this page if I become aware of general solutions for any other environments.
On a Linux system using WirePlumber, it’s possible to prevent arbitrary applications from adjusting levels by writing access rules:
access.rules = [
{
matches = [
{
application.process.binary = "electron"
}
]
actions = {
update-props = {
default_permissions = "rx"
}
}
}
]
You can find the relevant binary name by running wpctl status | less,
looking at the list of clients, and examining clients with
wpctl inspect ID | less.
You can also match on application.name or (presumably) other properties that
the inspect command shows. For more information about the syntax and meaning of these rules,
see Working with rules (WirePlumber docs).
Chrome has a flag that can be used to disable this behavior: In a new tab, paste
chrome://flags/#enable-webrtc-allow-input-volume-adjustment into the address bar. This should
bring you to the flag titled “Allow WebRTC to adjust the input volume.” Use the drop-down to set it
to Disabled.
This flag exists at time of writing, but if you’re reading this in the future and the flag has been removed, please let me know.
In Discord, open User Settings (gear icon), click on the Voice & Video tab, and scroll down to find the Automatic Gain Control setting. Turn this setting off.