So I wanted to watch a movie with another person and we both using our own bluetooth earbuds. So I found this code to be placed inside context.modules in the PipeWire config file:

{   name = libpipewire-module-combine-stream
    args = {
        combine.mode = sink
        node.name = "bt-broadcast"
        node.description = "A combined sink to all bluetooth devices"
        combine.latency-compensate = false
        combine.props = {
            audio.position = [ FL FR ]
        }
        stream.props = {
        }
        stream.rules = [
            {
                matches = [
                    # any of the items in matches needs to match, if one does,
                    # actions are emitted.
                    {
                        # all keys must match the value. ! negates. ~ starts regex.
                        # matches all bluez sinks
                        node.name = "~bluez_output.*"
                        media.class = "Audio/Sink"
                    }
                ]
                actions = {
                    create-stream = {
                        combine.audio.position = [ FL FR ]
                        audio.position = [ FL FR ]
                    }
                }
            }
        ]
    }
}

I am using Debian 12 stable so the PipeWire config file was the one at /usr/share/pipewire

I did that, then systemctl restart wireplumber and maybe restarted some other services don’t remember. It worked.

We watched the movie, I turned off the laptop. Now I picked it up again and there is no sound at all, whatever output device I choose on the Gnome config UI or on the EasyEffects UI, I can’t get sound on the built in speakers, can’t get on the bluetooth earbuds either (selecting the virtual device or the actual single earbud).

Help?

  • Jumuta
    link
    fedilink
    arrow-up
    3
    ·
    15 hours ago

    in the future if you want to do this again qpwgraph might be a easier way to do it