add systemd support (#1253)

* add systemd support
motivation for this is is proper ordering of related/bound/required
services to Hyprland (e.g. swaybg) that would need to have a compositor
ready.

this could possibly be a build-time option of course.

see also:
example/ files for example of services

Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>

* nix: add withSystemd flag

Signed-off-by: Paymon MARANDI <darwinskernel@gmail.com>
Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
Co-authored-by: Vaxerski <vaxry@vaxry.net>
This commit is contained in:
jrun
2023-01-05 14:17:55 -05:00
committed by GitHub
parent 96198dae55
commit 0d14fd9136
10 changed files with 78 additions and 3 deletions

View File

@@ -2,6 +2,9 @@
#include "helpers/Splashes.hpp"
#include <random>
#include "debug/HyprCtl.hpp"
#ifdef USES_SYSTEMD
#include <systemd/sd-daemon.h> // for sd_notify
#endif
int handleCritSignal(int signo, void* data) {
Debug::log(LOG, "Hyprland received signal %d", signo);
@@ -384,6 +387,15 @@ void CCompositor::startCompositor() {
wlr_xcursor_manager_set_cursor_image(m_sWLRXCursorMgr, "left_ptr", m_sWLRCursor);
#ifdef USES_SYSTEMD
if (sd_booted() > 0)
// tell systemd that we are ready so it can start other bond, following, related units
sd_notify(0, "READY=1");
else
Debug::log(LOG, "systemd integration is baked in but system itself is not booted à la systemd!");
#endif
// This blocks until we are done.
Debug::log(LOG, "Hyprland is ready, running the event loop!");
wl_display_run(m_sWLDisplay);