From d0ff0c0990db230999cc918f1d6230c4a18d08c8 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sun, 29 May 2022 12:27:45 +0200 Subject: Added basic monitor transforms, has bugs blur doesnt work on transformed outputs full damage tracking issues --- src/config/ConfigManager.cpp | 18 ++++++++++++++++-- src/config/ConfigManager.hpp | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'src/config') diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index 7a20050b..f66e7085 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -186,10 +186,24 @@ void CConfigManager::handleMonitor(const std::string& command, const std::string nextItem(); - if (curitem == "disable" || curitem == "disabled" || curitem == "addreserved") { + if (curitem == "disable" || curitem == "disabled" || curitem == "addreserved" || curitem == "transform") { if (curitem == "disable" || curitem == "disabled") newrule.disabled = true; - else if (curitem == "addreserved") { + else if (curitem == "transform") { + nextItem(); + + wl_output_transform transform = (wl_output_transform)std::stoi(curitem); + + // overwrite if exists + for (auto& r : m_dMonitorRules) { + if (r.name == newrule.name) { + r.transform = transform; + return; + } + } + + return; + } else if (curitem == "addreserved") { nextItem(); int top = std::stoi(curitem); diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp index 959bdd0d..866b8b8e 100644 --- a/src/config/ConfigManager.hpp +++ b/src/config/ConfigManager.hpp @@ -30,6 +30,7 @@ struct SMonitorRule { float refreshRate = 60; int defaultWorkspaceID = -1; bool disabled = false; + wl_output_transform transform = WL_OUTPUT_TRANSFORM_NORMAL; }; struct SMonitorAdditionalReservedArea { -- cgit v1.2.3