nixos-config/modules/nixos/profiles/desktop/audio.nix

42 lines
960 B
Nix

# Enable the preferred audio workflow.
{ lib, ... }:
{
hardware.pulseaudio.enable = false;
security.rtkit.enable = lib.mkDefault true;
# The main preferred setup of our audio system.
services.pipewire = {
enable = true;
# This is enabled by default but I want to explicit since
# this is my preferred way of managing anyways.
wireplumber.enable = true;
# Enable all the bi-...bridges.
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
# This is based from https://jackaudio.org/faq/linux_rt_config.html.
#
# Anyways, this enables several audio-related software requiring realtime
# scheduling to work such as Sonic Pi.
security.pam.loginLimits = [
{
domain = "@audio";
type = "-";
item = "rtprio";
value = "95";
}
{
domain = "@audio";
type = "-";
item = "memlock";
value = "unlimited";
}
];
}