Your company here ā€” click to reach over 10,000 unique daily visitors

libpipewire-module-protocol-native - Man Page

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.

Module Name


Module Options

The module supports the following arguments:

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.

The props are copied directly to any client that connects through this server socket and can be used to configure special permissions.

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.

General Options

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:

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.

Example Configuration

context.modules = [
{ name = libpipewire-module-protocol-native }
context.modules = [
 { name = libpipewire-module-protocol-native,
   args = {
       sockets = [
           { name = "pipewire-0" }
           { name = "pipewire-0-manager" }
           { name = "pipewire-1"
             props = { my.connection = "the other one" }

Referenced By


1.2.1 PipeWire