I’ve seen quite a few posts recently about switching between pulseaudio and pipewire in either direction and people having issues. Hopefully this will clear things up.
Switching between them does not have to be complicated. You can just do the following:
If you want Pulseaudio: sudo pacman -S pulseaudio
If you want Pipewire: sudo pacman -S pipewire-pulse
The install of each package will replace and remove the other as they are conflicting packages. The above is all you have to do at it’s simplest form. Too many people start getting crazy with remove package options and it’s not necessary and they end up breaking dependencies and other installed software.
You may have dependency blockers due to optional packages that have to be removed manually first.
For example: removing pulseaudio breaks dependency 'pulseaudio=15.0-1' required by pulseaudio-jack
In which case it is okay to remove them like so: sudo pacman -R pulseaudio-jack sudo pacman -R pulseaudio-equalizer
etc…
If you have alsa and/or jack also installed these are the optional packages you need:
For Pulseaudio sudo pacman -S pulseaudio-alsa pulseaudio-jack
For Pipewire sudo pacman -S pipewire-alsa pipewire-jack
Other related packages are optional and dependant on other software you have installed.
Examples: pulseaudio-qt: needed with both pipewire and pulse for KDE Connect plasma-pa: needed with both pipewire and pulse for KDE tray applet control
To check dependencies for optional packages use: sudo pacman -Qi packagename: for dependencies of packages that are installed sudo pacman -Si packagename: for dependencies of packages not yet installed
or for a shortened simple list: pacman -Qi | sed '/^Depends On/,/^Required By/{ s/^Required By.*$//; H; d }; /^Name/!d; /^Name/{ n;x;}'| sed '/^$/s//==================================================================================/'
For additional information and optional packages check the Arch Wiki Pipewire Pulseaudio
Sure, I’ve got wireplumber too. But, I wanted to keep this as simple as possible for switching audio systems. Whether they have media-session or wireplumber doesn’t matter when switching between the two. media-session is the default dependency when installing pipewire and it will be auto installed if they don’t already have it. I didn’t want to start listing out all the optional packages between the two systems as their wiki’s take care of that.
Perhaps consider a “Keep It Simple Stupid” Pipewire v Pulseaudio switch guide and a “For Advanced Users Only” guide which includes a breakdown of all the optional packages that a user may need to know about. Just a thought
Edit: I think something like this guide could be super useful and maybe even consider it be included in the EndeavourOS wiki
At this point, I’d probably recommend people use PipeWire in all cases and find a fix for whatever issue they’re having (or file a bug) rather than encourage switching between the two. PipeWire is “the future”, it’s already generally more reliable, and PulseAudio is only really useful in certain edge-cases (or e.g. where people have switched and not cleared $HOME/.pulse or $HOME/.config/pulse).
Switching between the two is literally a single pacman command, and the necessary packages are already covered here and here.
Sometimes - but not always - existing PulseAudio cookies (and settings?) can interfere with pipewire-pulse. It’s a weird issue, but then clearing that directory also helps PulseAudio sometimes…
I am since about 6 months on Pulse Audio (after a short time test on Pipewire). I switched today to Pipewire (following all the instructions, deleting .pulse in config, etc…)
After first reboot : all good but very strong cracking sound in BT headphones. After investigation, I could correct this by changing the driver in Plasma Audio configuration GUI. But then… my “line” speakers stop to appear as a device, I only had the laptop built-in speakers and/or the BT headphones…
Switched back to Pulse Audio and all is good again.
Maybe next time I’ll try Wireplumber … but not yet, not yet…
Okay, you are correct! Just to confirm it, on the Pipewire Arch wiki it says:
ALSA clients
Install pipewire-alsa (and remove pulseaudio-alsa if it was installed) to route all application using the ALSA API through PipeWire.
So I guess maybe it’s possible the two could in theory conflict, so it’s probably a good idea to include the removal of pulseaudio-alsa in the EndeavourOS Pipewire wiki since it’s not listed on there. Who’s the one that edit’s wikis?