libpipewire-module-protocol-native(7) Miscellaneous Information Manual libpipewire-module-protocol-native(7)

libpipewire-module-protocol-native - Protocol Native

The native protocol module implements the PipeWire communication between a client and a server using unix local sockets.

Normally this module is loaded in both client and server config files so that they cam communicate.

libpipewire-module-protocol-native

The module supports the following arguments:

sockets: [ { name = 'socket-name', owner = 'owner', group = 'group', mode = 'mode', selinux.context = 'context' }, ... ]

Array of Unix socket names and (optionally) owner/permissions to serve, if the context is a server. If not absolute paths, the sockets are created in the default runtime directory.

Has the default value [ { name = 'CORENAME' }, { name = 'CORENAME-manager' } ], where CORENAME is the name of the PipeWire core, usually pipewire-0.

The permissions have no effect for sockets from Systemd socket activation. Those should be configured via the systemd.socket(5) mechanism.

The name of the core is obtained as:

The context will also become a server if:

The socket will be located in the directory obtained by looking at the following environment variables:

The socket address will be written into the notification file descriptor if the following environment variable is set:

PIPEWIRE_NOTIFICATION_FD

When a client connect, the connection will be made to:

A Special remote named 'internal' can be used to make a connection to the local context. This can be done even when the server is not a daemon. It can be used to treat a local context as if it was a server.

context.modules = [
{ name = libpipewire-module-protocol-native }
]

context.modules = [
 { name = libpipewire-module-protocol-native,
   args = { sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ] } }
]

1.0.5 PipeWire