summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2026-05-06 13:35:37 +0100
committerGitHub <noreply@github.com>2026-05-06 13:35:37 +0100
commit5f1350f522d3fe3af78cbe30a98311763b3509d5 (patch)
tree5c3b913c32e31008b057d505e81e056f4a936f09
parent6dc42e0f6d777109b6c8203dccf5c5d421b1fa04 (diff)
config/refresher: refresh watcher state properly (#14307)
ref #14301
-rw-r--r--src/config/legacy/ConfigManager.cpp2
-rw-r--r--src/config/lua/ConfigManager.cpp2
-rw-r--r--src/config/supplementary/propRefresher/PropRefresher.cpp4
-rw-r--r--src/config/supplementary/propRefresher/PropRefresher.hpp3
-rw-r--r--src/config/values/ConfigValues.cpp2
5 files changed, 7 insertions, 6 deletions
diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp
index 3b397b42..bbb63daf 100644
--- a/src/config/legacy/ConfigManager.cpp
+++ b/src/config/legacy/ConfigManager.cpp
@@ -959,8 +959,6 @@ Hyprlang::CParseResult CConfigManager::reloadRules() {
}
void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) {
- Config::watcher()->update();
-
for (auto const& w : g_pCompositor->m_windows) {
w->uncacheWindowDecos();
}
diff --git a/src/config/lua/ConfigManager.cpp b/src/config/lua/ConfigManager.cpp
index 685f925f..3ad70b9b 100644
--- a/src/config/lua/ConfigManager.cpp
+++ b/src/config/lua/ConfigManager.cpp
@@ -482,8 +482,6 @@ void CConfigManager::postConfigReload() {
static auto PENABLESTDOUT = CConfigValue<Config::INTEGER>("debug.enable_stdout_logs");
static auto PAUTOGENERATED = CConfigValue<Config::INTEGER>("autogenerated");
- Config::watcher()->update();
-
for (auto const& w : g_pCompositor->m_windows) {
w->uncacheWindowDecos();
}
diff --git a/src/config/supplementary/propRefresher/PropRefresher.cpp b/src/config/supplementary/propRefresher/PropRefresher.cpp
index 0715594b..675a68ef 100644
--- a/src/config/supplementary/propRefresher/PropRefresher.cpp
+++ b/src/config/supplementary/propRefresher/PropRefresher.cpp
@@ -10,6 +10,7 @@
#include "../../../desktop/rule/Engine.hpp"
#include "../../shared/monitor/MonitorRuleManager.hpp"
+#include "../../shared/inotify/ConfigWatcher.hpp"
using namespace Config;
using namespace Config::Supplementary;
@@ -92,6 +93,9 @@ void CPropRefresher::scheduleRefresh(PropRefreshBits prop) {
}
}
+ if (m_propsTripped & REFRESH_CONFIG_WATCHER)
+ Config::watcher()->update();
+
m_scheduled = false;
m_propsTripped = 0;
});
diff --git a/src/config/supplementary/propRefresher/PropRefresher.hpp b/src/config/supplementary/propRefresher/PropRefresher.hpp
index e8094753..3d4d29e3 100644
--- a/src/config/supplementary/propRefresher/PropRefresher.hpp
+++ b/src/config/supplementary/propRefresher/PropRefresher.hpp
@@ -6,7 +6,7 @@
#include "../../../helpers/memory/Memory.hpp"
namespace Config::Supplementary {
- enum ePropRefreshProp : uint8_t {
+ enum ePropRefreshProp : uint16_t {
REFRESH_LAYOUTS = (1 << 0),
REFRESH_INPUT_DEVICES = (1 << 1),
REFRESH_SCREEN_SHADER = (1 << 2),
@@ -15,6 +15,7 @@ namespace Config::Supplementary {
REFRESH_WINDOW_STATES = (1 << 5) | REFRESH_RULES,
REFRESH_MONITOR_STATES = (1 << 6) | REFRESH_LAYOUTS,
REFRESH_CURSOR_ZOOMS = (1 << 7),
+ REFRESH_CONFIG_WATCHER = (1 << 8),
REFRESH_ALL = std::numeric_limits<std::underlying_type_t<ePropRefreshProp>>::max(),
};
diff --git a/src/config/values/ConfigValues.cpp b/src/config/values/ConfigValues.cpp
index ff23ab5d..abf8ecab 100644
--- a/src/config/values/ConfigValues.cpp
+++ b/src/config/values/ConfigValues.cpp
@@ -453,7 +453,7 @@ std::vector<SP<IValue>> Values::getConfigValues() {
MS<Bool>("misc:layers_hog_keyboard_focus", "If true, will make keyboard-interactive layers keep their focus on mouse move.", true),
MS<Bool>("misc:animate_manual_resizes", "If true, will animate manual window resizes/moves", false),
MS<Bool>("misc:animate_mouse_windowdragging", "If true, will animate windows being dragged by mouse.", false),
- MS<Bool>("misc:disable_autoreload", "If true, the config will not reload automatically on save.", false),
+ MS<Bool>("misc:disable_autoreload", "If true, the config will not reload automatically on save.", false, {.refresh = Supplementary::REFRESH_CONFIG_WATCHER}),
MS<Bool>("misc:enable_swallow", "Enable window swallowing", false),
MS<String>("misc:swallow_regex", "The class regex to be used for windows that should be swallowed.", STRVAL_EMPTY),
MS<String>("misc:swallow_exception_regex", "The title regex to be used for windows that should not be swallowed.", STRVAL_EMPTY),