diff --git a/modules/system/audio.nix b/modules/system/audio.nix index 29c17a7..f94efc1 100644 --- a/modules/system/audio.nix +++ b/modules/system/audio.nix @@ -25,51 +25,32 @@ in { alsa.support32Bit = true; pulse.enable = true; jack.enable = true; - - config.pipewire = { - "context.properties" = { - "link.max-buffers" = 16; - "default.clock.rate" = int.rate; - "default.clock.quantum" = int.quantum.def; - "default.clock.min-quantum" = int.quantum.min; - "default.clock.max-quantum" = int.quantum.max; - "core.daemon" = true; - "core.name" = "pipewire-0"; - }; - - "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"; } - ]; - "stream.properties" = { - "node.latency" = "${str.quantum.min}/${str.rate}"; - "resample.quality" = 1; - }; + }; + environment.etc."pipewire/pipewire.conf.d/99-config.conf".text = builtins.toJSON { + "context.properties" = { + "default.clock.rate" = int.rate; + "default.clock.quantum" = int.quantum.def; + "default.clock.min-quantum" = int.quantum.min; + "default.clock.max-quantum" = int.quantum.max; }; - config.pipewire-pulse = { + + "context.modules" = [ + { + name = "libpipewire-module-rtkit"; + args = { + "nice.level" = -15; + "rt.prio" = 88; + "rt.time.soft" = 200000; + "rt.time.hard" = 200000; + }; + } + ]; + "stream.properties" = { + "node.latency" = "${str.quantum.min}/${str.rate}"; + "resample.quality" = 1; + }; + }; + environment.etc."pipewire/pipewire-pulse.conf.d/99-config.conf".text = builtins.toJSON { "context.modules" = [ { name = "libpipewire-module-rtkit"; @@ -79,12 +60,7 @@ in { "rt.time.soft" = 200000; "rt.time.hard" = 200000; }; - flags = [ "ifexists" "nofail" ]; } - { name = "libpipewire-module-protocol-native"; } - { name = "libpipewire-module-client-node"; } - { name = "libpipewire-module-adapter"; } - { name = "libpipewire-module-metadata"; } { name = "libpipewire-module-protocol-pulse"; args = { @@ -93,7 +69,6 @@ in { "pulse.max.req" = "${str.quantum.max}/${str.rate}"; "pulse.min.quantum" = "${str.quantum.min}/${str.rate}"; "pulse.max.quantum" = "${str.quantum.max}/${str.rate}"; - "server.address" = [ "unix:native" ]; }; } ]; @@ -112,7 +87,6 @@ in { "node.latency" = "${str.quantum.min}/${str.rate}"; "resample.quality" = 1; }; - }; }; }