diff options
author | adisbladis <adisbladis@gmail.com> | 2018-10-18 03:05:46 +0800 |
---|---|---|
committer | adisbladis <adisbladis@gmail.com> | 2018-10-18 16:27:43 +0800 |
commit | 78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039 (patch) | |
tree | 8a0a4ebb31cf854a513bd10311181331c52076db /nixos/modules/config/pulseaudio.nix | |
parent | 613d3bac86eebfeec082ee742b1706f2cc66c7c1 (diff) | |
download | nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar.gz nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar.bz2 nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar.lz nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar.xz nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.tar.zst nixpkgs-78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039.zip |
nixos/pulseaudio: Add extraModules config option
Diffstat (limited to 'nixos/modules/config/pulseaudio.nix')
-rw-r--r-- | nixos/modules/config/pulseaudio.nix | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index e16a021ec20..d4aa5950629 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -154,6 +154,18 @@ in { ''; }; + extraModules = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.pulseaudio-modules-bt ]"; + description = '' + Extra pulseaudio modules to use. This is intended for out-of-tree + pulseaudio modules like extra bluetooth codecs. + + Extra modules take precedence over built-in pulseaudio modules. + ''; + }; + daemon = { logLevel = mkOption { type = types.str; @@ -236,6 +248,18 @@ in { systemd.packages = [ overriddenPackage ]; }) + (mkIf (cfg.extraModules != []) { + hardware.pulseaudio.daemon.config.dl-search-path = let + overriddenModules = builtins.map + (drv: drv.override { pulseaudio = overriddenPackage; }) + cfg.extraModules; + modulePaths = builtins.map + (drv: "${drv}/lib/pulse-${overriddenPackage.version}/modules") + # User-provided extra modules take precedence + (overriddenModules ++ [ overriddenPackage ]); + in lib.concatStringsSep ":" modulePaths; + }) + (mkIf hasZeroconf { services.avahi.enable = true; }) |