PipeWire with Wireplumber on Debian
Add the repo
To be able to download Wireplumber, let’s first add the repository.
Find your architecture here and follow the instructions. Here’s an example for AMD64 machines, add this to your /etc/apt/sources.list
:
deb http://ftp.de.debian.org/debian sid main
Be sure to remove the repository from /etc/apt/sources.list.d/
after installing all the necessary packages. If you run apt update && apt upgrade
while having the added unstable repo in the list, upgrading will switch your system to unstable.
Installation
Now, update the packages:
sudo apt update
Install PipeWire, Wireplumber and dependencies:
sudo apt install gstreamer1.0-pipewire \
libpipewire-0.3-{0,dev,modules} \
libspa-0.2-{bluetooth,dev,jack,modules} \
pipewire{,-{audio-client-libraries,pulse,bin,jack,alsa,v4l2,libcamera,locales,tests}} \
wireplumber{,-doc} \
gir1.2-wp-0.4 libwireplumber-0.4-{0,dev} \
pipewire-media-session
Enable PipeWire
Disable PulseAudio and related services:
systemctl --user --now disable pulseaudio.{socket,service}
systemctl --user mask pulseaudio
Copy the configuration files:
sudo cp -vRa /usr/share/pipewire /etc/
Enable PipeWire services:
systemctl --user --now enable pipewire{,-pulse}.{socket,service} filter-chain.service
Start pipewire-media-session
:
systemctl --user enable --now pipewire-media-session.service
Enable Wireplumber
Finally, start Wireplumber:
systemctl --user --now enable wireplumber.service
Reboot and check whether it’s running:
pactl info | grep '^Server Name'
Expected output:
Server Name: PulseAudio (on PipeWire 0.3.63)
Autoswitch on connect
If you use bluetooth headphones, it’s a neat feature to switch the audio to it automatically. You can enable it by adding the next line to content.exec
in /etc/pipewire/pipewire.conf
:
context.exec = [
...
{ path = "pactl" args = "load-module module-switch-on-connect" }
]