The session manager manages the bluetooth devices. It listens for DBus messages from bluetoothd and creates/destroys bluetooth device nodes in the PipeWire graph dynamically.
The best Bluetooth codec should automatically be chosen however the config file has a codec selection to work around bugs either in PipeWire, Bluez, or with headsets.
If you're having trouble have a look at the [Bluetooth](https://wiki.archlinux.org/index.php/Bluetooth) and the [Bluetooth Headset](https://wiki.archlinux.org/index.php/Bluetooth_headset) section of the Archwiki it may be for Arch but most of it translates to all of Linux.
# Configuration File (`bluez-monitor.conf`)
The bluez-monitor module has a configuration template file located in `/usr/share/pipewire/media-session.d/bluez-monitor.conf` that can be copied. You can copy and edit the file to `/etc/pipewire/` or `~/.config/pipewire/media-session.d/bluez-monitor.conf`.
# Hardware quirks (`bluez-hardware.conf`)
The bluez-monitor module has a hardware quirks database template file located in `/usr/share/pipewire/media-session.d/bluez-hardware.conf` that can be copied. You can copy and edit the file to `/etc/pipewire/` or `~/.config/pipewire/media-session.d/bluez-hardware.conf`.