The PulseAudio client library reads configuration directives from a configuration file on startup. If the per-user file ~/.config/pulse/client.conf exists, it is used, otherwise the system configuration file /etc/pulse/client.conf is used. In addition to those main files, configuration directives can also be put in files under directories ~/.config/pulse/client.conf.d/ and /etc/pulse/client.conf.d/. Those files have to have the .conf file name extension, but otherwise the file names can be chosen freely. The files under client.conf.d are processed in alphabetical order. In case the same option is set in multiple files, the last file to set an option overrides earlier files. The main client.conf file is processed first, so options set in files under client.conf.d override the main file.
The configuration file is a simple collection of variable declarations. If the configuration file parser encounters either ; or # it ignores the rest of the line until its end.
For the settings that take a boolean argument the values true, yes, on and 1 are equivalent, resp. false, no, off, 0.
default-sink= The default sink to connect to. If specified overwrites the setting in the daemon. The environment variable $PULSE_SINK however takes precedence.
default-source= The default source to connect to. If specified overwrites the setting in the daemon. The environment variable $PULSE_SOURCE however takes precedence.
default-server= The default sever to connect to. The environment variable $PULSE_SERVER takes precedence.
autospawn= Autospawn a PulseAudio daemon when needed. Takes a boolean value, defaults to yes. Note that setting this to "no" doesn't disable the systemd service. The autospawn option is only meant to be used on systems without systemd. If you use systemd to start PulseAudio, use "systemctl --user stop pulseaudio.service pulseaudio.socket" to stop the daemon temporarily, or "systemctl --user mask pulseaudio.service pulseaudio.socket" to permanently disable the units (the "disable" command of systemctl probably won't work, because the pulseaudio.socket unit is often installed to /usr/lib/systemd/user/sockets.target.wants/, which makes it impossible to disable the unit with the "disable" command).
daemon-binary= Path to the PulseAudio daemon to run when autospawning. Defaults to a path configured at compile time.
extra-arguments= Extra arguments to pass to the PulseAudio daemon when autospawning. Defaults to --log-target=syslog
cookie-file= Specify the path to the PulseAudio authentication cookie. Defaults to ~/.config/pulse/cookie.
enable-shm= Enable data transfer via POSIX or memfd shared memory. Takes a boolean argument, defaults to yes. If set to no, communication with the server will be exclusively done through data-copy over sockets.
enable-memfd=. Enable data transfer via memfd shared memory. Takes a boolean argument, defaults to yes.
shm-size-bytes= Sets the shared memory segment size for clients, in bytes. If left unspecified or is set to 0 it will default to some system-specific default, usually 64 MiB. Please note that usually there is no need to change this value, unless you are running an OS kernel that does not do memory overcommit.
auto-connect-localhost= Automatically try to connect to localhost via IP. Enabling this is a potential security hole since connections are only authenticated one-way and a rogue server might hence fool a client into sending it its private (e.g. VoIP call) data. This was enabled by default on PulseAudio version 0.9.21 and older. Defaults to no.
auto-connect-display= Automatically try to connect to the host X11's $DISPLAY variable is set to. The same security issues apply as to auto-connect-localhost=. Defaults to no.
The PulseAudio Developers <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>; PulseAudio is available from http://pulseaudio.org/