Getting started

If your distribution ships WirePlumber — which most do — it is probably already installed and running as part of your PipeWire setup. This page is a short tour of how to check that, what you can do from the command line, and where to go next.

If you want to build WirePlumber from source instead, see Installing WirePlumber.

Is it running?

On a systemd-based system:

$ systemctl --user status wireplumber

If it is not running, enable and start it:

$ systemctl --user --now enable wireplumber

See Running the WirePlumber daemon for non-systemd systems and for running WirePlumber by hand.

First commands

wpctl is the command-line control tool. Start with an overview of the graph:

$ wpctl status

This lists the devices, sinks, sources and streams that WirePlumber currently manages, each with an id. Those ids are what the other commands take.

# change the volume of the default sink
$ wpctl set-volume @DEFAULT_SINK@ 50%

# mute and unmute it
$ wpctl set-mute @DEFAULT_SINK@ toggle

# make a different device the default
$ wpctl set-default 47

# look at everything WirePlumber knows about an object
$ wpctl inspect 47

See wpctl(1) for the full list of commands.

Changing the configuration

WirePlumber's own configuration lives in /usr/share/wireplumber/. Do not edit it — it belongs to the package and will be overwritten on upgrade.

Instead, drop a fragment into your own configuration directory, containing only the settings you want to change:

$ mkdir -p ~/.config/wireplumber/wireplumber.conf.d
$ $EDITOR ~/.config/wireplumber/wireplumber.conf.d/50-my-config.conf

Fragments are merged on top of the shipped configuration, so you only need to write the parts you are changing. See Modifying configuration for the details, and Example configuration fragments for ready-made fragments you can copy and uncomment.

Many options can also be changed at runtime, without editing any file:

$ wpctl settings

Getting logs

$ journalctl --user -u wireplumber

To get more detail, raise the log level. This can be done at runtime:

$ wpctl set-log-level D

or for a single run, with an environment variable that also lets you select which parts of WirePlumber you are interested in:

$ WIREPLUMBER_DEBUG=s-linking:D wireplumber

See Debug Logging for the full syntax and the list of topics.

Where to go next