dwww Home | Manual pages | Find package

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.