.TH "pipewire.conf" 5 "1.0.3" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME pipewire.conf \- pipewire\&.conf .SH DESCRIPTION .PP The PipeWire server configuration file .PP .SH "SYNOPSIS" .PP .PP \fI$XDG_CONFIG_HOME/pipewire/pipewire\&.conf\fP .PP \fI/etc/pipewire/pipewire\&.conf\fP .PP \fI/usr/share/pipewire/pipewire\&.conf\fP .PP \fI/usr/share/pipewire/pipewire\&.conf\&.d/\fP .PP \fI/etc/pipewire/pipewire\&.conf\&.d/\fP .PP \fI$XDG_CONFIG_HOME/pipewire/pipewire\&.conf\&.d/\fP .PP .SH "DESCRIPTION" .PP .PP PipeWire is a service that facilitates sharing of multimedia content between devices and applications\&. .PP On startup, the daemon reads a main configuration file to configure itself\&. It executes a series of commands listed in the config file\&. .PP The config files are loaded in the order listed in the \fBSYNOPSIS\fP\&. The environment variables \fCPIPEWIRE_CONFIG_DIR\fP, \fCPIPEWIRE_CONFIG_PREFIX\fP and \fCPIPEWIRE_CONFIG_NAME\fP can be used to specify an alternative config directory, subdirectory and file respectively\&. .PP Next to the configuration file can be a directory with the same name as the file with a \fC\&.d/\fP suffix\&. All directories in the \fBSYNOPSIS\fP directory search paths are traversed in the listed order and the contents of the \fC*\&.conf\fP files inside them are appended to the main configuration file as overrides\&. Object sections are merged and array sections are appended\&. .PP .SH "CONFIGURATION FILE FORMAT" .PP .PP The configuration file format is grouped into sections\&. A section is either a dictionary, {}, or an array, []\&. Dictionary and array entries are separated by whitespace and may be simple value assignment, an array or a dictionary\&. For example: .PP .nf name = value # simple assignment name = { key1 = value1 key2 = value2 } # a dictionary with two entries name = [ value1 value2 ] # an array with two entries name = [ { k = v1 } { k = v2 } ] # an array of dictionaries .fi .PP .PP The configuration files can be expressed in full JSON syntax but for ease of use, a relaxed format may be used where: .PP .IP "\(bu" 2 \fC:\fP to delimit keys and values can be substuted by \fC=\fP or a space\&. .IP "\(bu" 2 \fC"\fP around keys and string can be omitted as long as no special characters are used in the strings\&. .IP "\(bu" 2 \fC,\fP to separate objects can be replaced with a whitespace character\&. .IP "\(bu" 2 \fC#\fP can be used to start a comment until the line end .PP .PP .SH "CONFIGURATION FILE SECTIONS" .PP .PP \fBcontext\&.properties\fP .RS 4 Dictionary\&. These properties configure the PipeWire instance\&. .RE .PP \fBcontext\&.spa-libs\fP .RS 4 Dictionary\&. Maps plugin features with globs to a spa library\&. .RE .PP \fBcontext\&.modules\fP .RS 4 Array of dictionaries\&. Each entry in the array is a dictionary with the \fIname\fP of the module to load, including optional \fIargs\fP and \fIflags\fP\&. Most modules support being loaded multiple times\&. .RE .PP \fBcontext\&.objects\fP .RS 4 Array of dictionaries\&. Each entry in the array is a dictionary containing the \fIfactory\fP to create an object from and optional extra arguments specific to that factory\&. .RE .PP \fBcontext\&.exec\fP .RS 4 Array of dictionaries\&. Each entry in the array is dictionary containing the \fIpath\fP of a program to execute on startup and optional \fIargs\fP\&. .PP This array used to contain an entry to start the session manager but this mode of operation has since been demoted to development aid\&. Avoid starting a session manager in this way in production environment\&. .RE .PP .PP .SH "AUTHORS" .PP .PP The PipeWire Developers ; PipeWire is available from .PP .SH "SEE ALSO" .PP .PP \fBpipewire(1)\fP, \fBpw-mon(1)\fP, \fBlibpipewire-modules(7)\fP