policy_config.endpoints = {
-- [endpoint name] = { endpoint properties }
-
+ ["endpoint.capture"] = {
+ ["media.class"] = "Audio/Source",
+ ["role"] = "Capture",
+ },
["endpoint.multimedia"] = {
["media.class"] = "Audio/Sink",
["role"] = "Multimedia",
["move"] = false, -- moves session items when metadata target.node changes
["follow"] = true, -- moves session items to the default device when it has changed
+ -- 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
+ ["audio.no-dsp"] = false,
+
-- 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)
["duck.level"] = 0.2,
["roles"] = {
+ ["Capture"] = {
+ ["alias"] = { "Multimedia", "Music", "Voice", "Capture" },
+ ["priority"] = 25,
+ ["action.default"] = "cork",
+ ["action.Capture"] = "mix",
+ ["media.class"] = "Audio/Source",
+ },
["Multimedia"] = {
["alias"] = { "Movie", "Music", "Game" },
["priority"] = 25,
-- Create endpoints statically at startup
load_script("static-endpoints.lua", policy_config.endpoints)
--- Create items for nodes that appear in the graph
-load_script("create-item.lua")
+-- Create session items for nodes that appear in the graph
+load_script("create-item.lua", policy_config.policy)
-- Link nodes to each other to make media flow in the graph
load_script("policy-node.lua", policy_config.policy)