As Ubuntu 21.04 includes pipewire for video streams and screen sharing by default, I am wondering whether or not it is possible to replace pulseaudio completely with pipewire.

  • Please add a tag wiki and usage excerpt for the new tag you created – muru Apr 24 at 1:18

Yes indeed, this is possible and fairly simple, just follow the steps described in the Debian docs:

First install the pipewire-audio-client-libraries package.

sudo apt install pipewire-audio-client-libraries

Create this empty file:

touch /etc/pipewire/media-session.d/with-pulseaudio

Create a pipewire-pulse service by copying the example files:

cp /usr/share/doc/pipewire/examples/systemd/user/pipewire-pulse.* /etc/systemd/user/

Run these three commands as your regular user (not as root):

// Check for new service files with:
systemctl --user daemon-reload
// Disable and stop the PulseAudio service with:
systemctl --user --now disable pulseaudio.service pulseaudio.socket
// Enable and start the new pipewire-pulse service with:
systemctl --user --now enable pipewire pipewire-pulse

You can check which server is in use by, as your regular user, running:

pactl info | grep '^Server Name'

If it's using PipeWire, the server name will be "PulseAudio (On PipeWire 0.3.19)"

To makeit work I had to "mask" the PulseAudio service by running:

systemctl --user mask pulseaudio

And then restarting the PipeWire services:

systemctl --user restart pipewire pipewire-pulse

This will block the PulseAudio service from being activated outright. If you wish to restore previous functionality, you'll need to run the same command again with the "unmask" action.

  • Arch has a package which does essentially this. It's surprising Debian haven't done it a in a similar fashion. – muru Apr 23 at 15:45

Arch User Here. But love PipeWire. Under all debian/Ubuntu {18..21}.{04,10} Version of PW is too old. That's why I am maintaining a PPA which will provide latest build of PipeWire(15-16 days of release cycle). You can track latest change on github for this PPA.

On arch linux this process is obtained by {pre,post}_{install,upgrade,remove} function under package's *.install file.

And under Ubuntu/Debian It will be achieved by some simple {pre,post}{inst,rm} scripts. I will be updated these in next release definitely. This Already had been done.

EDIT 1 -
For a detailed Installation instructions Please follow github wiki.

With PipeWire I am also packaging blueman-git (git version of blueman). It has some serious needed feature to work with PipeWire. Don't worry it also will not break anything but increase your productivity upto a level higher.

EDIT 2 -
The Launchpad PPA will work under All debian/ubuntu based distros. Don't worry! install it, test it and file bugs to upstream to help it's developers to make PipeWire even more better.

EDIT 3 -
Now PipeWire 0.3.27 and on wards will support under debian/ubuntu 18.04 also.

  • Thank you, nice work. For some reason I dont have the example file systemd/user/pipewire-pulse.* after installing this, any idea? – Vijay Prema May 1 at 1:36
  • 1
    OK dont worry, I got it working after following the instructions on your github rather than whats posted above here. – Vijay Prema May 1 at 1:43
  • This is the correct answer. Follow GitHub instructions and voila. – Jesús Fuentes May 7 at 11:59
  • This is a positive development! Does this work with Linux Mint 20.1? – mcarans May 14 at 3:43
  • @mcarans Yes, It will work on all debian/ubuntu based distros. Linux Mint 20.1 also work with the PPA. – Sourav Das May 15 at 4:42

You need to edit: /etc/pipewire/media-session.d/media-session.conf

And un-comment at least alsa-monitor under session.modules.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.