This repository has been archived on 2026-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
ollie-kde/daemon/main.cpp

54 lines
1.5 KiB
C++

#include <QCoreApplication>
#include <QDBusConnection>
#include <QDebug>
#include <csignal>
#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();
}