70 lines
3.5 KiB
Nix
70 lines
3.5 KiB
Nix
{ # Настройки звука
|
||
hardware.pulseaudio.enable = false;
|
||
security.rtkit.enable = true; # Уменьшает задержку?
|
||
services.pipewire = {
|
||
enable = true;
|
||
alsa.enable = true;
|
||
alsa.support32Bit = true;
|
||
pulse.enable = true;
|
||
jack.enable = true;
|
||
|
||
wireplumber = {
|
||
enable = true;
|
||
# Запретить конкретному софту редактировать громкость микрофона
|
||
# В терминал `wpctl status`, найти нужное приложение в списке клиентов
|
||
# Потом `wpctl inspect номер-клиента | grep application.process.binary`
|
||
# `systemctl --user restart wireplumber pipewire pipewire-pulse`
|
||
# Доп ссылки по теме
|
||
# https://www.reddit.com/r/archlinux/comments/190dvl8/pipewirewayland_how_to_stop_applications_from/
|
||
# https://askubuntu.com/questions/749407/is-there-any-way-to-prevent-application-from-changing-volume-level-of-my-microph
|
||
# https://www.linux.org/threads/prevent-applications-from-changing-microphone-gain.41636/
|
||
# https://www.reddit.com/r/Ubuntu/comments/pvlm6r/how_to_disable_microphone_autoadjusting/
|
||
extraScripts."99-stop-microphone-auto-adjust.lua" = ''
|
||
table.insert (default_access.rules,{
|
||
matches = {
|
||
{
|
||
{ "application.process.binary", "=", ".Discord-wrapped" }
|
||
},
|
||
{
|
||
{ "application.process.binary", "=", "chromium" }
|
||
},
|
||
{
|
||
{ "application.process.binary", "=", "librewolf" }
|
||
},
|
||
{
|
||
{ "application.process.binary", "=", "firefox" }
|
||
},
|
||
{
|
||
{ "application.process.binary", "=", "steam" }
|
||
},
|
||
{
|
||
{ "application.process.binary", "=", ".telegram-desktop-wrapped" }
|
||
}
|
||
},
|
||
default_permissions = "rx",
|
||
})
|
||
'';
|
||
};
|
||
|
||
# Ниже настройки имеют формат "число - название"
|
||
# Число определяет приоритет настройки, а название описывает цель конфига
|
||
extraConfig.pipewire = {
|
||
"10-clock-rate" = {
|
||
"context.properties" = {
|
||
"default.clock.rate" = 48000;
|
||
# "default.clock.allowed-rates" = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ];
|
||
};
|
||
};
|
||
# Ниже настройки для минимальной задержки в играх (например osu!stable через wine)
|
||
# quantum — устанавливает размер буфера (чем меньше значение, тем ниже задержка, но выше нагрузка на процессор).
|
||
# Можно посчитать теоретическую задержку в секундах, поделив quantum на rate (48/48000 будет 1мс)
|
||
# Если со звуком есть проблемы (щелчки, прерывания), попробуйте увеличить значение (64, 128, 256) или просто удалить эту настройку
|
||
# По умолчанию я закомментировал настройку, чтоб у людей не было проблем
|
||
# "92-low-latency" = {
|
||
# default.clock.quantum = 32; # default = 1024
|
||
# default.clock.min-quantum = 32; # default = 32
|
||
# default.clock.max-quantum = 32; # default = 2048
|
||
# };
|
||
};
|
||
};
|
||
}
|