diff --git a/start/src/core/Instance.cpp b/start/src/core/Instance.cpp index c89d9d0b..ec56cc75 100644 --- a/start/src/core/Instance.cpp +++ b/start/src/core/Instance.cpp @@ -7,11 +7,17 @@ #include #include #include -#include #include #include #include +#if defined(__linux__) +#include +#elif defined(__FreeBSD__) +#include +#include +#endif + #include using namespace Hyprutils::OS; @@ -41,7 +47,12 @@ void CHyprlandInstance::runHyprlandThread(bool safeMode) { int forkRet = fork(); if (forkRet == 0) { // Make hyprland die on our SIGKILL +#if defined(__linux__) prctl(PR_SET_PDEATHSIG, SIGKILL); +#elif defined(__FreeBSD__) + int sig = SIGKILL; + procctl(P_PID, getpid(), PROC_PDEATHSIG_CTL, &sig); +#endif execvp(g_state->customPath.value_or("Hyprland").c_str(), args.data()); @@ -164,4 +175,4 @@ bool CHyprlandInstance::run(bool safeMode) { m_hlThread.join(); return !m_hyprlandInitialized || m_hyprlandExiting; -} \ No newline at end of file +}