summaryrefslogtreecommitdiff
path: root/hosts/sif
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2022-03-08 13:47:49 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2022-03-08 13:47:49 +0100
commitf5af1066c93b340e4c99d7598f3982cf33d41124 (patch)
tree18ec8273c6e811189302533fc9665784977a2131 /hosts/sif
parent058a31ff51dfa5d45a2fbdbc10af12ced7abfd1d (diff)
downloadnixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar
nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.gz
nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.bz2
nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.tar.xz
nixos-f5af1066c93b340e4c99d7598f3982cf33d41124.zip
sif: pipewire realtime
Diffstat (limited to 'hosts/sif')
-rw-r--r--hosts/sif/default.nix78
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 = {