Stream configuration
Streams are the nodes that applications create to play back or capture audio. WirePlumber remembers their volume, mute state, channel map and target device, and restores them the next time the same application appears.
The settings that control this globally — node.stream.restore-props,
node.stream.restore-target and the default volumes — are described in
Well-known settings. This page describes how to override that behaviour for
individual streams.
- stream.rules
Rules that are matched against a stream's properties when it appears, allowing its properties to be modified. The syntax is the same as for the monitor rules; see Modifying configuration.
Because matching happens on the stream's PipeWire properties, rules can target a specific application:
stream.rules = [ { matches = [ { application.name = "pw-play" } ] actions = { update-props = { state.restore-props = false state.restore-target = false state.default-volume = 1.0 } } } ]
Per-stream state properties
The following properties are read by the state restoring logic. They are most
useful when set through stream.rules, but an application may also set them
on its own nodes.
- state.restore-props
Set to
falseto prevent WirePlumber from restoring this stream's volume, mute state and channel map, even whennode.stream.restore-propsis enabled globally.
- state.restore-target
Set to
falseto prevent WirePlumber from restoring the target device this stream was last linked to, even whennode.stream.restore-targetis enabled globally.
- state.default-volume
The volume to give this stream when it has no previously stored volume. Overrides
node.stream.default-playback-volumeandnode.stream.default-capture-volumefor this stream.
Examples
A commented example fragment ships as stream.conf; see
Example configuration fragments.