.\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "WIREPLUMBER" "1" "Sep 03, 2026" "0.5.17" "WirePlumber" .SH NAME wireplumber \- PipeWire Session Manager .SH SYNOPSIS .sp \fBwireplumber\fP [\fB\-c\fP|\fB\-\-config\-file\fP=\fIFILE\fP] [\fB\-p\fP|\fB\-\-profile\fP=\fIPROFILE\fP] [\fB\-v\fP|\fB\-\-version\fP] .SH DESCRIPTION .sp \fBwireplumber\fP 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. .sp It is normally started as a systemd user service rather than by hand: .INDENT 0.0 .INDENT 3.5 .sp .EX $ systemctl \-\-user status wireplumber .EE .UNINDENT .UNINDENT .SH OPTIONS .INDENT 0.0 .TP \fB\-c\fP, \fB\-\-config\-file\fP=\fIFILE\fP Use \fIFILE\fP as the main configuration file instead of \fBwireplumber.conf\fP\&. The corresponding \fBFILE.d/\fP fragment directory is loaded as well. .TP \fB\-p\fP, \fB\-\-profile\fP=\fIPROFILE\fP Load \fIPROFILE\fP instead of the default \fBmain\fP profile. This is how a second instance is started with only part of the functionality; see Running multiple instances \%<#\:daemon-multi-instance>\&. .TP \fB\-v\fP, \fB\-\-version\fP Print the version and exit. .UNINDENT .SH ENVIRONMENT .INDENT 0.0 .TP \fBWIREPLUMBER_DEBUG\fP Sets the log level and per\-topic log levels. See Debug Logging \%<#\:daemon-logging>\&. .TP \fBWIREPLUMBER_CONFIG_DIR\fP Overrides the directory that is searched first for configuration files. .TP \fBWIREPLUMBER_DATA_DIR\fP Overrides the directory that is searched first for data files, such as scripts. .TP \fBWIREPLUMBER_MODULE_DIR\fP Overrides the directory that is searched first for modules. .UNINDENT .sp See Locations of WirePlumber\(aqs files \%<#\:daemon-file-locations> for the full search order of each of these. .SH FILES .sp Configuration files are looked up in the following directories, listed here from the highest to the lowest priority: .INDENT 0.0 .TP .B \fI$XDG_CONFIG_HOME\fP\fB/wireplumber/\fP User configuration; \fB~/.config/wireplumber/\fP unless \fI$XDG_CONFIG_HOME\fP is set. .TP .B \fI$XDG_CONFIG_DIRS\fP\fB/wireplumber/\fP Host\-specific configuration; \fB/etc/xdg/wireplumber/\fP unless \fI$XDG_CONFIG_DIRS\fP is set. .TP .B \fB/etc/wireplumber/\fP Host\-specific configuration, in the compile\-time \fI$sysconfdir\fP\&. .TP .B \fI$XDG_DATA_DIRS\fP\fB/wireplumber/\fP Distribution\-provided configuration; \fB/usr/local/share/wireplumber/\fP and \fB/usr/share/wireplumber/\fP unless \fI$XDG_DATA_DIRS\fP is set. .TP .B \fB/usr/share/wireplumber/\fP Configuration that ships with WirePlumber, in the compile\-time \fI$datadir\fP\&. .UNINDENT .sp In each of these directories, \fBwireplumber.conf\fP is the main configuration file and \fBwireplumber.conf.d/*.conf\fP are fragments that are merged into it. Only the first \fBwireplumber.conf\fP that is found is loaded, but fragments are loaded from \fIall\fP the directories, in reverse order of priority, so that a fragment in a higher priority directory overrides the ones below it. .sp Scripts and other data files are looked up in a \fBscripts\fP subdirectory of the following directories, again from the highest to the lowest priority: .INDENT 0.0 .TP .B \fI$XDG_DATA_HOME\fP\fB/wireplumber/\fP User\-provided scripts; \fB~/.local/share/wireplumber/\fP unless \fI$XDG_DATA_HOME\fP is set. .TP .B \fI$XDG_DATA_DIRS\fP\fB/wireplumber/\fP Host\-specific scripts; \fB/usr/local/share/wireplumber/\fP and \fB/usr/share/wireplumber/\fP unless \fI$XDG_DATA_DIRS\fP is set. .TP .B \fB/usr/share/wireplumber/\fP The scripts that ship with WirePlumber, in the compile\-time \fI$datadir\fP\&. .UNINDENT .sp The remaining locations are not searched in any order: .INDENT 0.0 .TP .B \fB/usr/lib/wireplumber\-0.5/\fP WirePlumber modules, in the compile\-time \fI$libdir\fP\&. On multiarch systems this is \fB/usr/lib/\fP\fI\fP\fB/wireplumber\-0.5/\fP\&. PipeWire and SPA modules are loaded from PipeWire\(aqs own module directories instead. .TP .B \fI$XDG_STATE_HOME\fP\fB/wireplumber/\fP Saved state: default nodes, device profiles and routes, stream properties and settings that were changed at runtime. This is \fB~/.local/state/wireplumber/\fP unless \fI$XDG_STATE_HOME\fP is set. .UNINDENT .SH EXIT STATUS .sp Exit codes follow the conventions of \fBsysexits.h\fP(3head): .INDENT 0.0 .TP \fB0\fP (\fIEX_OK\fP) Success. .TP \fB64\fP (\fIEX_USAGE\fP) Command line usage error. .TP \fB69\fP (\fIEX_UNAVAILABLE\fP) A required service was unavailable; typically WirePlumber could not connect to PipeWire. .TP \fB70\fP (\fIEX_SOFTWARE\fP) Internal software error. .TP \fB78\fP (\fIEX_CONFIG\fP) Configuration error. .UNINDENT .SH SEE ALSO .sp \fBwpctl\fP(1), \fBwpexec\fP(1), \fBpipewire\fP(1), \fBpw\-cli\fP(1), \fBpw\-dump\fP(1), \fBsysexits.h\fP(3head) .sp WirePlumber Documentation: \% .SH Author The WirePlumber Developers .SH Copyright 2020-2025, Collabora & contributors .\" End of generated man page.