wireplumber(1)
SYNOPSIS
wireplumber [-c|--config-file=FILE] [-p|--profile=PROFILE] [-v|--version]
DESCRIPTION
wireplumber is the WirePlumber daemon, a modular session and policy manager for PipeWire. By itself it does nothing except load the components listed in the selected profile; all the actual management logic — bringing up devices, linking streams, granting permissions to clients — is implemented in those components.
It is normally started as a systemd user service rather than by hand:
$ systemctl --user status wireplumber
OPTIONS
- -c, --config-file=FILE
Use FILE as the main configuration file instead of
wireplumber.conf. The correspondingFILE.d/fragment directory is loaded as well.- -p, --profile=PROFILE
Load PROFILE instead of the default
mainprofile. This is how a second instance is started with only part of the functionality; see Running multiple instances.- -v, --version
Print the version and exit.
ENVIRONMENT
- WIREPLUMBER_DEBUG
Sets the log level and per-topic log levels. See Debug Logging.
- WIREPLUMBER_CONFIG_DIR
Overrides the directory that is searched first for configuration files.
- WIREPLUMBER_DATA_DIR
Overrides the directory that is searched first for data files, such as scripts.
- WIREPLUMBER_MODULE_DIR
Overrides the directory that is searched first for modules.
See Locations of WirePlumber's files for the full search order of each of these.
FILES
Configuration files are looked up in the following directories, listed here from the highest to the lowest priority:
- $XDG_CONFIG_HOME
/wireplumber/ User configuration;
~/.config/wireplumber/unless $XDG_CONFIG_HOME is set.- $XDG_CONFIG_DIRS
/wireplumber/ Host-specific configuration;
/etc/xdg/wireplumber/unless $XDG_CONFIG_DIRS is set./etc/wireplumber/Host-specific configuration, in the compile-time $sysconfdir.
- $XDG_DATA_DIRS
/wireplumber/ Distribution-provided configuration;
/usr/local/share/wireplumber/and/usr/share/wireplumber/unless $XDG_DATA_DIRS is set./usr/share/wireplumber/Configuration that ships with WirePlumber, in the compile-time $datadir.
In each of these directories, wireplumber.conf is the main configuration
file and wireplumber.conf.d/*.conf are fragments that are merged into it.
Only the first wireplumber.conf that is found is loaded, but fragments are
loaded from all the directories, in reverse order of priority, so that a
fragment in a higher priority directory overrides the ones below it.
Scripts and other data files are looked up in a scripts subdirectory of the
following directories, again from the highest to the lowest priority:
- $XDG_DATA_HOME
/wireplumber/ User-provided scripts;
~/.local/share/wireplumber/unless $XDG_DATA_HOME is set.- $XDG_DATA_DIRS
/wireplumber/ Host-specific scripts;
/usr/local/share/wireplumber/and/usr/share/wireplumber/unless $XDG_DATA_DIRS is set./usr/share/wireplumber/The scripts that ship with WirePlumber, in the compile-time $datadir.
The remaining locations are not searched in any order:
/usr/lib/wireplumber-0.5/WirePlumber modules, in the compile-time $libdir. On multiarch systems this is
/usr/lib/<arch-triplet>/wireplumber-0.5/. PipeWire and SPA modules are loaded from PipeWire's own module directories instead.- $XDG_STATE_HOME
/wireplumber/ Saved state: default nodes, device profiles and routes, stream properties and settings that were changed at runtime. This is
~/.local/state/wireplumber/unless $XDG_STATE_HOME is set.
EXIT STATUS
Exit codes follow the conventions of sysexits.h(3head):
- 0 (EX_OK)
Success.
- 64 (EX_USAGE)
Command line usage error.
- 69 (EX_UNAVAILABLE)
A required service was unavailable; typically WirePlumber could not connect to PipeWire.
- 70 (EX_SOFTWARE)
Internal software error.
- 78 (EX_CONFIG)
Configuration error.
SEE ALSO
wpctl(1), wpexec(1), pipewire(1), pw-cli(1), pw-dump(1), sysexits.h(3head)
WirePlumber Documentation: https://pipewire.pages.freedesktop.org/wireplumber/