diff options
-rw-r--r-- | nixos/alpha/config/pipewire.nix | 67 | ||||
-rw-r--r-- | nixos/alpha/configuration.nix | 9 |
2 files changed, 74 insertions, 2 deletions
diff --git a/nixos/alpha/config/pipewire.nix b/nixos/alpha/config/pipewire.nix new file mode 100644 index 0000000..d1ec56f --- /dev/null +++ b/nixos/alpha/config/pipewire.nix @@ -0,0 +1,67 @@ +{ + pipewire."context.properties" = { + "core.daemon" = true; + "core.name" = "pipewire-0"; + "link.max-buffers" = 16; + "log.level" = 2; + "default.clock.rate" = 48000; + "default.clock.quantum" = 32; + "default.clock.min-quantum" = 32; + "default.clock.max-quantum" = 32; + }; + + 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-profiler"; } + { name = "libpipewire-module-spa-device-factory"; } + { name = "libpipewire-module-spa-node-factory"; } + { name = "libpipewire-module-client-device"; } + { name = "libpipewire-module-link-factory"; } + { name = "libpipewire-module-session-manager"; } + + { + name = "libpipewire-module-portal"; + flags = [ "ifexists" "nofail" ]; + } + + { + name = "libpipewire-module-access"; + args = { }; + } + + { + name = "libpipewire-module-rtkit"; + + args = { + "nice.level" = -15; + "rt.prio" = 90; + "rt.time.soft" = 200000; + "rt.time.hard" = 200000; + }; + + flags = [ "ifexists" "nofail" ]; + } + + { + name = "libpipewire-module-protocol-pulse"; + args = { + "server.address" = [ "unix:native" ]; + "pulse.min.req" = "32/48000"; + "pulse.min.quantum" = "32/48000"; + "pulse.min.frag" = "32/48000"; + "pulse.default.req" = "2048/48000"; + "pulse.default.frag" = "2048/48000"; + }; + } + ]; + + "stream.properties" = { + "node.latency" = "32/48000"; + "resample.quality" = 1; + }; + }; +} diff --git a/nixos/alpha/configuration.nix b/nixos/alpha/configuration.nix index 4151ef0..92eb25b 100644 --- a/nixos/alpha/configuration.nix +++ b/nixos/alpha/configuration.nix @@ -84,14 +84,19 @@ services.openssh.enable = true; services.openssh.passwordAuthentication = false; - sound.enable = true; + sound.enable = false; + + # TODO: ALSA lib pcm.c:2576:(snd_pcm_open_conf) Unknown field libs services.pipewire = { enable = true; + alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; - }; + config = import ./config/pipewire.nix; + }; +# hardware.bluetooth.enable = true; services.greetd = { |