diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2022-03-08 13:47:49 +0100 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2022-03-08 13:47:49 +0100 |
commit | f5af1066c93b340e4c99d7598f3982cf33d41124 (patch) | |
tree | 18ec8273c6e811189302533fc9665784977a2131 /hosts | |
parent | 058a31ff51dfa5d45a2fbdbc10af12ced7abfd1d (diff) | |
download | nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.gz nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.bz2 nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.xz nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.zip |
sif: pipewire realtime
Diffstat (limited to 'hosts')
-rw-r--r-- | hosts/sif/default.nix | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix index 7cce8af0..4e099f38 100644 --- a/hosts/sif/default.nix +++ b/hosts/sif/default.nix | |||
@@ -337,6 +337,84 @@ in { | |||
337 | jack.enable = true; | 337 | jack.enable = true; |
338 | media-session.enable = false; | 338 | media-session.enable = false; |
339 | wireplumber.enable = true; | 339 | wireplumber.enable = true; |
340 | config.pipewire = { | ||
341 | "context.properties" = { | ||
342 | "link.max-buffers" = 16; | ||
343 | "log.level" = 2; | ||
344 | "default.clock.rate" = 192000; | ||
345 | "default.clock.quantum" = 1024; | ||
346 | "default.clock.min-quantum" = 32; | ||
347 | "default.clock.max-quantum" = 2048; | ||
348 | "core.daemon" = true; | ||
349 | "core.name" = "pipewire-0"; | ||
350 | }; | ||
351 | "context.modules" = [ | ||
352 | { | ||
353 | name = "libpipewire-module-rtkit"; | ||
354 | args = { | ||
355 | "nice.level" = -15; | ||
356 | "rt.prio" = 88; | ||
357 | "rt.time.soft" = 200000; | ||
358 | "rt.time.hard" = 200000; | ||
359 | }; | ||
360 | flags = [ "ifexists" "nofail" ]; | ||
361 | } | ||
362 | { name = "libpipewire-module-protocol-native"; } | ||
363 | { name = "libpipewire-module-profiler"; } | ||
364 | { name = "libpipewire-module-metadata"; } | ||
365 | { name = "libpipewire-module-spa-device-factory"; } | ||
366 | { name = "libpipewire-module-spa-node-factory"; } | ||
367 | { name = "libpipewire-module-client-node"; } | ||
368 | { name = "libpipewire-module-client-device"; } | ||
369 | { | ||
370 | name = "libpipewire-module-portal"; | ||
371 | flags = [ "ifexists" "nofail" ]; | ||
372 | } | ||
373 | { | ||
374 | name = "libpipewire-module-access"; | ||
375 | args = {}; | ||
376 | } | ||
377 | { name = "libpipewire-module-adapter"; } | ||
378 | { name = "libpipewire-module-link-factory"; } | ||
379 | { name = "libpipewire-module-session-manager"; } | ||
380 | ]; | ||
381 | }; | ||
382 | config.pipewire-pulse = { | ||
383 | "context.properties" = { | ||
384 | "log.level" = 2; | ||
385 | }; | ||
386 | "context.modules" = [ | ||
387 | { | ||
388 | name = "libpipewire-module-rtkit"; | ||
389 | args = { | ||
390 | "nice.level" = -15; | ||
391 | "rt.prio" = 88; | ||
392 | "rt.time.soft" = 200000; | ||
393 | "rt.time.hard" = 200000; | ||
394 | }; | ||
395 | flags = [ "ifexists" "nofail" ]; | ||
396 | } | ||
397 | { name = "libpipewire-module-protocol-native"; } | ||
398 | { name = "libpipewire-module-client-node"; } | ||
399 | { name = "libpipewire-module-adapter"; } | ||
400 | { name = "libpipewire-module-metadata"; } | ||
401 | { | ||
402 | name = "libpipewire-module-protocol-pulse"; | ||
403 | args = { | ||
404 | "pulse.min.req" = "32/192000"; | ||
405 | "pulse.default.req" = "1024/192000"; | ||
406 | "pulse.max.req" = "2048/192000"; | ||
407 | "pulse.min.quantum" = "32/192000"; | ||
408 | "pulse.max.quantum" = "2048/192000"; | ||
409 | "server.address" = [ "unix:native" ]; | ||
410 | }; | ||
411 | } | ||
412 | ]; | ||
413 | "stream.properties" = { | ||
414 | "node.latency" = "2048/192000"; | ||
415 | "resample.quality" = 1; | ||
416 | }; | ||
417 | }; | ||
340 | }; | 418 | }; |
341 | 419 | ||
342 | hardware = { | 420 | hardware = { |