Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've heard so much nice things about this, but just can't figure out how to get it to work.

AUR has packages for replacing PA and jack with pipewire, but when I tired this I ended up with a dead ardour and not even timeshift could get me back to a working system.



I have the following packages:

    pipewire-alsa 1:0.3.38-1.1
    pipewire-jack 1:0.3.38-1.1
    pipewire-jack-dropin 3-2
    pipewire-media-session 1:0.3.38-1.1
    pipewire-pulse 1:0.3.38-1.1
As well as

    systemctl --user enable \
      pipewire.service \
      pipewire-media-session.service \
      pipewire-pulse.service
and everything works great. I really like that I can use qjackctl to route every audio app nowadays.


What do I need to remove to get this working without any conflicts?

You mentioned qjackctl, is there a reason I must keep using that instead of having everything defaulted to PW pipe


Everything uses PW pipe.

Pipewire implements the API of all the system it replaces. So you can keep using Jack routing tools while everything is actually using Pipewire.


Does `systemctl --user disable --now pulseaudio` help? Also you can use `enable --now` to enable and start at the same time.


Don't forget to mask pulseaudio, just disabling it isn't enough.


The difference seems to be:

disabled - the service is not started automatically

masked - the service can't be started at all, even explicitly requested by user or app


On Ubuntu at least, I had to mask it otherwise pulseaudio was started again on reboot despite being disabled.


pipewire (and pipewire-jack) has been in the main arch repo for a while now. if you're using an aur package, it probably has issues.


True, you can even choose pipewire with the archinstall installer and it runs great on my machine.


No need for the AUR. It’s in extra in the official repos.

See https://wiki.archlinux.org/title/PipeWire#Installation

I’ve had zero issues.


A reboot is often required to integrate the session changes.

https://wiki.archlinux.org/title/PipeWire

Your session environment might also need to be aware of how to interact with PipeWire, which by default is via pulsaudio compatibility interfaces.

Required (practically, probably pulled in with just pipewire):

pipewire pipewire-media-session pipewire-pulse

Recommended:

pipewire-alsa pipewire-jack lib32-pipewire lib32-pipewire-jack

You might also need to reconfigure your audio settings, but that is unfortunately desktop session specific. (E.G. KDE has it in one place, gnome desktops another, etc)


> "A reboot is often required to integrate the session changes."

"To apply the changes you must restart your computer"

It is just sad.


Restarting your whole session is enough but you must restart every connections between the sound server and applications. Restarting is just often the easiest way to do that because it shutdowns everything and rebooting is extremely fast nowadays but it is not required.


You've always had to basically reboot your computer for big system component changes to be applied, otherwise you'll have some applications running the old system, and some running the new system. Yes, you could close those applications, but that's practically every process in your session, and getting the order right is tricky.

Both PulseAudio and PipeWire work best when running the underlying kernel drivers in "exclusive" mode, which means only one sound server can be running at a time. In order to ensure that works correctly, you need to:

1. Close all applications

2. Shut down PulseAudio and prevent it from auto-restarting

3. Start up PipeWire, and then restart your desktop environment if you want any hope of the volume applet working (or figure out which of the processes to kill if your volume applet in another process)

4. Start up your applications again.

5. There might be some applications that have tried to play audio that you were unaware of! Like your file manager, which can play a custom "bell" for mandatory audio alerts when trying to type in a place that doesn't accept characters. Oops! Better close that down too and start 1-4 over again.

Restarting the computer is an easy and safe way to apply these changes. That people didn't follow all these steps in this exact way meant the computer started to break in strange and unobvious ways, not that it was ever supported.

If you want to help out designing smoother ways to change out core system components without reboots, feel free to do that. The people involved might not find it worth the trouble to fix, though. I think it's just sensible to restart the system.


It's not necessary it's just easy to explain.


Now that it matched feature-wise the leading competitor, truly the year of the linux desktop is now!


If we're lucky, it will take them ages to polish this turd, so effectively you're still good "just" using pulse. Which also broke on my laptop after the last dist-upgrade, and after half an hour of debugging and fiddling I gave up. Found "apulse" which is a small library you can LD_PRELOAD that implements the pulse api but simply translates everything to ALSA. Doesn't support the more advanced stuff from pulse obviously, but works for normal things like Firefox etc.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: