Pipewire Featured Image

Pipewire Combined Sink

Pipewire comes with a native module to send audio output to all connected audio devices. This is done by creating a combined output sink using module-combine-stream in Pipewire config. This is ideal if you have multiple Bluetooth headsets or speakers and want to output same audio to all of them at the same time.

The following instructions are tested on Debian 12 (Bookwork) using Gnome. They should work on other Debian based distros i.e. Ubuntu, Mint

The basic steps are as follows:

  • Open /usr/share/pipewire/pipewire.conf
  • Find context.modules section and add a module block for libpipewire-module-combine-stream
  • Restart Pipewire
# Open pipewire.conf
sudo nano /usr/share/pipewire/pipewire.conf

# Add module-combine-stream to context.modules block. 
context.modules = [
{   name = libpipewire-module-combine-stream
    args = {
        combine.mode = sink
        node.name = "my_combined_sink"
        node.description = "My Combined Sink"
        combine.props = {
            audio.position = [ FL FR ]
        }
        stream.rules = [
            {
                matches = [
                    {
                        media.class = "Audio/Sink"
                    }
                ]
                actions = {
                    create-stream = {
                    }
                }
            }
        ]
    }
}
]

# Restart Pipewire
systemctl --user restart pipewire pipewire-pulse

Once restarted, “All Connected Outputs” will appear in Top Panel and Sound Settings

Leave a Reply

Your email address will not be published. Required fields are marked *