diff options
| author | ItsOhen <TNordfeldt@gmail.com> | 2025-09-20 17:42:02 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-20 17:42:02 +0200 |
| commit | 6a88f2e8800d4540ecbbb0d5b3d7f85a05387300 (patch) | |
| tree | dba47dd224b0a7d0fdc19496e225098167fc5a97 /src | |
| parent | 88326075743a677e76645ff163b392490419d4de (diff) | |
monitors: auto apply suggested scale and notify the user. (#11753)
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/ConfigDescriptions.hpp | 6 | ||||
| -rw-r--r-- | src/config/ConfigManager.cpp | 1 | ||||
| -rw-r--r-- | src/helpers/Monitor.cpp | 12 |
3 files changed, 14 insertions, 5 deletions
diff --git a/src/config/ConfigDescriptions.hpp b/src/config/ConfigDescriptions.hpp index 70d3dfc9..f2d384b2 100644 --- a/src/config/ConfigDescriptions.hpp +++ b/src/config/ConfigDescriptions.hpp @@ -1327,6 +1327,12 @@ inline static const std::vector<SConfigOptionDescription> CONFIG_OPTIONS = { .type = CONFIG_OPTION_BOOL, .data = SConfigOptionDescription::SBoolData{true}, }, + SConfigOptionDescription{ + .value = "misc:disable_scale_notification", + .description = "disables notification popup when a monitor fails to set a suitable scale and falls back to suggested", + .type = CONFIG_OPTION_BOOL, + .data = SConfigOptionDescription::SBoolData{false}, + }, /* * binds: diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 5cfd47f2..bf94152d 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -522,6 +522,7 @@ CConfigManager::CConfigManager() { registerConfigVar("misc:enable_anr_dialog", Hyprlang::INT{1}); registerConfigVar("misc:anr_missed_pings", Hyprlang::INT{1}); registerConfigVar("misc:screencopy_force_8b", Hyprlang::INT{1}); + registerConfigVar("misc:disable_scale_notification", Hyprlang::INT{0}); registerConfigVar("group:insert_after_current", Hyprlang::INT{1}); registerConfigVar("group:focus_removed_window", Hyprlang::INT{1}); diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 1c08faff..c7e94fa5 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -1,6 +1,7 @@ #include "Monitor.hpp" #include "MiscFunctions.hpp" #include "../macros.hpp" +#include "SharedDefs.hpp" #include "math/Math.hpp" #include "../protocols/ColorManagement.hpp" #include "../Compositor.hpp" @@ -907,11 +908,12 @@ bool CMonitor::applyMonitorRule(SMonitorRule* pMonitorRule, bool force) { } else { if (!autoScale) { Debug::log(ERR, "Invalid scale passed to monitor, {} found suggestion {}", m_scale, searchScale); - g_pConfigManager->addParseError( - std::format("Invalid scale passed to monitor {}, failed to find a clean divisor. Suggested nearest scale: {:5f}", m_name, searchScale)); - m_scale = getDefaultScale(); - } else - m_scale = searchScale; + static auto PDISABLENOTIFICATION = CConfigValue<Hyprlang::INT>("misc:disable_scale_notification"); + if (!*PDISABLENOTIFICATION) + g_pHyprNotificationOverlay->addNotification(std::format("Invalid scale passed to monitor: {}, using suggested scale: {}", m_scale, searchScale), + CHyprColor(1.0, 0.0, 0.0, 1.0), 5000, ICON_WARNING); + } + m_scale = searchScale; } } } |
