nix-user-module/modules/audio.nix

51 lines
1.3 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
2023-01-03 05:16:12 +01:00
let
cfg = config.c3d2.audioStreaming;
in
{
options = {
c3d2.audioStreaming = lib.mkEnableOption "enable all services requires to audio stream to dacbert, glotzert or pulsebert";
2023-01-03 05:16:12 +01:00
};
config = lib.mkIf cfg {
2023-04-10 20:58:28 +02:00
environment.etc = lib.optionalAttrs (lib.versionAtLeast "23.05" lib.version) {
2023-03-31 22:45:55 +02:00
"pipewire/pipewire.conf.d/zeroconf.conf".text = builtins.toJSON {
"context.modules" = [ {
"name" = "libpipewire-module-zeroconf-discover";
} ];
};
};
2023-01-03 05:16:12 +01:00
hardware.pulseaudio.zeroconf.discovery.enable = true;
security.rtkit.enable = true;
services = {
avahi = {
enable = true;
nssmdns = true;
};
pipewire = lib.mkMerge [
2023-04-10 20:58:28 +02:00
(lib.optionalAttrs (lib.versionOlder "23.05" lib.version) {
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;
}
];
2023-01-03 05:16:12 +01:00
};
};
}