WirePlumber

From Gentoo Wiki
Jump to:navigation Jump to:search

WirePlumber is a modular session / policy manager for PipeWire, enabling functionality such as saving and restoring session state. More generally, WirePlumber allows one to:

  • enable devices;
  • configure devices;
  • configure client (e.g. application) access control;
  • configure PipeWire nodes;
  • manage links between PipeWire nodes;
  • manage metadata.


Installation

Kernel

KERNEL
Device Drivers --->
 <*> Sound card support Search for <code>CONFIG_SOUND</code> to find this item. --->
 <*> Advanced Linux Sound Architecture Search for <code>CONFIG_SND</code> to find this item. --->
 -*- Sound Proc FS Support Search for <code>CONFIG_SND_PROC_FS</code> to find this item.
 [*] Verbose procfs contents Search for <code>CONFIG_SND_VERBOSE_PROCFS</code> to find this item.

USE flags

USE flags for media-video/wireplumber Replacement for pipewire-media-session

+doc Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
elogind Enable session tracking via sys-auth/elogind
system-service Install systemd unit files for running as a system service. Not recommended.
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
Data provided by the Gentoo Package Database · Last update: 2026年07月08日 02:33 More information about USE flags

Emerge

root #emerge --ask media-video/wireplumber

Configuration

Generally, WirePlumber should work "out of the box", without any need for manual configuration.

Files

If manual configuration is required, a sample WirePlumber configuration file is available at /usr/share/wireplumber/wireplumber.conf; this file can be copied to $XDG_CONFIG_HOME/wireplumber/ and modified as required. The $XDG_CONFIG_HOME/wireplumber/ directory might need to be created manually.

WirePlumber state is stored in $XDG_STATE_HOME/wireplumber/[1] .

Note
By default, XDG_CONFIG_HOME is set to ~/.config/, and XDG_STATE_HOME is set to ~/.local/state/. Refer to XDG/Base_Directories for further information.

Services

systemd

user $systemctl --user enable --now wireplumber.service

OpenRC

To enable the WirePlumber service:

user $rc-update --user add wireplumber default

To start the service without enabling it:

user $rc-service --user wireplumber start

Usage

WirePlumber is controlled by wpctl(1) . As of WirePlumber 0.5.15:

user $wpctl -h
Usage:
 wpctl [OPTION...] COMMAND [COMMAND_OPTIONS] - WirePlumber Control CLI
Commands:
 status 
 list [audio|video] [devices|sinks|sources]
 get-volume ID
 inspect ID
 set-default ID
 set-volume ID VOL[%][-/+]
 set-mute ID 1|0|toggle
 set-profile ID INDEX
 set-route ID INDEX
 clear-default [ID]
 settings [KEY] [VAL]
 set-log-level [ID] LEVEL
 reset 
Help Options:
 -h, --help Show help options
Pass -h after a command to see command-specific options

The special identifiers @DEFAULT_SINK@, @DEFAULT_AUDIO_SINK@, @DEFAULT_SOURCE@, @DEFAULT_AUDIO_SOURCE@, and @DEFAULT_VIDEO_SOURCE@ can be used when an ID is required; refer to the wpctl(1) man page for details.

Examples

Get information about current PipeWire state, including node IDs and currently active devices:

user $wpctl status

Get list of available audio sinks:

user $wpctl list audio sinks

Get volume of current default sink:

user $wpctl get-volume @DEFAULT_SINK@

Set volume of current default sink to 90%:

user $wpctl set-volume @DEFAULT_SINK@ 90%

Decrease volume of current default audio sink by 5%:

user $wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-

Increase volume of current default audio sink by 5%:

user $wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+

Toggle muting of current default audio sink:

user $wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle

List details of current WirePlumber settings:

user $wpctl settings

List only the Id and Value fields for current settings:

user $wpctl settings | sed -n '/Id:/p;/Value:/p'

Save current settings:

user $wpctl settings --save

Troubleshooting

Refer to the WirePlumber/troubleshooting page.

See also

  • PipeWire — low-latency, graph-based, processing engine and server, for interfacing with audio and video devices.

External resources

References