pw-config
Configure PipeWire modules and properties
TLDR
List all configuration files that will be used
List all configuration files that will be used by the PipeWire PulseAudio server
List all configuration sections used by the PipeWire PulseAudio server
List the context.properties fragments used by the JACK clients
List the merged context.properties used by the JACK clients
List the merged context.modules used by the PipeWire server and reformat
Display help
SYNOPSIS
pw-config [OPTIONS] [COMMAND]
PARAMETERS
-h, --help
Displays a help message and exits.
-v, --version
Shows the PipeWire version and exits.
-a, --all
Used with the list command to show all available configuration files, including those not yet installed.
-p, --path
Displays the full path to configuration files when used with list or show commands.
-n, --name
Displays only the base name of configuration files when used with list.
-s, --system
Operates on system-wide configuration files (typically in /etc/pipewire/). Requires superuser privileges for installation.
-u, --user
Operates on user-specific configuration files (typically in ~/.config/pipewire/). This is often the default behavior.
-t <directory>, --target <directory>
Specifies an alternative target directory for install or uninstall commands. Overrides default user or system paths.
COMMANDS:
These are positional arguments that define the action to perform on configuration files.
install [<file>...]
Copies specified (or all, if none specified) default PipeWire configuration files to the target directory.
uninstall [<file>...]
Removes specified (or all, if none specified) PipeWire configuration files from the target directory.
list [<file>...]
Lists available or currently installed PipeWire configuration files, potentially filtered by name.
show <file>
Displays the content of a specified PipeWire configuration file.
DESCRIPTION
The pw-config command is a utility provided with the PipeWire multimedia framework. It simplifies the management of PipeWire configuration files by allowing users to easily install, uninstall, list, and show various configuration settings.
PipeWire is a low-latency multimedia graph framework that aims to provide a unified solution for handling audio, video, and hardware streams on Linux. pw-config helps users customize their PipeWire setup without directly modifying system-wide defaults, typically by copying default configuration files from system locations (e.g., /usr/share/pipewire/) to user-editable directories (e.g., ~/.config/pipewire/ or /etc/pipewire/). This enables individual users or system administrators to fine-tune PipeWire's behavior for specific hardware, applications, or performance requirements.
CAVEATS
pw-config requires the PipeWire multimedia framework to be installed on the system.
Modifying PipeWire configuration files can significantly impact audio and video routing, device behavior, and system performance. Exercise caution and back up configurations before making major changes.
The uninstall command only removes files that pw-config previously installed. It will not remove manually created or modified files that were not originally sourced by pw-config.
When using --system, administrative privileges (e.g., sudo) are typically required for install and uninstall operations.
CONFIGURATION FILE STRUCTURE
PipeWire configuration files are typically written in a JSON-like format or in a format parsed by libspa-json, controlling various aspects such as loaded modules, device profiles, stream routing, and performance parameters. Common file types include .conf for main configuration, .modules for loaded SPA (Simple Plugin API) modules, and .rules for conditional logic.
TYPICAL USAGE
A common use case for pw-config is to copy the default PipeWire configuration for a user: pw-config install. Users can then edit these files in ~/.config/pipewire/ to customize their setup, ensuring that system updates to the default configurations in /usr/share/pipewire/ do not overwrite their personal settings.
HISTORY
pw-config emerged as part of the PipeWire project, which began development around 2017 to address shortcomings of existing Linux audio/video frameworks (like PulseAudio and JACK) and provide a modern solution for media processing. As PipeWire gained adoption and became a default component in major Linux distributions, utilities like pw-config were developed to simplify the often complex task of managing its configuration, making it more user-friendly for both end-users and system administrators to customize their multimedia environments.