Pipewire selects mSBC by default

Hi all,

When connecting bluetooth headphones to my NixOS desktop, it selects mSBC by default. I have to go manually inside pavucontrol and change this to aptx every time I disconnect and reconnect. Does someone know how to set the default sink to use?

This is my pipewire config:

  # PipeWire
  security.rtkit.enable = true;
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    jack.enable = true;
    wireplumber = {
      enable = true;
      configPackages = [
        (pkgs.writeTextDir "share/wireplumber/bluetooth.lua.d/51-bluez-config.lua" ''
      		bluez_monitor.properties = {
        		["bluez5.enable-sbc-xq"] = true,
      			["bluez5.enable-msbc"] = true,
                ["bluez5.enable-hw-volume"] = true,
                ["bluez5.roles"] = "[ a2dp_sink a2dp_source bap_sink bap_source hsp_hs hsp_ag hfp_hf hfp_ag ]"
      		}
      	'')
      ];
    };
  };

  hardware.bluetooth = {
    enable = true;
    powerOnBoot = true;
    settings = {
      General = {
        Enable = "Source,Sink,Media,Socket";
        ControllerMode = "dual";
        FastConnectable = true;
        Experimental = true;
      };
    };
  };

Nevermind. I forgot to connect a mic, so pipewire automatically switched to a headset profile (mSBC or HSP). After I connected the mic, my headphone automatically chose aptx.

To someone else facing this issue PipeWire - ArchWiki might help

2 Likes