diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 1bc8ae2..b75093e 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -30,6 +30,8 @@ install(FILES WORLD_READ WORLD_EXECUTE ) +add_subdirectory(systemd) + if(BUILD_MAN_PAGES) add_subdirectory(man) endif() diff --git a/data/systemd/CMakeLists.txt b/data/systemd/CMakeLists.txt new file mode 100644 index 0000000..397ccc4 --- /dev/null +++ b/data/systemd/CMakeLists.txt @@ -0,0 +1,7 @@ +if (NOT DEFINED SYSTEMD_SYSTEM_UNIT_DIR) + find_package(PkgConfig REQUIRED) + pkg_check_modules(Systemd REQUIRED systemd) + pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR systemd systemduserunitdir) +endif() + +install(FILES override.conf DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR}/seatd.service.d/) diff --git a/data/systemd/override.conf b/data/systemd/override.conf new file mode 100644 index 0000000..19f348d --- /dev/null +++ b/data/systemd/override.conf @@ -0,0 +1,4 @@ +[Service] +Environment=SEATD_VTBOUND=0 +ExecStart= +ExecStart=seatd -u dde -g dde -l debug diff --git a/services/ddm.service.in b/services/ddm.service.in index 5a8fb24..6231442 100644 --- a/services/ddm.service.in +++ b/services/ddm.service.in @@ -7,6 +7,9 @@ PartOf=graphical.target StartLimitIntervalSec=30 StartLimitBurst=2 +Requires=seatd.service +Before=seatd.service + [Service] ExecStart=@CMAKE_INSTALL_FULL_BINDIR@/ddm Restart=always diff --git a/src/daemon/SingleWaylandDisplayServer.cpp b/src/daemon/SingleWaylandDisplayServer.cpp index a673c72..e9d9b2c 100644 --- a/src/daemon/SingleWaylandDisplayServer.cpp +++ b/src/daemon/SingleWaylandDisplayServer.cpp @@ -27,21 +27,6 @@ SingleWaylandDisplayServer::SingleWaylandDisplayServer(SocketServer *socketServe , m_socketServer(socketServer) , m_helper(new QProcess(this)) { - QProcess *m_seatd = new QProcess(this); - m_seatd->setProgram("seatd"); - m_seatd->setArguments({"-u", "dde", "-g", "dde", "-l", "debug"}); - m_seatd->setProcessEnvironment([] { - auto env = QProcessEnvironment::systemEnvironment(); - env.insert("SEATD_VTBOUND", "0"); - return env; - }()); - connect(m_seatd, &QProcess::readyReadStandardOutput, this, [m_seatd] { - qInfo() << m_seatd->readAllStandardOutput(); - }); - connect(m_seatd, &QProcess::readyReadStandardError, this, [m_seatd] { - qWarning() << m_seatd->readAllStandardError(); - }); - connect(m_helper, &QProcess::readyReadStandardOutput, this, [this] { qInfo() << m_helper->readAllStandardOutput(); }); @@ -49,8 +34,6 @@ SingleWaylandDisplayServer::SingleWaylandDisplayServer(SocketServer *socketServe qWarning() << m_helper->readAllStandardError(); }); - m_seatd->start(); - QString socketName = QStringLiteral("treeland-helper-%1").arg(generateName(6)); // log message