pipewire-pulse.conf(5) File Formats Manual pipewire-pulse.conf(5)
NAME
pipewire-pulse.conf - pipewire-pulse.conf
DESCRIPTION
The PipeWire Pulseaudio server configuration file
SYNOPSIS
$XDG_CONFIG_HOME/pipewire/pipewire-pulse.conf
/etc/pipewire/pipewire-pulse.conf
/usr/share/pipewire/pipewire-pulse.conf
/usr/share/pipewire/pipewire-pulse.conf.d/
/etc/pipewire/pipewire-pulse.conf.d/
$XDG_CONFIG_HOME/pipewire/pipewire-pulse.conf.d/
DESCRIPTION
Configuration for PipeWire's PulseAudio-compatible daemon.
The configuration file format and lookup logic is the same as for
pipewire.conf(5).
Drop-in configuration files pipewire-pulse.conf.d/*.conf can be used,
and are recommended. See pipewire.conf(5).
CONFIGURATION FILE SECTIONS
stream.properties
Dictionary. These properties configure the PipeWire Pulseaudio
server properties.
stream.rules
Dictionary. These properties configure the PipeWire Pulseaudio
server properties.
pulse.properties
Dictionary. These properties configure the PipeWire Pulseaudio
server properties.
pulse.cmd
Array of dictionaries. A set of commands to be executed on startup.
pulse.rules
Array of dictionaries. A set of match rules and actions to apply to
clients.
See libpipewire-module-protocol-pulse(7) for the detailed description.
In addition, the PipeWire context configuration sections may also be
specified, see pipewire.conf(5).
STREAM PROPERTIES
The stream.properties section contains properties for streams created by
the pipewire-pulse server.
Available options are described in pipewire-client.conf(5)
stream.properties.
Some of these properties map to the PulseAudio /etc/pulse/default.pa
config entries as follows:
PulseAudio PipeWire Notes remixing-use-all-sink-channels
channelmix.upmix remixing-produce-lfe channelmix.lfe-cutoff Set to
> 0 to enable remixing-consume-lfe channelmix.mix-lfe lfe-
crossover-freq channelmix.lfe-cutoff
Example
# ~/.config/pipewire/pipewire-pulse.conf.d/custom.conf
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.disable = false
#resample.quality = 4
#monitor.channel-volumes = false
#channelmix.disable = false
#channelmix.min-volume = 0.0
#channelmix.max-volume = 10.0
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150.0
#channelmix.fc-cutoff = 12000.0
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
#dither.method = none # rectangular, triangular, triangular-hf, wannamaker3, shaped5
#debug.wav-path = ""
}
STREAM RULES
The stream.rules section works the same as pipewire-client.conf(5)
stream.rules.
PULSEAUDIO PROPERTIES
For pulse.properties section, see libpipewire-module-protocol-pulse(7)
for available options.
PULSEAUDIO RULES
For each client, a set of rules can be written in pulse.rules section to
configure quirks of the client or to force some pulse specific stream
configuration.
The general look of this section is as follows and follows the layout of
match rules, see pipewire(1).
See libpipewire-module-protocol-pulse(7) for available options.
Example
# ~/.config/pipewire/pipewire-pulse.conf.d/custom.conf
pulse.rules = [
{
# skype does not want to use devices that don't have an S16 sample format.
matches = [
{ application.process.binary = "teams" }
{ application.process.binary = "teams-insiders" }
{ application.process.binary = "skypeforlinux" }
]
actions = { quirks = [ force-s16-info ] }
}
{
# speech dispatcher asks for too small latency and then underruns.
matches = [ { application.name = "~speech-dispatcher*" } ]
actions = {
update-props = {
pulse.min.req = 1024/48000 # 21ms
pulse.min.quantum = 1024/48000 # 21ms
}
}
}
]
PULSEAUDIO COMMANDS
As part of the server startup procedure you can execute some additional
commands with the pulse.cmd section in pipewire-pulse.conf.
# ~/.config/pipewire/pipewire-pulse.conf.d/custom.conf
pulse.cmd = [
{ cmd = "load-module" args = "module-always-sink" flags = [ ] }
{ cmd = "load-module" args = "module-switch-on-connect" }
{ cmd = "load-module" args = "module-gsettings" flags = [ "nofail" ] }
]
...
Additional commands can also be run via the context.exec section, see
pipewire.conf(5).
Supported commands:
load-module
Load the specified Pulseaudio module on startup, as if using
pactl(1) to load the module.
PULSEAUDIO MODULES
For contents of section pulse.modules, see pipewire-pulse-modules(7).
AUTHORS
The PipeWire Developers
<https://gitlab.freedesktop.org/pipewire/pipewire/issues>; PipeWire is
available from <https://pipewire.org>
SEE ALSO
libpipewire-module-protocol-pulse(7), pipewire.conf(5), pipewire-
pulse(1), pipewire-pulse-modules(7)
PipeWire 1.4.2 pipewire-pulse.conf(5)
Generated by dwww version 1.16 on Sat Oct 3 07:36:08 CEST 2026.