aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/Compositor.cpp12
-rw-r--r--src/config/ConfigDescriptions.hpp6
-rw-r--r--src/config/ConfigManager.cpp1
3 files changed, 18 insertions, 1 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 8e1b11b0..232ba4a6 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -2696,7 +2696,17 @@ WORKSPACEID CCompositor::getNewSpecialID() {
}
void CCompositor::performUserChecks() {
- ; // intentional
+ static auto PNOCHECKXDG = CConfigValue<Hyprlang::INT>("misc:disable_xdg_env_checks");
+
+ if (!*PNOCHECKXDG) {
+ const auto CURRENT_DESKTOP_ENV = getenv("XDG_CURRENT_DESKTOP");
+ if (!CURRENT_DESKTOP_ENV || std::string{CURRENT_DESKTOP_ENV} != "Hyprland") {
+ g_pHyprNotificationOverlay->addNotification(
+ std::format("Your XDG_CURRENT_DESKTOP environment seems to be managed externally, and the current value is {}.\nThis might cause issues unless it's intentional.",
+ CURRENT_DESKTOP_ENV ? CURRENT_DESKTOP_ENV : "unset"),
+ CColor{}, 15000, ICON_WARNING);
+ }
+ }
}
void CCompositor::moveWindowToWorkspaceSafe(PHLWINDOW pWindow, PHLWORKSPACE pWorkspace) {
diff --git a/src/config/ConfigDescriptions.hpp b/src/config/ConfigDescriptions.hpp
index 44b5ee4a..84ac1a41 100644
--- a/src/config/ConfigDescriptions.hpp
+++ b/src/config/ConfigDescriptions.hpp
@@ -1049,6 +1049,12 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = {
.type = CONFIG_OPTION_INT,
.data = SConfigOptionDescription::SRangeData{15, 1, 120},
},
+ SConfigOptionDescription{
+ .value = "misc:disable_xdg_env_checks",
+ .description = "disable the warning if XDG environment is externally managed",
+ .type = CONFIG_OPTION_BOOL,
+ .data = SConfigOptionDescription::SBoolData{false},
+ },
/*
* binds:
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 57cd2350..27e8fdb0 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -371,6 +371,7 @@ CConfigManager::CConfigManager() {
m_pConfig->addConfigValue("misc:initial_workspace_tracking", Hyprlang::INT{1});
m_pConfig->addConfigValue("misc:middle_click_paste", Hyprlang::INT{1});
m_pConfig->addConfigValue("misc:render_unfocused_fps", Hyprlang::INT{15});
+ m_pConfig->addConfigValue("misc:disable_xdg_env_checks", Hyprlang::INT{0});
m_pConfig->addConfigValue("group:insert_after_current", Hyprlang::INT{1});
m_pConfig->addConfigValue("group:focus_removed_window", Hyprlang::INT{1});