services.pipewire.wireplumber.extraConfig

NixOS option

Additional configuration for the WirePlumber daemon when run in single-instance mode (the default in nixpkgs and currently the only supported way to run WirePlumber configured via extraConfig). See also: The configuration file Modifying configuration Locations of files and the configuration section of the docs in general Note that WirePlumber (and PipeWire) use dotted attribute names like device.product.id. These are not nested, but flat objects for WirePlumber/PipeWire, so to write these in nix expressions, remember to quote them like "device.product.id". Have a look at the example for this.

type: attribute set of attribute set of (JSON value)
Default
{ }
Example
{
  "log-level-debug" = {
    "context.properties" = {
      # Output Debug log messages as opposed to only the default level (Notice)
      "log.level" = "D";
    };
  };
  "wh-1000xm3-ldac-hq" = {
    "monitor.bluez.rules" = [
      {
        matches = [
          {
            # Match any bluetooth device with ids equal to that of a WH-1000XM3
            "device.name" = "~bluez_card.*";
            "device.product.id" = "0x0cd3";
            "device.vendor.id" = "usb:054c";
          }
        ];
        actions = {
          update-props = {
            # Set quality to high quality instead of the default of auto
            "bluez5.a2dp.ldac.quality" = "hq";
          };
        };
      }
    ];
  };
}
declared in: nixos/modules/services/desktops/pipewire/wireplumber.nixView source on NixOS/nixpkgs →