.TH "libpipewire-module-protocol-native" 7 "1.4.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 can communicate\&. .PP .SH "MODULE NAME" .PP .PP \fRlibpipewire-module-protocol-native\fP .PP .SH "MODULE OPTIONS" .PP .PP The module supports the following arguments: .PP .IP "\(bu" 2 \fRsockets\fP: \fR[ { 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 \fR[ { name = "CORENAME" }, { name = "CORENAME-manager" } ]\fP, where \fRCORENAME\fP is the name of the PipeWire core, usually \fRpipewire-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 "CONFIG OVERRIDE" .PP .PP A \fRmodule\&.protocol-native\&.args\fP config section can be added to override the module arguments\&. .PP .PP .nf # ~/\&.config/pipewire/pipewire\&.conf\&.d/my\-protocol\-native\-args\&.conf module\&.protocol\-native\&.args = { sockets = [ { name = "pipewire\-0" } { name = "pipewire\-0\-manager" } ] } .fi .PP .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