The wikis are now using the new authentication system.
If you did not migrate your account yet, visit


Jump to: navigation, search
Pipewire Is a graph based audio system developed by Wim Taymans, as part of the GNOME project. Is designed to work with devices from containers and flatpak applications. It aim to work alongside Wayland as audio system on top of ALSA


Pipewire is a system that work on top of the alsa kernel infrastructure like Pulseaudio or Jack. The daemon offer also compatibility layers for pulseaudio and jack based applications.


Pipewire is available from the main openSUSE repositories as pipewire and can be executed in local environment as

pipewire -n name

to execute the daemon with the name name (the -n option can be omitted, it will default on pipewire-0) Otherwise, it is possible to enable pipewire via systemd using:

systemctl --user enable --now pipewire.socket # or pipewire.service
systemctl --user enable --now pipewire-media-session.service # version o.3.23 and greater

The socket activation only starts the service when required, which is usually sufficient. Alternatively the user service can be always started when the user logs in by replacing pipewire.socket with pipewire.service.

Then restart the machine or start manually the services with

systemctl --user start pipewire.service
systemctl --user start pipewire-media-session.service

{{Info|Flatpak include Pipewire as recommended package, during an update with recommends on is possible that pipewire was already installed.


In addition is available pipewire-tools. this package collect many tools to use pipewire.

pw-cat include a collection of tools to play and record media using pipewire natively. pw-play and pw-midiplay to play and play midi files, pw-record and pw-recordmidi to record raw and midi audio.

pw-cli Is an actual command line interface, it load and remove modules, list objects and devices in the instance, connect and interact with a remote instance of pipewire manage nodes and links.

pw-dot prompt the pipewire graph in a .dot formatted file. It can be read with

dot -Tpng -o output.png

pw-dump does the same as pw-dot, but it prompt in the output instead of a file.

pw-mon is a monitor for pipewire, in monitor objects in a pipewire instance.


pw-profiler, with the profiler module loaded, connect and log the data from a local/remote instance. This program can be executed as

pw-profiler -o name

the option -o is optional and by default the program output on profiler.log.

When the program is stopped, it uses gnuplot to generate a .svg file alongside a .html to better view the profile from browser.

Pulseaudio and Jack compatibility

Warning: These compatibility packages are in conflict with Pulseaudio and Jack, all the packages that have these two as dependencies can be forcefully installed on the system and they will just work but it can create dependencies issues during updates or on the long run if dependencies change

Pipewire can replace Pulseaudio and Jack. The packages pipewire-pulseaudio or pipewire-jack will install compatibility libraries on the place of the one used by Pulseaudio and Jack.

These programs have to be started as daemons, so execute

pipewire-pulse # or
systemctl --user enable --now pipewire-pulse.{service,socket}

for Pulseaudio, and


for Jack.

Is possible to install pulseaudio mixers and software with the compatibility library installed, but the installation have to be forced, because these tools require pulseaudio as dependency and pulseaudio is blocked because of conflict

Example: Pavucontrol

Is possible to install and use pavucontrol on top of pipewire instead of pulseaudio. To install the program use

zypper in --force pipewire-pulseaudio


zypper in pipewire-pulseaudio

And selecting the third option (install anyway breaking the dependency) when zypper prompt the dependency problem.

Then start pipewire and pipewire-pulse if not already started and execute pavucontrol.

The mixer will detect the various sources and devices connected.

How to disable pipewire?

To use plain ALSA do

systemctl --user disable --now pipewire.{socket,service}
rm /etc/alsa/conf.d/99-pipewire-default.conf /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf

and to get it back later, do

zypper in -f pipewire
systemctl --user enable --now pipewire.{socket,service}