From 6a988d9276691957f1d9138f93c2209b580cad13 Mon Sep 17 00:00:00 2001 From: Ikalco <73481042+ikalco@users.noreply.github.com> Date: Wed, 8 May 2024 12:11:08 -0500 Subject: core: cleanup environment on exit (#5941) --- src/Compositor.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/Compositor.cpp') diff --git a/src/Compositor.cpp b/src/Compositor.cpp index 96831751..11834043 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -341,6 +341,28 @@ void CCompositor::removeAllSignals() { removeWLSignal(&Events::listen_sessionActive); } +void CCompositor::cleanEnvironment() { + // in compositor constructor + unsetenv("WAYLAND_DISPLAY"); + // in startCompositor + unsetenv("HYPRLAND_INSTANCE_SIGNATURE"); + + // in main + unsetenv("HYPRLAND_CMD"); + unsetenv("XDG_BACKEND"); + unsetenv("XDG_CURRENT_DESKTOP"); + + if (m_sWLRSession) { + const auto CMD = +#ifdef USES_SYSTEMD + "systemctl --user unset-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME && hash " + "dbus-update-activation-environment 2>/dev/null && " +#endif + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE QT_QPA_PLATFORMTHEME"; + g_pKeybindManager->spawn(CMD); + } +} + void CCompositor::cleanup() { if (!m_sWLDisplay || m_bIsShuttingDown) return; @@ -358,6 +380,8 @@ void CCompositor::cleanup() { Systemd::SdNotify(0, "STOPPING=1"); #endif + cleanEnvironment(); + // unload all remaining plugins while the compositor is // still in a normal working state. g_pPluginSystem->unloadAllPlugins(); -- cgit v1.2.3