Switching between Pipewire and Pulseaudio

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

Hope this helps!

11 Likes

That won’t switch you. You need pipewire-pulse instead of pipewire there.

sudo pacman -S pipewire-pulse
8 Likes

Ah good catch! fixed!

3 Likes

It might not hurt to also include that wireplumber can be an optional replacement for pipewire-media-session as discussed here:

1 Like

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 :slight_smile:

Edit: I think something like this guide could be super useful and maybe even consider it be included in the EndeavourOS wiki :wink:

1 Like

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.

2 Likes

Why is there a need to clear $HOME/.config/pulse?

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… :man_shrugging:

1 Like

I’ve not had a problem yet but, I’ll keep it in mind, thanks :slight_smile:

For anyone on an older EndeavourOS setup before Atlantis was released, but is curious to upgrade to pipewire the installation will look like this:

[scott@endeavourOS ~]$ sudo pacman -S --needed pipewire-pulse pipewire-alsa pipewire-jack pipewire-media-session
warning: pipewire-media-session-1:0.4.1-1 is up to date -- skipping
resolving dependencies...
looking for conflicting packages...
:: pipewire-pulse and pulseaudio are in conflict. Remove pulseaudio? [y/N] y
:: pipewire-pulse and pulseaudio-bluetooth are in conflict. Remove pulseaudio-bluetooth? [y/N] y

Package (5)           Old Version  New Version  Net Change  Download Size

pulseaudio            15.0-1                     -5.81 MiB               
pulseaudio-bluetooth  15.0-1                     -0.25 MiB               
extra/pipewire-alsa                1:0.3.40-1     0.00 MiB       0.00 MiB
extra/pipewire-jack                1:0.3.40-1     0.47 MiB       0.10 MiB
extra/pipewire-pulse               1:0.3.40-1     0.43 MiB       0.14 MiB

Total Download Size:    0.25 MiB
Total Installed Size:   0.90 MiB
Net Upgrade Size:      -5.16 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 pipewire-alsa-1:...     4.6 KiB  13.3 KiB/s 00:00 [-----------------------] 100%
 pipewire-jack-1:...   105.9 KiB   127 KiB/s 00:01 [-----------------------] 100%
 pipewire-pulse-1...   146.4 KiB   121 KiB/s 00:01 [-----------------------] 100%
 Total (3/3)           256.9 KiB   202 KiB/s 00:01 [-----------------------] 100%
(3/3) checking keys in keyring                     [-----------------------] 100%
(3/3) checking package integrity                   [-----------------------] 100%
(3/3) loading package files                        [-----------------------] 100%
(3/3) checking for file conflicts                  [-----------------------] 100%
(5/5) checking available disk space                [-----------------------] 100%
:: Processing package changes...
(1/2) removing pulseaudio-bluetooth                [-----------------------] 100%
Removed /etc/systemd/user/sockets.target.wants/pulseaudio.socket.
(2/2) removing pulseaudio                          [-----------------------] 100%
(1/3) installing pipewire-pulse                    [-----------------------] 100%
Created symlink /etc/systemd/user/sockets.target.wants/pipewire-pulse.socket → /usr/lib/systemd/user/pipewire-pulse.socket.
(2/3) installing pipewire-alsa                     [-----------------------] 100%
(3/3) installing pipewire-jack                     [-----------------------] 100%
:: Running post-transaction hooks...
(1/3) Reloading device manager configuration...
(2/3) Arming ConditionNeedsUpdate...
(3/3) Compiling GSettings XML schema files...
[scott@endeavourOS ~]$ 

Edit: pulseaudio-alsa is required by gnome-settings-daemon so if you use Gnome, make sure you don’t accidentally remove that package.

I really don’t understand all this wanting to switch. I haven’t had one issue with any of them. :man_shrugging:

It’s new and shiny :slight_smile:

Also Pipewire should handle Bluetooth better than Pulseaudio.

I had issues with pipewire that i never had with pulseaudio ever

I tried removing pipewire, but it was a no go.

Is there a reason you picked this explicitly?

pipewire-alsa provides pulseaudio-alsa so can be used as a drop-in replacement.

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…

1 Like

I was just installing pipewire based on what the EndeavourOS wiki suggested here which included pipewire-media-session:
https://discovery.endeavouros.com/audio/pipewire/2021/09/

So, you’re saying it’s actually okay then to remove pulseaudio-alsa if you also have pipewire-alsa installed?

1 Like

That makes sense!

Yes.

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?

Question for you, IF i use the 8-27 EOS iso will i still be able to use pulseaudio or will it install pipewire? I had issues & i don’t have an older system see here 5.1 Surround Sound not working on Fresh install - #28 by ricklinux

This issue i believe is what i had.