diff --git a/modules/module-dbus-connection.c b/modules/module-dbus-connection.c index b337be5e..4d5dfb44 100644 --- a/modules/module-dbus-connection.c +++ b/modules/module-dbus-connection.c @@ -255,10 +255,19 @@ wp_dbus_connection_class_init (WpDBusConnectionClass * klass) WP_PLUGIN_EXPORT GObject * wireplumber__module_init (WpCore * core, WpSpaJson * args, GError ** error) { + g_autofree gchar *plugin_name = NULL; + gboolean is_system_bus = FALSE; + + if (args) + wp_spa_json_object_get (args, + "plugin.name", "s", &plugin_name, + "bus.system", "b", &is_system_bus, + NULL); + return G_OBJECT (g_object_new ( wp_dbus_connection_get_type(), - "name", "dbus-connection", + "name", plugin_name ? plugin_name : "dbus-connection", "core", core, - "bus-type", G_BUS_TYPE_SESSION, + "bus-type", is_system_bus ? G_BUS_TYPE_SYSTEM : G_BUS_TYPE_SESSION, NULL)); } diff --git a/src/config/wireplumber.conf b/src/config/wireplumber.conf index 337e1950..be30851a 100644 --- a/src/config/wireplumber.conf +++ b/src/config/wireplumber.conf @@ -265,9 +265,17 @@ wireplumber.components = [ ## The shared D-Bus connection { name = libwireplumber-module-dbus-connection, type = module + arguments = { plugin.name = dbus-connection, bus.system = false } provides = support.dbus } + ## The shared system D-Bus connection + { + name = libwireplumber-module-dbus-connection, type = module + arguments = { plugin.name = system-dbus-connection, bus.system = true } + provides = support.system-dbus + } + ## Module managing the portal permissions { name = libwireplumber-module-portal-permissionstore, type = module