summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/audio
diff options
context:
space:
mode:
authorRichard Marko <srk@48.io>2020-07-18 13:32:48 +0200
committerRichard Marko <srk@48.io>2020-09-08 08:44:20 +0200
commitf54612264edd7d743488e6469b5f774dbc07e7b7 (patch)
treeeb2330b2448d15b3d4dd7df7a4476f19791b7de4 /nixos/modules/services/audio
parentf3bf0f173ec9b302c2613dfb6d76dc49b889f321 (diff)
nixos/jack,pulseaudio: fix pulse connection to jackd service
This fixes the case when Jack Audio Daemon is running as a service via `services.jack.jackd` and Pulseaudio running as a *user* service. Two issues prevented connecting `pulse` with `jackd`: * Missing `JACK_PROMISCUOUS_SERVER` environment variable for `pulse` user service, resulting in `pulse` trying to access `jackd` as if it was running as part of the users session. * `jackd` not being able to access socket created by `pulse` due to socket created using user ID and `users` group. Change allows `jackd` to access the socket created by `pulse` correctly. `pulse` now also autoloads `module-jack-sink` and `module-jack-source` if `services.jack.jackd.enable` is set. The default `pulse` package is now set to `pulseaudioFull` automatically if `services.jack.jackd.enable` is set.
Diffstat (limited to 'nixos/modules/services/audio')
-rw-r--r--nixos/modules/services/audio/jack.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/nixos/modules/services/audio/jack.nix b/nixos/modules/services/audio/jack.nix
index ceff366d0bbb..bee97dbfc6b3 100644
--- a/nixos/modules/services/audio/jack.nix
+++ b/nixos/modules/services/audio/jack.nix
@@ -246,6 +246,9 @@ in {
description = "JACK Audio Connection Kit";
serviceConfig = {
User = "jackaudio";
+ SupplementaryGroups = lib.optional
+ (config.hardware.pulseaudio.enable
+ && !config.hardware.pulseaudio.systemWide) "users";
ExecStart = "${cfg.jackd.package}/bin/jackd ${lib.escapeShellArgs cfg.jackd.extraOptions}";
LimitRTPRIO = 99;
LimitMEMLOCK = "infinity";