#include #include #include #include #include "session_manager.h" #include "sessionmanageradaptor.h" // generated by qt6_add_dbus_adaptor static void signalHandler(int sig) { qDebug() << "Received signal" << sig << "- shutting down"; QCoreApplication::quit(); } int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); app.setApplicationName("ollie-kde"); app.setOrganizationName("ollie"); // Handle SIGTERM/SIGINT gracefully signal(SIGTERM, signalHandler); signal(SIGINT, signalHandler); // Create the session manager (initializes ollie core) SessionManager manager; // Create the D-Bus adaptor (generated from XML) new SessionManagerAdaptor(&manager); // Register on the session bus QDBusConnection bus = QDBusConnection::sessionBus(); if (!bus.isConnected()) { qCritical() << "Cannot connect to D-Bus session bus"; return 1; } if (!bus.registerService("org.ollie.SessionManager")) { qCritical() << "Cannot register D-Bus service org.ollie.SessionManager:" << bus.lastError().message(); return 1; } if (!bus.registerObject("/org/ollie/SessionManager", &manager)) { qCritical() << "Cannot register D-Bus object /org/ollie/SessionManager:" << bus.lastError().message(); return 1; } qDebug() << "ollie-kde daemon started on D-Bus: org.ollie.SessionManager"; return app.exec(); }