diff --git a/src/Compositor.cpp b/src/Compositor.cpp index b06710f69..23b2e366b 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -1867,6 +1867,7 @@ void CCompositor::updateWindowAnimatedDecorationValues(PHLWINDOW pWindow) { static auto PSHADOWCOLINACTIVE = CConfigValue("decoration:shadow:color_inactive"); static auto PDIMSTRENGTH = CConfigValue("decoration:dim_strength"); static auto PDIMENABLED = CConfigValue("decoration:dim_inactive"); + static auto PDIMMODAL = CConfigValue("decoration:dim_modal"); auto* const ACTIVECOL = sc((PACTIVECOL.ptr())->getData()); auto* const INACTIVECOL = sc((PINACTIVECOL.ptr())->getData()); @@ -1924,7 +1925,7 @@ void CCompositor::updateWindowAnimatedDecorationValues(PHLWINDOW pWindow) { else goalDim = *PDIMSTRENGTH; - if (IS_SHADOWED_BY_MODAL) + if (IS_SHADOWED_BY_MODAL && *PDIMMODAL) goalDim += (1.F - goalDim) / 2.F; *pWindow->m_dimPercent = goalDim; diff --git a/src/config/ConfigDescriptions.hpp b/src/config/ConfigDescriptions.hpp index 1b3e412d0..3e5d5a87f 100644 --- a/src/config/ConfigDescriptions.hpp +++ b/src/config/ConfigDescriptions.hpp @@ -231,6 +231,12 @@ inline static const std::vector CONFIG_OPTIONS = { .type = CONFIG_OPTION_FLOAT, .data = SConfigOptionDescription::SFloatData{1, 0, 1}, }, + SConfigOptionDescription{ + .value = "decoration:dim_modal", + .description = "enables dimming of parents of modal windows", + .type = CONFIG_OPTION_BOOL, + .data = SConfigOptionDescription::SBoolData{true}, + }, SConfigOptionDescription{ .value = "decoration:dim_inactive", .description = "enables dimming of inactive windows", diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 7c74534a8..951a54297 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -582,6 +582,7 @@ CConfigManager::CConfigManager() { registerConfigVar("decoration:shadow:color", Hyprlang::INT{0xee1a1a1a}); registerConfigVar("decoration:shadow:color_inactive", Hyprlang::INT{-1}); registerConfigVar("decoration:dim_inactive", Hyprlang::INT{0}); + registerConfigVar("decoration:dim_modal", Hyprlang::INT{1}); registerConfigVar("decoration:dim_strength", {0.5f}); registerConfigVar("decoration:dim_special", {0.2f}); registerConfigVar("decoration:dim_around", {0.4f});