diff options
-rw-r--r-- | hyprctl/main.cpp | 2 | ||||
-rw-r--r-- | src/config/ConfigManager.cpp | 5 | ||||
-rw-r--r-- | src/config/ConfigManager.hpp | 1 | ||||
-rw-r--r-- | src/debug/HyprCtl.cpp | 8 |
4 files changed, 14 insertions, 2 deletions
diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp index 4529fd31..9cca9792 100644 --- a/hyprctl/main.cpp +++ b/hyprctl/main.cpp @@ -25,6 +25,7 @@ usage: hyprctl [command] [(opt)args] dispatch keyword version + reload )#"; void request(std::string arg) { @@ -142,6 +143,7 @@ int main(int argc, char** argv) { else if (!strcmp(argv[1], "activewindow")) request("activewindow"); else if (!strcmp(argv[1], "layers")) request("layers"); else if (!strcmp(argv[1], "version")) request("version"); + else if (!strcmp(argv[1], "reload")) request("reload"); else if (!strcmp(argv[1], "dispatch")) dispatchRequest(argc, argv); else if (!strcmp(argv[1], "keyword")) keywordRequest(argc, argv); else if (!strcmp(argv[1], "--batch")) batchRequest(argc, argv); diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 2f114670..2bab2304 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -555,9 +555,10 @@ void CConfigManager::tick() { } // check if we need to reload cfg - if (fileStat.st_mtime != lastModifyTime) { + if (fileStat.st_mtime != lastModifyTime || m_bForceReload) { lastModifyTime = fileStat.st_mtime; - + m_bForceReload = false; + loadConfigLoadVars(); } } diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 3c2cd38e..fa183cae 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -71,6 +71,7 @@ public: void performMonitorReload(); bool m_bWantsMonitorReload = false; + bool m_bForceReload = false; std::string parseKeyword(const std::string&, const std::string&, bool dynamic = false); diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp index d670ea37..5c4f42c1 100644 --- a/src/debug/HyprCtl.cpp +++ b/src/debug/HyprCtl.cpp @@ -130,6 +130,12 @@ std::string dispatchKeyword(std::string in) { return retval; } +std::string reloadRequest() { + g_pConfigManager->m_bForceReload = true; + + return "ok"; +} + std::string getReply(std::string); std::string dispatchBatch(std::string request) { @@ -177,6 +183,8 @@ std::string getReply(std::string request) { return layersRequest(); else if (request == "version") return versionRequest(); + else if (request == "reload") + return reloadRequest(); else if (request.find("dispatch") == 0) return dispatchRequest(request); else if (request.find("keyword") == 0) |