https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/0da29f38181e391160fa8702623050b8544ec775

From 0da29f38181e391160fa8702623050b8544ec775 Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Mon, 4 Apr 2022 14:38:28 +0300
Subject: [PATCH] config: document which options need to be turned off to use
 wp without D-Bus

and actually implement an option for the logind module

Related to: #237
---
 src/config/bluetooth.lua.d/30-bluez-monitor.lua    | 4 +++-
 src/config/bluetooth.lua.d/50-bluez-config.lua     | 8 ++++++++
 src/config/main.lua.d/50-alsa-config.lua           | 4 +++-
 src/config/main.lua.d/50-default-access-config.lua | 3 +++
 4 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/config/bluetooth.lua.d/30-bluez-monitor.lua b/src/config/bluetooth.lua.d/30-bluez-monitor.lua
index 266d3e2f..ba86657f 100644
--- a/src/config/bluetooth.lua.d/30-bluez-monitor.lua
+++ b/src/config/bluetooth.lua.d/30-bluez-monitor.lua
@@ -8,5 +8,7 @@ function bluez_monitor.enable()
     rules = bluez_monitor.rules,
   })
 
-  load_optional_module("logind")
+  if bluez_monitor.properties["with-logind"] then
+    load_optional_module("logind")
+  end
 end
diff --git a/src/config/bluetooth.lua.d/50-bluez-config.lua b/src/config/bluetooth.lua.d/50-bluez-config.lua
index 072504ec..dd8033ff 100644
--- a/src/config/bluetooth.lua.d/50-bluez-config.lua
+++ b/src/config/bluetooth.lua.d/50-bluez-config.lua
@@ -34,6 +34,14 @@ bluez_monitor.properties = {
   -- Register dummy AVRCP player, required for AVRCP volume function.
   -- Disable if you are running mpris-proxy or equivalent.
   --["bluez5.dummy-avrcp-player"] = true,
+
+  -- Enable the logind module, which arbitrates which user will be allowed
+  -- to have bluetooth audio enabled at any given time (particularly useful
+  -- if you are using GDM as a display manager, as the gdm user also launches
+  -- pipewire and wireplumber).
+  -- This requires access to the D-Bus user session; disable if you are running
+  -- a system-wide instance of wireplumber.
+  ["with-logind"] = true,
 }
 
 bluez_monitor.rules = {
diff --git a/src/config/main.lua.d/50-alsa-config.lua b/src/config/main.lua.d/50-alsa-config.lua
index 6c97e8ad..d29b0b6f 100644
--- a/src/config/main.lua.d/50-alsa-config.lua
+++ b/src/config/main.lua.d/50-alsa-config.lua
@@ -7,6 +7,8 @@ alsa_monitor.properties = {
   --["alsa.jack-device"] = false,
 
   -- Reserve devices via org.freedesktop.ReserveDevice1 on D-Bus
+  -- Disable if you are running a system-wide instance, which
+  -- doesn't have access to the D-Bus user session
   ["alsa.reserve"] = true,
   --["alsa.reserve.priority"] = -20,
   --["alsa.reserve.application-name"] = "WirePlumber",
@@ -20,7 +22,7 @@ alsa_monitor.properties = {
 
 alsa_monitor.rules = {
   -- An array of matches/actions to evaluate.
-  -- 
+  --
   -- If you want to disable some devices or nodes, you can apply properties per device as the following example.
   -- The name can be found by running pw-cli ls Device, or pw-cli dump Device
   --{
diff --git a/src/config/main.lua.d/50-default-access-config.lua b/src/config/main.lua.d/50-default-access-config.lua
index 6cf18bed..45cc5b73 100644
--- a/src/config/main.lua.d/50-default-access-config.lua
+++ b/src/config/main.lua.d/50-default-access-config.lua
@@ -1,4 +1,7 @@
 default_access.properties = {
+  -- Enable the use of the flatpak portal integration.
+  -- Disable if you are running a system-wide instance, which
+  -- doesn't have access to the D-Bus user session
   ["enable-flatpak-portal"] = true,
 }
 
-- 
GitLab

