/usr/share/wireplumber/scripts/linking
NameSizeModeActions
find-audio-group-target.lua27790644editdlrm
find-best-target.lua40680644editdlrm
find-default-target.lua16900644editdlrm
find-defined-target.lua43530644editdlrm
find-filter-target.lua29710644editdlrm
find-media-role-target.lua19650644editdlrm
find-user-target.lua.example9250644editdlrm
get-filter-from-target.lua35980644editdlrm
link-target.lua53520644editdlrm
mpris-pause.lua102560644editdlrm
prepare-link.lua38780644editdlrm
rescan-media-role-links.lua66170644editdlrm
rescan.lua85500644editdlrm
Edit: /usr/share/wireplumber/scripts/linking/find-user-target.lua.example (925B)
-- WirePlumber -- -- Copyright © 2022 Collabora Ltd. -- -- SPDX-License-Identifier: MIT -- -- example of a user injectible hook to link a node to a custom target lutils = require ("linking-utils") log = Log.open_topic ("s-linking") SimpleEventHook { name = "linking/sample-find-user-target", before = "linking/find-defined-target", interests = { EventInterest { Constraint { "event.type", "=", "select-target" }, }, }, execute = function (event) local source, om, si, si_props, si_flags, target = lutils:unwrap_select_target_event (event) -- bypass the hook if the target is already picked up if target then return end log:info (si, "in find-user-target") -- implement logic here to find a suitable target -- store the found target on the event, -- the next hooks will take care of linking event:set_data ("target", target) end }:register ()