added config-only to hyprctl reload

This commit is contained in:
Vaxry 2022-08-14 23:26:18 +02:00
parent d906617fb6
commit f0fe0c25d6
3 changed files with 16 additions and 4 deletions

View file

@ -1079,7 +1079,8 @@ void CConfigManager::loadConfigLoadVars() {
// Set the modes for all monitors as we configured them // Set the modes for all monitors as we configured them
// not on first launch because monitors might not exist yet // not on first launch because monitors might not exist yet
// and they'll be taken care of in the newMonitor event // and they'll be taken care of in the newMonitor event
if (!isFirstLaunch) { // ignore if nomonitorreload is set
if (!isFirstLaunch && !m_bNoMonitorReload) {
m_bWantsMonitorReload = true; m_bWantsMonitorReload = true;
// check // check
@ -1099,6 +1100,9 @@ void CConfigManager::loadConfigLoadVars() {
// Force the compositor to fully re-render all monitors // Force the compositor to fully re-render all monitors
for (auto& m : g_pCompositor->m_vMonitors) for (auto& m : g_pCompositor->m_vMonitors)
m->forceFullFrames = 2; m->forceFullFrames = 2;
// Reset no monitor reload
m_bNoMonitorReload = false;
} }
void CConfigManager::tick() { void CConfigManager::tick() {

View file

@ -97,6 +97,7 @@ public:
void performMonitorReload(); void performMonitorReload();
bool m_bWantsMonitorReload = false; bool m_bWantsMonitorReload = false;
bool m_bForceReload = false; bool m_bForceReload = false;
bool m_bNoMonitorReload = false;
void ensureDPMS(); void ensureDPMS();
std::string parseKeyword(const std::string&, const std::string&, bool dynamic = false); std::string parseKeyword(const std::string&, const std::string&, bool dynamic = false);

View file

@ -505,9 +505,16 @@ std::string dispatchKeyword(std::string in) {
return retval; return retval;
} }
std::string reloadRequest() { std::string reloadRequest(std::string request) {
const auto REQMODE = request.substr(request.find_last_of(' ') + 1);
g_pConfigManager->m_bForceReload = true; g_pConfigManager->m_bForceReload = true;
if (REQMODE == "config-only") {
g_pConfigManager->m_bNoMonitorReload = true;
}
return "ok"; return "ok";
} }
@ -681,8 +688,8 @@ std::string getReply(std::string request) {
return layersRequest(format); return layersRequest(format);
else if (request == "version") else if (request == "version")
return versionRequest(format); return versionRequest(format);
else if (request == "reload") else if (request.find("reload") == 0)
return reloadRequest(); return reloadRequest(request);
else if (request == "devices") else if (request == "devices")
return devicesRequest(format); return devicesRequest(format);
else if (request == "splash") else if (request == "splash")