audio: use 23.11 features

This commit is contained in:
Sandro - 2023-12-19 23:05:29 +01:00
parent ffdf2baa39
commit 277c13c3c6
Signed by: sandro
GPG Key ID: 3AF5A43A3EECC2E5
1 changed files with 16 additions and 36 deletions

View File

@ -2,7 +2,6 @@
let
cfg = config.c3d2.audioStreaming;
release = lib.strings.fileContents "${pkgs.path}/.version";
in
{
options = {
@ -10,12 +9,10 @@ in
};
config = lib.mkIf cfg {
environment.etc = lib.optionalAttrs (lib.versionAtLeast release "23.05") {
"pipewire/pipewire.conf.d/zeroconf.conf".text = builtins.toJSON {
"context.modules" = [ {
"name" = "libpipewire-module-zeroconf-discover";
} ];
};
environment.etc."pipewire/pipewire.conf.d/zeroconf.conf".text = builtins.toJSON {
"context.modules" = [ {
"name" = "libpipewire-module-zeroconf-discover";
} ];
};
environment.systemPackages = lib.mkIf config.services.xserver.enable (with pkgs; [
@ -48,48 +45,31 @@ in
};
# required for paprefs to be able to save
programs.dconf.enable = lib.mkIf config.services.xserver.enable true;
programs.dconf = lib.mkIf config.services.xserver.enable {
enable = true;
profiles.user.databases = [{
settings."org/freedesktop/pulseaudio/module-groups/zeroconf-discover" = {
args0 = "";
enabled = true;
name0 = "module-zeroconf-discover";
};
}];
};
security.rtkit.enable = true;
services = {
avahi = {
enable = true;
nssmdns = true;
nssmdns4 = true;
};
pipewire = lib.mkMerge [
(lib.optionalAttrs (lib.versionOlder release "23.05") {
config.pipewire-pulse =
let
default-pipewire-pulse = lib.importJSON (pkgs.path + "/nixos/modules/services/desktops/pipewire/daemon/pipewire-pulse.conf.json");
in
default-pipewire-pulse // {
"context.modules" = default-pipewire-pulse."context.modules" ++ [
{
"name" = "libpipewire-module-zeroconf-discover";
}
];
};
})
{
pulse.enable = true;
}
];
pipewire.pulse.enable = true;
# makes avahi unreliable
resolved.extraConfig = ''
MulticastDNS=no
'';
};
# TODO: rebuild using programs.dconf.profiles, see https://github.com/NixOS/nixpkgs/pull/234615
system.userActivationScripts.enableZeroconfDiscover = lib.mkIf config.services.xserver.enable ''
echo "[org/freedesktop/pulseaudio/module-groups/zeroconf-discover]
args0=''\''
enabled=true
name0='module-zeroconf-discover'
" | ${pkgs.dconf}/bin/dconf load /
'';
};
}