From 315f16d501f38d6bc743fca359d13b655c4a970d Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Sun, 23 Jun 2024 12:43:17 +0530 Subject: [PATCH 1/5] dbus: import PATH XDG_DATA_DIRS variables into systemd and dbus session --- src/Compositor.cpp | 8 ++++---- src/config/ConfigManager.cpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Compositor.cpp b/src/Compositor.cpp index c607dfb6..2ed1a951 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -311,10 +311,10 @@ void CCompositor::cleanEnvironment() { 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 " + "systemctl --user unset-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS && 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"; + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS"; g_pKeybindManager->spawn(CMD); } } @@ -569,10 +569,10 @@ void CCompositor::startCompositor() { if (m_sWLRSession /* Session-less Hyprland usually means a nest, don't update the env in that case */) { const auto CMD = #ifdef USES_SYSTEMD - "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME && hash " + "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS && 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"; + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS"; g_pKeybindManager->spawn(CMD); } diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 6a1c896c..a4a80944 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -1282,10 +1282,10 @@ void CConfigManager::dispatchExecOnce() { if (g_pCompositor->m_sWLRSession) handleRawExec("", #ifdef USES_SYSTEMD - "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME && hash " + "systemctl --user import-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS && 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"); + "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE QT_QPA_PLATFORMTHEME PATH XDG_DATA_DIRS"); firstExecDispatched = true; From e09addf8dede9a8e7f2dd0e5bb414d3a0d5dc471 Mon Sep 17 00:00:00 2001 From: Mihai Fufezan Date: Sun, 23 Jun 2024 16:43:53 +0300 Subject: [PATCH 2/5] Workspace.hpp: fix include --- src/desktop/Workspace.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/desktop/Workspace.hpp b/src/desktop/Workspace.hpp index ab3907aa..bb5cd441 100644 --- a/src/desktop/Workspace.hpp +++ b/src/desktop/Workspace.hpp @@ -4,7 +4,7 @@ #include #include "../defines.hpp" #include "DesktopTypes.hpp" -#include "helpers/MiscFunctions.hpp" +#include "../helpers/MiscFunctions.hpp" enum eFullscreenMode : int8_t { FULLSCREEN_INVALID = -1, From 8a68199a0ceb2894a5d9cc300961c38123ac0312 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 23 Jun 2024 19:49:48 +0200 Subject: [PATCH 3/5] foreign-toplevel-wlr: fix out-of-range for missing monitor resources fixes #6635 --- src/protocols/ForeignToplevelWlr.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/protocols/ForeignToplevelWlr.cpp b/src/protocols/ForeignToplevelWlr.cpp index 14800393..2b378386 100644 --- a/src/protocols/ForeignToplevelWlr.cpp +++ b/src/protocols/ForeignToplevelWlr.cpp @@ -124,17 +124,19 @@ void CForeignToplevelHandleWlr::sendMonitor(CMonitor* pMonitor) { const auto CLIENT = resource->client(); - if (const auto PLASTMONITOR = g_pCompositor->getMonitorFromID(lastMonitorID); PLASTMONITOR) { + if (const auto PLASTMONITOR = g_pCompositor->getMonitorFromID(lastMonitorID); PLASTMONITOR && PROTO::outputs.contains(PLASTMONITOR->szName)) { const auto OLDRESOURCE = PROTO::outputs.at(PLASTMONITOR->szName)->outputResourceFrom(CLIENT); if (OLDRESOURCE) resource->sendOutputLeave(OLDRESOURCE->getResource()->resource()); } - const auto NEWRESOURCE = PROTO::outputs.at(pMonitor->szName)->outputResourceFrom(CLIENT); + if (PROTO::outputs.contains(pMonitor->szName)) { + const auto NEWRESOURCE = PROTO::outputs.at(pMonitor->szName)->outputResourceFrom(CLIENT); - if (NEWRESOURCE) - resource->sendOutputEnter(NEWRESOURCE->getResource()->resource()); + if (NEWRESOURCE) + resource->sendOutputEnter(NEWRESOURCE->getResource()->resource()); + } lastMonitorID = pMonitor->ID; } From cff0123ce62a1f721d3aa2ac0fb58019787a7778 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 24 Jun 2024 23:29:26 +0200 Subject: [PATCH 4/5] wl-compositor: don't send enter to defunct output globals --- src/protocols/core/Compositor.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index 4bce3f58..691267b0 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -221,6 +221,11 @@ void CWLSurfaceResource::enter(SP monitor) { return; } + if (PROTO::outputs.at(monitor->szName)->isDefunct()) { + LOGM(ERR, "enter() called on a defunct output global"); + return; + } + auto output = PROTO::outputs.at(monitor->szName)->outputResourceFrom(pClient); if (!output || !output->getResource() || !output->getResource()->resource()) { From 4dd2b5902e770eeaf84820eccfebb5451aedb6a5 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Mon, 24 Jun 2024 23:58:10 +0200 Subject: [PATCH 5/5] hyprctl: add a newline after log() --- hyprctl/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp index 2bd325e3..45fe9142 100644 --- a/hyprctl/main.cpp +++ b/hyprctl/main.cpp @@ -47,7 +47,7 @@ void log(std::string str) { if (quiet) return; - std::cout << str; + std::cout << str << "\n"; } std::string getRuntimeDir() {