Ubuntu already has most of PipeWire running in the background and replacing pulseaudio with PipeWire is really, very easy.
Start a terminal and run the following commands:
sudo apt install pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack wireplumber
This should also automatically remove pipewire-media-session, which is exactly what you want. Now run:
systemctl --user --now enable wireplumber.service
and finally, reboot your system to enjoy your new pipewire audio server.
reboot
If you need to use pipewire’s bluetooth server, remove the pulseaudio server with:
sudo apt remove pulseaudio-module-bluetooth
How to undo these changes:
First remove the requirements for pipewire:
sudo apt remove pipewire-audio-client-libraries libspa-0.2-bluetooth libspa-0.2-jack
Then reinstall the original pipewire media session:
sudo apt install pipewire-media-session
This command should also remove wireplumber.
systemctl --user --now enable pipewire-media-session
if you get an error that says failed to enable unit. The error should look like this:
“Failed to enable unit: File /home/buzz/.config/systemd/user/pipewire-session-manager.service already exists and is symlink to /usr/lib/systemd/user/wireplumber.service.”
That file will need to be removed.
rm ~/.config/systemd/user/pipewire-session-manager.service
New repeat the previoiusly failed command
systemctl --user --now enable pipewire-media-session
Restart pulseaudio services:
systemctl --user restart pulseaudio
Now just reboot and everything should come back as it was
reboot
If for some reason you still don’t have audio, do the following commands one at a time
sudo systemctl --global --now disable pipewire-pulse.service pipewire-pulse.socket
systemctl --user --now reenable pulseaudio.service pulseaudio.socket
systemctl --user restart pulseaudio
reboot