Policy Configuration
policy.lua.d/10-default-policy.lua
This file contains generic default policy properties that can be configured.
default_policy.policy
This is a Lua object that contains several properties that change the behavior of the default WirePlumber policy.
Example:
default_policy.policy = { ["move"] = true, }
The above example will set the
move
policy property totrue
.The list of supported properties are:
["move"] = true
Moves session items when metadata
target.node
changes.["follow"] = true
Moves session items to the default device when it has changed.
["audio.no-dsp"] = false
Set to
true
to disable channel splitting & merging on nodes and enable passthrough of audio in the same format as the format of the device. Note that this breaks JACK support; it is generally not recommended.["duck.level"] = 0.3
How much to lower the volume of lower priority streams when ducking. Note that this is a linear volume modifier (not cubic as in PulseAudio).
policy.lua.d/50-endpoints-config.lua
Endpoints are objects that can group multiple clients into different groups or roles. This is useful if a user wants to apply specific actions when a client is connected to a particular role/endpoint. This configuration file allows users to configure those endpoints and their actions.
default_policy.policy.roles
This is a Lua array with objects defining the actions of each role.
Example:
default_policy.policy.roles = { ["Multimedia"] = { ["alias"] = { "Movie", "Music", "Game" }, ["priority"] = 10, ["action.default"] = "mix", } ["Notification"] = { ["priority"] = 20, ["action.default"] = "duck", ["action.Notification"] = "mix", } }
The above example defines actions for both
Multimedia
andNotification
roles. Since the Notification role has more priority than the Multimedia role, when a client connects to the Notification endpoint, it willduck
the volume of all Multimedia clients. If Multiple Notification clients want to play audio, only the Notifications audio will be mixed.Possible values of actions are:
mix
(Mixes audio),duck
(Mixes and lowers the audio volume) orcork
(Pauses audio).default_policy.policy.endpoints
This is a Lua array with objects defining the endpoints that the user wants to create.
Example:
default_policy.endpoints = { ["endpoint.multimedia"] = { ["media.class"] = "Audio/Sink", ["role"] = "Multimedia", } }, ["endpoint.notifications"] = { ["media.class"] = "Audio/Sink", ["role"] = "Notification", }
This example creates 2 endpoints, with names
endpoint.multimedia
andendpoint.notifications
; and assigned rolesMultimedia
andNotification
respectively. Both endpoints haveAudio/Sink
media class, and so are only used for playback.