aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--hyprctl/main.cpp2
-rw-r--r--src/config/ConfigManager.cpp5
-rw-r--r--src/config/ConfigManager.hpp1
-rw-r--r--src/debug/HyprCtl.cpp8
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)