From e5366d34b5e1f06a1233667cded3ef05b482778c Mon Sep 17 00:00:00 2001 From: gnusenpai Date: Thu, 18 Jul 2024 20:03:02 +0000 Subject: [PATCH] core: Fix running without logind (#76) * dbus: Move logind matches inside try-catch * core: Don't exit when logind is absent logind being missing is non-fatal --- src/core/Hypridle.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/core/Hypridle.cpp b/src/core/Hypridle.cpp index d7732e4..9920f40 100644 --- a/src/core/Hypridle.cpp +++ b/src/core/Hypridle.cpp @@ -476,16 +476,15 @@ void CHypridle::setupDBUS() { try { auto reply = proxy->callMethod(method); reply >> path; + + m_sDBUSState.connection->addMatch("type='signal',path='" + path + "',interface='org.freedesktop.login1.Session'", handleDbusLogin, sdbus::floating_slot_t{}); + m_sDBUSState.connection->addMatch("type='signal',path='/org/freedesktop/login1',interface='org.freedesktop.login1.Manager'", handleDbusSleep, sdbus::floating_slot_t{}); } catch (std::exception& e) { - Debug::log(CRIT, "Couldn't connect to logind service ({})", e.what()); - exit(1); + Debug::log(WARN, "Couldn't connect to logind service ({})", e.what()); } Debug::log(LOG, "Using dbus path {}", path.c_str()); - m_sDBUSState.connection->addMatch("type='signal',path='" + path + "',interface='org.freedesktop.login1.Session'", handleDbusLogin, sdbus::floating_slot_t{}); - m_sDBUSState.connection->addMatch("type='signal',path='/org/freedesktop/login1',interface='org.freedesktop.login1.Manager'", handleDbusSleep, sdbus::floating_slot_t{}); - if (!IGNORE_SYSTEMD_INHIBIT) { m_sDBUSState.connection->addMatch("type='signal',path='/org/freedesktop/login1',interface='org.freedesktop.DBus.Properties'", handleDbusBlockInhibitsPropertyChanged, sdbus::floating_slot_t{});