{lib, config, ... }: { services.pipewire = { enable = true; alsa = { enable = true; support32Bit = true; }; pulse = { enable = true; }; config.pipewire = { context.modules = [ { name = "libpipewire-module-rtkit"; args = { nice.level = -15; rt.prio = 88; rt.time.soft = 200000; rt.time.hard = 200000; }; flags = [ "ifexists" "nofail" ]; } { name = "libpipewire-module-protocol-native"; } { name = "libpipewire-module-profiler"; } { name = "libpipewire-module-metadata"; } { name = "libpipewire-module-spa-device-factory"; } { name = "libpipewire-module-spa-node-factory"; } { name = "libpipewire-module-client-node"; } { name = "libpipewire-module-client-device"; } { name = "libpipewire-module-portal"; flags = [ "ifexists" "nofail" ]; } { name = "libpipewire-module-access"; args = {}; } { name = "libpipewire-module-adapter"; } { name = "libpipewire-module-link-factory"; } { name = "libpipewire-module-session-manager"; } ]; }; config.pipewire-pulse = { context.modules = [ { name = "libpipewire-module-protocol-native"; } { name = "libpipewire-module-client-node"; } { name = "libpipewire-module-adapter"; } { name = "libpipewire-module-metadata"; } { name = "libpipewire-module-protocol-pulse"; args = { pulse.min.req = "32/48000"; pulse.min.quantum = "32/48000"; pulse.min.frag = "32/48000"; }; } ]; stream.properties = { node.latency = "32/48000"; resample.quality = 1; }; }; }; sound.enable = true; # hardware = { # pulseaudio.enable = true; # pulseaudio.support32Bit = true; # }; }