Введение
Всё больше программ начинает менять громкость моего микрофона не у себя под капотом, а у меня в системе, из-за чего меня никто не слышит в других программах. Эта проблема есть на винде, на линуксе, на любой ОС. Просто мрази имеют право через сайт в браузере редачить настройки моей системы. Это уже полный ахуй, что рандомный сайт имеет такие привилегии в моей системе.
Абсолютно все онлайн звонилки, будь то zoom, discord или рандомные звонилки для собесов или созвонов, убавляют громкость моего микрофона в системе без моего разрешения и меня никто не слышит. Разрабам этого кала желаю всего наихудшего. У меня ушло очень много времени, чтоб полностью исправить это. У кого-то такой проблемы нет, у кого-то есть.
Фиксим проблему в браузере
Если эта проблема лишь с сайтами в браузере, то есть универсальный фикс под любую ОС.
В Chromium и его аналогах надо написать в браузерной строке chrome://flags/
. В поиске той страницы написать Allow WebRTC to adjust the input volume
и сделать его Disabled
.
В Firefox и его аналогах у меня проблемы не было, но в теории там надо открыть about:config
и в поиске написать media.getusermedia.agc_enabled
. Его надо сделать False
. AGC это Automatic Gain Control.
Фиксим проблему на Linux с PipeWire
У меня эта же проблема была с десктоп discord приложением, тут я сделал фикс на уровне ОС. Работает только на Linux с PipeWire. Для фикса надо написать конфиг WirePlumber. Это менеджер сессий и прав для PipeWire, который управляет устройствами и потоками аудио/видео.
Его конфиги находятся в ~/.config/wireplumber/
. Там надо создать файл 99-stop-microphone-auto-adjust.lua
с таким содержимым:
|
|
Тут я запрещаю всем (*
) бинарям write
. То есть они не смогут менять что либо в звуке системы, только читать и использовать. И уже после этого я разрешаю менять звук системы конкретным программам.
В моём случае это pavucontrol
для изменения громкости аудио девайсов, и easyeffects
для разных звуковых фильтров, эквалайзеров и т.д.
Можно сделать запрет на write
лишь конкретным программам, у меня так было раньше, вот пример:
|
|
Для запрета записи не важно пишешь ты rx
или r-x
.
Подход с запретом конкретному софту мне не нравится, потому что уёбищного софта от далбаёбов, которые без моего разрешения лезут в мою систему, слишком много и становится только больше. А программ, которыми я меняю звук в системе, всегда ограниченное количество и я о них знаю заранее.
Чтоб применить эти настройки, в терминале пишем это:
|
|
Некоторые программы могут перестать выдавать звук, потому что их надо перезапустить после ребута PipeWire.
Ещё есть нюанс. Я указываю application.process.binary = что-то
. Но где взять это что-то? Как понять что надо писать? Для этого надо повозиться.
Сначала запускаешь программу, которая редачит звук. Если это голосовой канал, то в него лучше зайти, чтоб наверняка процесс создался. Потом в терминале пишешь:
|
|
И ищешь нужное приложение. Для голосовых каналов это зачастую WEBRTC VoiceEngine
. Но их там будет очень много, как понять какой из них, например, discord, а какой из них другая программа? Для этого надо написать:
|
|
Там будет написано имя бинаря, который надо писать. Если хочешь увидеть имена всех активных бинарей, то можно написать такую команду:
|
|
Фикс для NixOS
На NixOS, возможно, работает и стандартный вариант. Но я сделал сразу через .nix конфиг. Вот весь мой конфиг для звука в NixOS:
|
|