- bookworm-backports 1.2.5-1~bpo12+1
- testing 1.2.5-1
- unstable 1.2.6-1
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/
$XDG_CONFIG_HOME/pipewire/client-rt.conf
/etc/pipewire/client-rt.conf
/usr/share/pipewire/client-rt.conf
/usr/share/pipewire/client-rt.conf.d/
/etc/pipewire/client-rt.conf.d/
$XDG_CONFIG_HOME/pipewire/client-rt.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 ALSA plugin uses the client-rt.conf file, as do some PipeWire native clients such as pw-cat(1).
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
stream.rules
alsa.properties
alsa.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-rt.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
alsa.format
alsa.rate
alsa.channels
alsa.period-bytes
alsa.buffer-bytes
alsa.volume-method = cubic | linear
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-rt.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
For example:
PIPEWIRE_ALSA='{ alsa.buffer-bytes=16384 node.name=foo }' aplay ...
Starts aplay with custom properties.
PIPEWIRE_NODE
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)
1.2.6 | PipeWire |