{ config, lib, pkgs, ... }: lib.mkIf config.jalr.gui.enable { services.pulseaudio.enable = false; # FIXME #hardware.pulseaudio.extraModules = [ pkgs.pulseaudio-modules-bt ]; services.pipewire = { enable = true; package = pkgs.master.pipewire; pulse = { enable = true; }; jack = { enable = true; }; alsa = { enable = true; support32Bit = true; }; extraConfig = { pipewire-pulse."10-snapcast-discover" = { "context.modules" = [ { name = "libpipewire-module-snapcast-discover"; args = { stream.rules = [{ matches = [{ snapcast.ip = "~.*"; }]; actions = { create-stream = { }; }; }]; }; } ]; }; /* pipewire."raop-sink" = { "context.modules" = [ { name = "libpipewire-module-raop-discover"; args = { }; } ]; }; */ }; raopOpenFirewall = true; }; environment.systemPackages = with pkgs; [ pavucontrol pulseaudio # pacmd and pactl ]; # required for ardour security.pam.loginLimits = [ { domain = "@audio"; item = "memlock"; type = "-"; value = "unlimited"; } ]; security.rtkit.enable = true; }