.TH "libpipewire-module-protocol-native" 7 "1.2.7" "PipeWire" \" -*- nroff -*-
.ad l
.nh
.SH NAME
libpipewire-module-protocol-native \- Protocol Native 
.SH DESCRIPTION
.PP
The native protocol module implements the PipeWire communication between a client and a server using unix local sockets\&.
.PP
Normally this module is loaded in both client and server config files so that they cam communicate\&.
.PP
.SH "MODULE NAME"
.PP
.PP
\fClibpipewire-module-protocol-native\fP
.PP
.SH "MODULE OPTIONS"
.PP
.PP
The module supports the following arguments:
.PP
.IP "\(bu" 2
\fCsockets\fP: \fC[ { name = 'socket-name', owner = 'owner', group = 'group', mode = 'mode', selinux\&.context = 'context' }, props = { \&.\&.\&. }, \&.\&.\&. ]\fP
.PP
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\&.
.PP
The props are copied directly to any client that connects through this server socket and can be used to configure special permissions\&.
.PP
Has the default value \fC[ { name = 'CORENAME' }, { name = 'CORENAME-manager' } ]\fP, where \fCCORENAME\fP is the name of the PipeWire core, usually \fCpipewire-0\fP\&.
.PP
The permissions have no effect for sockets from Systemd socket activation\&. Those should be configured via the systemd\&.socket(5) mechanism\&.
.PP
.PP
.SH "GENERAL OPTIONS"
.PP
.PP
The name of the core is obtained as:
.PP
.IP "\(bu" 2
PIPEWIRE_CORE : the environment variable with the name of the core
.IP "\(bu" 2
\fBcore.name\fP : in the context properties
.IP "\(bu" 2
a name based on the process id
.PP
.PP
The context will also become a server if:
.PP
.IP "\(bu" 2
PIPEWIRE_DAEMON : the environment is true
.IP "\(bu" 2
\fBcore.daemon\fP : in the context properties is true
.PP
.PP
The socket will be located in the directory obtained by looking at the following environment variables:
.PP
.IP "\(bu" 2
PIPEWIRE_RUNTIME_DIR
.IP "\(bu" 2
XDG_RUNTIME_DIR
.IP "\(bu" 2
USERPROFILE
.PP
.PP
The socket address will be written into the notification file descriptor if the following environment variable is set:
.PP
.IP "\(bu" 2
PIPEWIRE_NOTIFICATION_FD
.PP
.PP
When a client connect, the connection will be made to:
.PP
.IP "\(bu" 2
PIPEWIRE_REMOTE : the environment with the remote name
.IP "\(bu" 2
\fBremote.name\fP : the property in the context\&.
.IP "\(bu" 2
The default remote named 'pipewire-0'
.PP
.PP
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\&.
.PP
.SH "EXAMPLE CONFIGURATION"
.PP
.PP
.PP
.nf
context\&.modules = [
{ name = libpipewire\-module\-protocol\-native }
]
.fi
.PP
.PP
.PP
.nf
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" }
           }
       ]
   }
 }
]
.fi
.PP
 

