pipewire-client.conf(5) File Formats Manual pipewire-client.conf(5)
NAME
pipewire-client.conf - client.conf
DESCRIPTION
The PipeWire client configuration file.
SYNOPSIS
$XDG_CONFIG_HOME/pipewire/client.conf
/etc/pipewire/client.conf
/usr/share/pipewire/client.conf
/usr/share/pipewire/client.conf.d/
/etc/pipewire/client.conf.d/
$XDG_CONFIG_HOME/pipewire/client.conf.d/
DESCRIPTION
Configuration for PipeWire native clients, and for PipeWire's ALSA
plugin.
A PipeWire native client program selects the default config to load, and
if nothing is specified, it usually loads client.conf.
The configuration file format and lookup logic is the same as for
pipewire.conf(5).
Drop-in configuration files client.conf.d/*.conf can be used, and are
recommended. See pipewire.conf(5).
CONFIGURATION FILE SECTIONS
stream.properties
Configures options for native client streams.
stream.rules
Configures rules for native client streams.
alsa.properties
ALSA client configuration.
alsa.rules
ALSA client match rules.
In addition, the PipeWire context configuration sections may also be
specified, see pipewire.conf(5).
STREAM PROPERTIES
The client configuration files contain a stream.properties section that
configures the options for client streams:
# ~/.config/pipewire/client.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.lock-volume = 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 = ""
}
Some of the properties refer to different aspects of the stream:
• General stream properties to identify the stream.
• General stream properties to classify the stream.
• How it is going to be scheduled by the graph.
• How it is going to be linked by the session manager.
• How the internal processing will be done.
• Properties to configure the media format.
A list of object properties that can be applied to streams can be found
in pipewire-props(7) Common Node Properties and pipewire-props(7) Audio
Adapter Properties
STREAM RULES
You can add match rules, see pipewire(1) to set properties for certain
streams and filters.
stream.rules and filter.rules provides an update-props action that takes
an object with properties that are updated on the node object of the
stream and filter.
Add a stream.rules or filter.rules section in the config file like this:
# ~/.config/pipewire/client.conf.d/custom.conf
stream.rules = [
{
matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
application.process.binary = "firefox"
}
]
actions = {
update-props = {
node.name = "My Name"
}
}
}
]
Will set the node.name of Firefox to 'My Name'.
ALSA CLIENT PROPERTIES
An alsa.properties section can be added to configure client applications
that connect via the PipeWire ALSA plugin.
# ~/.config/pipewire/client.conf.d/custom.conf
alsa.properties = {
#alsa.deny = false
#alsa.format = 0
#alsa.rate = 0
#alsa.channels = 0
#alsa.period-bytes = 0
#alsa.buffer-bytes = 0
#alsa.volume-method = cubic # linear, cubic
}
alsa.deny
Denies ALSA access for the client. Useful in rules or PIPEWIRE_ALSA
environment variable.
alsa.format
The ALSA format to use for the client. This is an ALSA format name.
default 0, which is to allow all formats.
alsa.rate
The samplerate to use for the client. The default is 0, which is to
allow all rates.
alsa.channels
The number of channels for the client. The default is 0, which is to
allow any number of channels.
alsa.period-bytes
The number of bytes per period. The default is 0 which is to allow
any number of period bytes.
alsa.buffer-bytes
The number of bytes in the alsa buffer. The default is 0, which is
to allow any number of bytes.
alsa.volume-method = cubic | linear
This controls the volume curve used on the ALSA mixer. Possible
values are cubic and linear. The default is to use cubic.
ALSA CLIENT RULES
It is possible to set ALSA client specific properties by using Match
rules, see pipewire(1). You can set any of the above ALSA properties or
any of the stream.properties.
Example
# ~/.config/pipewire/client.conf.d/custom.conf
alsa.rules = [
{ matches = [ { application.process.binary = "resolve" } ]
actions = {
update-props = {
alsa.buffer-bytes = 131072
}
}
}
]
ENVIRONMENT VARIABLES
See pipewire(1) for common environment variables. Many of these also
apply to client applications.
The environment variables also influence ALSA applications that are
using PipeWire's ALSA plugin.
PIPEWIRE_ALSA
This can be an object with properties from alsa.properties or
stream.properties that will be used to construct the client and
streams.
For example:
PIPEWIRE_ALSA='{ alsa.buffer-bytes=16384 node.name=foo }' aplay ...
Starts aplay with custom properties.
PIPEWIRE_NODE
Instructs the ALSA client to link to a particular sink or source
object.serial or node.name.
For example:
PIPEWIRE_NODE=alsa_output.pci-0000_00_1b.0.analog-stereo aplay ...
Makes aplay play on the give audio sink.
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-client.conf(5)
Generated by dwww version 1.16 on Sat Oct 3 07:36:00 CEST 2026.