diff --git a/modules/audio.nix b/modules/audio.nix index 4f1ce43..9c76bb7 100644 --- a/modules/audio.nix +++ b/modules/audio.nix @@ -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 / - ''; }; }