summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2025-01-19 15:39:19 +0100
committervaxerski <vaxry@vaxry.net>2025-01-19 16:11:12 +0100
commit8dd2cd41fb4c5a5eb6886cc190419b36084cabfa (patch)
tree713dfeb4f2bf75c2a04ed93166b5f9109dac9a84 /src/plugins
parent0a0e56d99c3b5f900ec561b3fe9a3c8a64fe1217 (diff)
core: move to inotify for monitoring the config files
instead of manually polling every second which is not efficient, use inotify. an added bonus is that inotify is much much faster
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/PluginAPI.cpp3
-rw-r--r--src/plugins/PluginSystem.cpp5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/plugins/PluginAPI.cpp b/src/plugins/PluginAPI.cpp
index b6bbc460..fbb1ec1b 100644
--- a/src/plugins/PluginAPI.cpp
+++ b/src/plugins/PluginAPI.cpp
@@ -4,6 +4,7 @@
#include "../plugins/PluginSystem.hpp"
#include "../managers/HookSystemManager.hpp"
#include "../managers/LayoutManager.hpp"
+#include "../managers/eventLoop/EventLoopManager.hpp"
#include "../config/ConfigManager.hpp"
#include "../debug/HyprNotificationOverlay.hpp"
#include <dlfcn.h>
@@ -72,7 +73,7 @@ APICALL bool HyprlandAPI::removeLayout(HANDLE handle, IHyprLayout* layout) {
}
APICALL bool HyprlandAPI::reloadConfig() {
- g_pConfigManager->m_bForceReload = true;
+ g_pEventLoopManager->doLater([] { g_pConfigManager->reload(); });
return true;
}
diff --git a/src/plugins/PluginSystem.cpp b/src/plugins/PluginSystem.cpp
index ce7dd7c7..e849bf11 100644
--- a/src/plugins/PluginSystem.cpp
+++ b/src/plugins/PluginSystem.cpp
@@ -5,6 +5,7 @@
#include "../config/ConfigManager.hpp"
#include "../managers/LayoutManager.hpp"
#include "../managers/HookSystemManager.hpp"
+#include "../managers/eventLoop/EventLoopManager.hpp"
CPluginSystem::CPluginSystem() {
g_pFunctionHookSystem = std::make_unique<CHookSystem>();
@@ -82,7 +83,7 @@ CPlugin* CPluginSystem::loadPlugin(const std::string& path) {
PLUGIN->version = PLUGINDATA.version;
PLUGIN->name = PLUGINDATA.name;
- g_pConfigManager->m_bForceReload = true;
+ g_pEventLoopManager->doLater([] { g_pConfigManager->reload(); });
Debug::log(LOG, R"( [PluginSystem] Plugin {} loaded. Handle: {:x}, path: "{}", author: "{}", description: "{}", version: "{}")", PLUGINDATA.name, (uintptr_t)MODULE, path,
PLUGINDATA.author, PLUGINDATA.description, PLUGINDATA.version);
@@ -137,7 +138,7 @@ void CPluginSystem::unloadPlugin(const CPlugin* plugin, bool eject) {
Debug::log(LOG, " [PluginSystem] Plugin {} unloaded.", PLNAME);
// reload config to fix some stuf like e.g. unloadedPluginVars
- g_pConfigManager->m_bForceReload = true;
+ g_pEventLoopManager->doLater([] { g_pConfigManager->reload(); });
}
void CPluginSystem::unloadAllPlugins() {