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
// not on first launch because monitors might not exist yet
// 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;
// check
@ -1099,6 +1100,9 @@ void CConfigManager::loadConfigLoadVars() {
// Force the compositor to fully re-render all monitors
for (auto& m : g_pCompositor->m_vMonitors)
m->forceFullFrames = 2;
// Reset no monitor reload
m_bNoMonitorReload = false;
}
void CConfigManager::tick() {

View File

@ -97,6 +97,7 @@ public:
void performMonitorReload();
bool m_bWantsMonitorReload = false;
bool m_bForceReload = false;
bool m_bNoMonitorReload = false;
void ensureDPMS();
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;
}
std::string reloadRequest() {
std::string reloadRequest(std::string request) {
const auto REQMODE = request.substr(request.find_last_of(' ') + 1);
g_pConfigManager->m_bForceReload = true;
if (REQMODE == "config-only") {
g_pConfigManager->m_bNoMonitorReload = true;
}
return "ok";
}
@ -681,8 +688,8 @@ std::string getReply(std::string request) {
return layersRequest(format);
else if (request == "version")
return versionRequest(format);
else if (request == "reload")
return reloadRequest();
else if (request.find("reload") == 0)
return reloadRequest(request);
else if (request == "devices")
return devicesRequest(format);
else if (request == "splash")