pipewire/doc/dox/config/index.md
Pauli Virtanen fd58eec7f8 doc: add reference docs + index for config and env variables
Add reference documentation for configuration settings & node/device
properties.  We should have boring & exhaustive reference lists of all
the options, and an index where they can be looked up as needed.

The content is mostly stolen from the Wiki.

Add pipewire-client.conf.5, pipewire-jack.conf.5, and pipewire-device.7
that try to explain all available configuration settings for native/ALSA/JACK
clients, and parameters & properties devices.

Expand pipewire.conf.5 and pipewire-pulse.conf.5 with lists of supported
properties. Also explain environment variables.

Doxygen doesn't have an indexing mechanism suitable for configuration
settings, so add a simple one using an input filter and use it here.

Tweak styling a bit.
2024-02-18 15:08:35 +02:00

82 lines
2.9 KiB
Markdown

\page page_config Configuration
One of the design goals of PipeWire is to be able to closely control
and configure all aspects of the processing graph.
A fully configured PipeWire setup runs various pieces, each with their
configuration options and files:
- **pipewire**: The PipeWire main daemon that runs and coordinates the processing.
- **pipewire-pulse**: The PipeWire PulseAudio replacement server. It also configures
the properties of the PulseAudio clients connecting to it.
- **wireplumber**: Most configuration of devices is performed by the session manager.
It typically loads ALSA and other devices and configures the profiles, port volumes and more.
The session manager also configures new clients and links them to the targets, as configured
in the session manager policy.
- **PipeWire clients**: Each native PipeWire client also loads a configuration file.
Emulated JACK client also have separate configuration.
# Configuration Settings
Configuration of daemons:
- \ref page_man_pipewire_conf_5
- \ref page_man_pipewire-pulse_conf_5
- [WirePlumber daemon configuration](https://pipewire.pages.freedesktop.org/wireplumber/)
- [Wiki page on PipeWire daemon configuration](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire)
- [Wiki page on PipeWire PulseAudio daemon configuration](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio)
Configuration of devices:
- \ref page_man_pipewire-devices_7
- [WirePlumber configuration](https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration.html)
- [Wiki page on device runtime settings](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-Devices)
Configuration for client applications, either connecting via the
native PipeWire interface, or the emulated ALSA, JACK, or PulseAudio
interfaces:
- \ref page_man_pipewire-client_conf_5
- \ref page_man_pipewire-jack_conf_5
- \ref page_man_pipewire-pulse_conf_5
- [Wiki page on native clients](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-client)
- [Wiki page on ALSA clients](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-ALSA)
- [Wiki page on JACK clients](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-JACK)
- [Wiki page on PulseAudio clients](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PulseAudio)
# Configuration Index
\ref page_man_pipewire_conf_5 "pipewire.conf"
@SECREF@ pipewire.conf
\ref page_man_pipewire_conf_5 "pipewire-pulse.conf"
@SECREF@ pipewire-pulse.conf
\ref page_man_pipewire_conf_5 "client.conf, client-rt.conf"
@SECREF@ client.conf
\ref page_man_pipewire_conf_5 "jack.conf"
@SECREF@ jack.conf
**Runtime settings**
@SECREF@ pipewire-settings
**Environment variables**
@SECREF@ pipewire-env client-env jack-env pulse-env
**Device properties**
@SECREF@ device-property
**Device parameters**
@SECREF@ device-param