# Access configuration

## main.lua.d/50-default-access-config.lua

Using a similar format as the ALSA monitor, this configuration file is charged to configure the client objects created by PipeWire.

- default_access.properties

  A Lua object that contains generic client configuration properties in the for of key pairs.

  Example:

      default_access.properties = {
        ["enable-flatpak-portal"] = true,
      }

  The above example sets to `true` the `enable-flatpak-portal` property.

  The list of valid properties are:

      ["enable-flatpak-portal"] = true,

  Whether to enable the flatpak portal or not.

- default_access.rules

  This is a Lua array that can contain objects with rules for a client object. Those Lua objects have 2 properties. Similar to the ALSA configuration, the first property is `matches`, which allow users to define rules to match a client object. The second property is `default_permissions`, and it is used to set permissions on the matched client object.

  Example:

      {
        matches = {
          {
            { "pipewire.access", "=", "flatpak" },
          },
        },
        default_permissions = "rx",
      }

  This grants read and execute permissions to all clients that have the `pipewire.access` property set to `flatpak`.

  Possible permissions are any combination of `r`, `w` and `x` for read, write and execute; or `all` for all kind of permissions.