dwww Home | Manual pages | Find package

libpipew...k-factory(7) Miscellaneous Information Manuallibpipew...k-factory(7)

NAME
       libpipewire-module-link-factory - Link Factory

DESCRIPTION
       Allows clients to create links between ports.

       This module creates a new factory. Clients that can see the factory can
       use the factory name (link-factory) to create new link objects with
       pw_core_create_object(). It is also possible to create objects in the
       config file.

       Object of the PW_TYPE_INTERFACE_Link will be created and a proxy to it
       will be returned.

       As an argument to the create_object call, a set of properties will
       control what ports will be linked.

MODULE NAME
       libpipewire-module-link-factory

MODULE OPTIONS
       • allow.link.passive:  if  the link.passive property is allowed. Default
         false. By default, the core will decide when a link is  passive  based
         on the properties of the node and ports.

PROPERTIES FOR THE CREATE_OBJECT CALL
       • link.output.node:  The  output  node  to  use.  This  can  be the node
         object.id, node.name, node.nick, node.description or object.path of  a
         node.  When  the property is not given or NULL, the output port should
         be specified.

       • link.output.port: The  output  port  to  link.  This  can  be  a  port
         object.id,  port.name, port.alias or object.path. If an output node is
         specified, the port must belong to the node. Finding a port in a  node
         using  the  port.id  is  deprecated and may lead to unexpected results
         when the port.id also matches an  object.id.  If  no  output  port  is
         given,  an  output node must be specified and a random (unlinked) port
         will be used from the node.

       • link.input.node:  The  input  node  to  use.  This  can  be  the  node
         object.id,  node.name, node.nick, node.description or object.path of a
         node. When the property is not given or NULL, the input port should be
         specified.

       • link.input.port: The input port to link. This can be a port object.id,
         port.name, port.alias or object.path. If an input node  is  specified,
         the  port  must belong to the node. Finding a port in a node using the
         port.id is deprecated and may lead  to  unexpected  results  when  the
         port.id also matches an object.id. If no input port is given, an input
         node  must be specified and a random (unlinked) port will be used from
         the node.

       • object.linger: Keep the link around even when the client that  created
         it is gone.

       • link.passive: The link is passive, meaning that it will not keep nodes
         busy.  By  default  this  property  is  ignored  and the node and port
         properties are used to determine the passive state of the link.

EXAMPLE CONFIGURATION
       The module is usually added to the config  file  of  the  main  pipewire
       daemon.

       context.modules = [
       { name = libpipewire-link-factory
         args = {
             #allow.link.passive = false
         }
       }
       ]

CONFIG OVERRIDE
       A  module.link-factory.args  config section can be added to override the
       module arguments.

       # ~/.config/pipewire/pipewire.conf.d/my-link-factory-args.conf

       module.link-factory.args = {
           #allow.link.passive = false
       }

CONFIG OBJECTS
       To  create   an   object   from   the   factory,   one   can   use   the
       pw_core_create_object()  method or make an object in the context.objects
       section like:

       context.objects = [
       { factory = link-factory
           args = {
               link.output.node = system
               link.output.port = capture_2
               link.input.node  = my-mic
               link.input.port  = input_FR
           }
       }

       Note that this only works when the ports that  need  to  be  linked  are
       available at the time the config file is parsed.

SEE ALSO
       • pw-link: a tool to manage port links

PipeWire                             1.4.2              libpipew...k-factory(7)

Generated by dwww version 1.16 on Sat Oct 3 10:41:20 CEST 2026.