MyNixOS website logo
option

services.pipewire.wireplumber.extraConfig

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:

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.

Declarations
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";
          };
        };
      }
    ];
  };
}