From 7ba079505aa414bb01c53f9d1ed6f97112f791c4 Mon Sep 17 00:00:00 2001 From: Yarny0 <41838844+Yarny0@users.noreply.github.com> Date: Thu, 18 Aug 2022 11:03:58 +0200 Subject: nixos/pulseaudio: add pulse-access group According to pulseaudio(1), a system wide pulseaudio instance can only be accessed by members of the `pulse-access` group. This name seems to be hardcoded in pulseaudio -- I didn't find any switch to change it. We need to define the group so users can connect to the deamon. This commit also fixes the systemwide pulseaudio vm test: Previously, the test user `alice` was just a member of the `audio` group. This blocked access to the daemon and failed the test. The commit changes the group assignment and fixes the vm test. --- nixos/modules/config/pulseaudio.nix | 3 ++- nixos/tests/pulseaudio.nix | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index aa3ca549f09a..598a5b623fdf 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -102,7 +102,7 @@ in { each user that tries to use the sound system. The server runs with user privileges. If true, one system-wide PulseAudio server is launched on boot, running as the user "pulse", and - only users in the "audio" group will have access to the server. + only users in the "pulse-access" group will have access to the server. Please read the PulseAudio documentation for more details. Don't enable this option unless you know what you are doing. @@ -310,6 +310,7 @@ in { }; users.groups.pulse.gid = gid; + users.groups.pulse-access = {}; systemd.services.pulseaudio = { description = "PulseAudio System-Wide Server"; diff --git a/nixos/tests/pulseaudio.nix b/nixos/tests/pulseaudio.nix index c553527a482c..16809228b9dd 100644 --- a/nixos/tests/pulseaudio.nix +++ b/nixos/tests/pulseaudio.nix @@ -40,7 +40,7 @@ let environment.systemPackages = [ testers.testPlay pkgs.pavucontrol ] ++ lib.optional pkgs.stdenv.isx86_64 testers.testPlay32; } // lib.optionalAttrs systemWide { - users.users.alice.extraGroups = [ "audio" ]; + users.users.alice.extraGroups = [ "pulse-access" ]; systemd.services.pulseaudio.wantedBy = [ "multi-user.target" ]; }; -- cgit v1.2.3