diff --git a/src/config/legacy/ConfigManager.cpp b/src/config/legacy/ConfigManager.cpp index bbb63daf7..566cabb72 100644 --- a/src/config/legacy/ConfigManager.cpp +++ b/src/config/legacy/ConfigManager.cpp @@ -1013,9 +1013,6 @@ void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) { g_pCompositor->m_wantsXwayland = PENABLEXWAYLAND; #endif - if (!m_isFirstLaunch && !g_pCompositor->m_unsafeState) - refreshGroupBarGradients(); - // Updates dynamic window and workspace rules for (auto const& w : g_pCompositor->getWorkspaces()) { if (w->inert()) @@ -1058,14 +1055,8 @@ void CConfigManager::postConfigReload(const Hyprlang::CParseResult& result) { // update plugins handlePluginLoads(); - // update persistent workspaces if (!m_isFirstLaunch) - g_pCompositor->ensurePersistentWorkspacesPresent(); - - // update layouts - Layout::Supplementary::algoMatcher()->updateWorkspaceLayouts(); - - Config::Supplementary::refresher()->scheduleRefresh(Supplementary::REFRESH_ALL); + Config::Supplementary::refresher()->scheduleRefresh(Supplementary::REFRESH_ALL); Event::bus()->m_events.config.reloaded.emit(); if (g_pEventManager) diff --git a/src/config/lua/ConfigManager.cpp b/src/config/lua/ConfigManager.cpp index 0dd962000..0f0c1030b 100644 --- a/src/config/lua/ConfigManager.cpp +++ b/src/config/lua/ConfigManager.cpp @@ -488,16 +488,6 @@ void CConfigManager::postConfigReload() { w->uncacheWindowDecos(); } - // Update the keyboard layout to the cfg'd one if this is not the first launch - if (!m_isFirstLaunch) { - g_pInputManager->setKeyboardLayout(); - g_pInputManager->setPointerConfigs(); - g_pInputManager->setTouchDeviceConfigs(); - g_pInputManager->setTabletConfigs(); - - g_pHyprRenderer->m_reloadScreenShader = true; - } - const bool emergencyModeTripped = !m_errors.empty() && g_pKeybindManager->m_keybinds.empty(); if (emergencyModeTripped) @@ -557,18 +547,6 @@ void CConfigManager::postConfigReload() { g_pCompositor->m_wantsXwayland = *PXWAYLAND; #endif - if (!m_isFirstLaunch && !g_pCompositor->m_unsafeState) - refreshGroupBarGradients(); - - for (auto const& w : g_pCompositor->getWorkspaces()) { - if (w->inert()) - continue; - w->updateWindows(); - w->updateWindowData(); - } - - g_pCompositor->updateAllWindowsAnimatedDecorationValues(); - if (*PMANUALCRASH && !m_manualCrashInitiated) { m_manualCrashInitiated = true; Notification::overlay()->addNotification("Manual crash has been set up. Set debug.manual_crash back to 0 in order to crash the compositor.", CHyprColor(0), 5000, @@ -582,28 +560,10 @@ void CConfigManager::postConfigReload() { if (disableStdout && m_isFirstLaunch) Log::logger->log(Log::DEBUG, "Disabling stdout logs! Check the log for further logs."); - for (auto const& m : g_pCompositor->m_monitors) { - // mark blur dirty - m->m_blurFBDirty = true; - - g_pCompositor->scheduleFrameForMonitor(m); - - // Force the compositor to fully re-render all monitors - m->m_forceFullFrames = 2; - - // also force mirrors, as the aspect ratio could've changed - for (auto const& mirror : m->m_mirrors) - mirror->m_forceFullFrames = 3; - } - handlePluginLoads(); if (!m_isFirstLaunch) - g_pCompositor->ensurePersistentWorkspacesPresent(); - - Layout::Supplementary::algoMatcher()->updateWorkspaceLayouts(); - - Config::Supplementary::refresher()->scheduleRefresh(Supplementary::REFRESH_ALL); + Config::Supplementary::refresher()->scheduleRefresh(Supplementary::REFRESH_ALL); Event::bus()->m_events.config.reloaded.emit(); if (g_pEventManager) diff --git a/src/config/supplementary/propRefresher/PropRefresher.cpp b/src/config/supplementary/propRefresher/PropRefresher.cpp index 675a68ef0..fbb4c7056 100644 --- a/src/config/supplementary/propRefresher/PropRefresher.cpp +++ b/src/config/supplementary/propRefresher/PropRefresher.cpp @@ -3,6 +3,7 @@ #include "../../../managers/eventLoop/EventLoopManager.hpp" #include "../../../managers/input/InputManager.hpp" #include "../../../render/Renderer.hpp" +#include "../../../render/decorations/CHyprGroupBarDecoration.hpp" #include "../../../Compositor.hpp" #include "../../../layout/supplementary/WorkspaceAlgoMatcher.hpp" #include "../../../layout/LayoutManager.hpp" @@ -96,6 +97,9 @@ void CPropRefresher::scheduleRefresh(PropRefreshBits prop) { if (m_propsTripped & REFRESH_CONFIG_WATCHER) Config::watcher()->update(); + if (m_propsTripped & REFRESH_GRADIENTS_GROUPBAR) + refreshGroupBarGradients(); + m_scheduled = false; m_propsTripped = 0; }); diff --git a/src/config/supplementary/propRefresher/PropRefresher.hpp b/src/config/supplementary/propRefresher/PropRefresher.hpp index 3d4d29e3a..457112fa0 100644 --- a/src/config/supplementary/propRefresher/PropRefresher.hpp +++ b/src/config/supplementary/propRefresher/PropRefresher.hpp @@ -7,15 +7,16 @@ namespace Config::Supplementary { enum ePropRefreshProp : uint16_t { - REFRESH_LAYOUTS = (1 << 0), - REFRESH_INPUT_DEVICES = (1 << 1), - REFRESH_SCREEN_SHADER = (1 << 2), - REFRESH_BLUR_FB = (1 << 3), - REFRESH_RULES = (1 << 4), - REFRESH_WINDOW_STATES = (1 << 5) | REFRESH_RULES, - REFRESH_MONITOR_STATES = (1 << 6) | REFRESH_LAYOUTS, - REFRESH_CURSOR_ZOOMS = (1 << 7), - REFRESH_CONFIG_WATCHER = (1 << 8), + REFRESH_LAYOUTS = (1 << 0), + REFRESH_INPUT_DEVICES = (1 << 1), + REFRESH_SCREEN_SHADER = (1 << 2), + REFRESH_BLUR_FB = (1 << 3), + REFRESH_RULES = (1 << 4), + REFRESH_WINDOW_STATES = (1 << 5) | REFRESH_RULES, + REFRESH_MONITOR_STATES = (1 << 6) | REFRESH_LAYOUTS, + REFRESH_CURSOR_ZOOMS = (1 << 7), + REFRESH_CONFIG_WATCHER = (1 << 8), + REFRESH_GRADIENTS_GROUPBAR = (1 << 9), REFRESH_ALL = std::numeric_limits>::max(), }; diff --git a/src/config/values/ConfigValues.cpp b/src/config/values/ConfigValues.cpp index abf8ecab5..49fdda021 100644 --- a/src/config/values/ConfigValues.cpp +++ b/src/config/values/ConfigValues.cpp @@ -385,10 +385,10 @@ std::vector> Values::getConfigValues() { MS("group:focus_removed_window", "whether Hyprland should focus on the window that has just been moved out of the group", true), MS("group:merge_groups_on_drag", "whether window groups can be dragged into other groups", true), MS("group:merge_groups_on_groupbar", "whether one group will be merged with another when dragged into its groupbar", true), - MS("group:col.border_active", "active group border color", CHyprColor{0x66ffff00}), - MS("group:col.border_inactive", "inactive group border color", CHyprColor{0x66777700}), - MS("group:col.border_locked_inactive", "inactive locked group border color", CHyprColor{0x66ff5500}), - MS("group:col.border_locked_active", "active locked group border color", CHyprColor{0x66775500}), + MS("group:col.border_active", "active group border color", CHyprColor{0x66ffff00}, {.refresh = Supplementary::REFRESH_GRADIENTS_GROUPBAR}), + MS("group:col.border_inactive", "inactive group border color", CHyprColor{0x66777700}, {.refresh = Supplementary::REFRESH_GRADIENTS_GROUPBAR}), + MS("group:col.border_locked_inactive", "inactive locked group border color", CHyprColor{0x66ff5500}, {.refresh = Supplementary::REFRESH_GRADIENTS_GROUPBAR}), + MS("group:col.border_locked_active", "active locked group border color", CHyprColor{0x66775500}, {.refresh = Supplementary::REFRESH_GRADIENTS_GROUPBAR}), MS("group:auto_group", "automatically group new windows", true), MS("group:drag_into_group", "whether dragging a window into a unlocked group will merge them.", 1, {.min = 0, .max = 2, .map = OptionMap{{"disabled", 0}, {"enabled", 1}, {"only when dragging into the groupbar", 2}}}),