From 02f37c8573afb8cce9f38e8d4a809ea58ca3eae8 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Tue, 10 Oct 2023 09:55:44 +0400 Subject: Extract dbus server startup --- src/dbus/mutter_display_config.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/dbus/mutter_display_config.rs') diff --git a/src/dbus/mutter_display_config.rs b/src/dbus/mutter_display_config.rs index 1807f01d..663d3f8e 100644 --- a/src/dbus/mutter_display_config.rs +++ b/src/dbus/mutter_display_config.rs @@ -3,9 +3,12 @@ use std::sync::{Arc, Mutex}; use serde::Serialize; use smithay::output::Output; +use zbus::fdo::RequestNameFlags; use zbus::zvariant::{OwnedValue, Type}; use zbus::{dbus_interface, fdo}; +use super::Start; + pub struct DisplayConfig { connectors: Arc>>, } @@ -86,3 +89,18 @@ impl DisplayConfig { Self { connectors } } } + +impl Start for DisplayConfig { + fn start(self) -> anyhow::Result { + let conn = zbus::blocking::Connection::session()?; + let flags = RequestNameFlags::AllowReplacement + | RequestNameFlags::ReplaceExisting + | RequestNameFlags::DoNotQueue; + + conn.object_server() + .at("/org/gnome/Mutter/DisplayConfig", self)?; + conn.request_name_with_flags("org.gnome.Mutter.DisplayConfig", flags)?; + + Ok(conn) + } +} -- cgit