diff options
| author | MightyPlaza <123664421+MightyPlaza@users.noreply.github.com> | 2023-12-28 15:38:16 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-28 16:38:16 +0100 |
| commit | 5f65946c84ed6ba3703e865d9a70f98cbb1ae479 (patch) | |
| tree | 749a347ba1fbbdc32e0c89f21adc64f4bf7920e5 /src/debug/HyprCtl.cpp | |
| parent | 6a93cee74e8f076068bea1463b95ee0374c50a3a (diff) | |
hyprctl: add decorations (#4275)
* add hyprctl decorations
modified: hyprctl/main.cpp
modified: src/debug/HyprCtl.cpp
modified: src/render/decorations/CHyprBorderDecoration.cpp
modified: src/render/decorations/CHyprBorderDecoration.hpp
modified: src/render/decorations/CHyprDropShadowDecoration.cpp
modified: src/render/decorations/CHyprDropShadowDecoration.hpp
modified: src/render/decorations/CHyprGroupBarDecoration.cpp
modified: src/render/decorations/CHyprGroupBarDecoration.hpp
modified: src/render/decorations/IHyprWindowDecoration.cpp
modified: src/render/decorations/IHyprWindowDecoration.hpp
* fixes
modified: hyprctl/main.cpp
modified: src/render/decorations/IHyprWindowDecoration.cpp
Diffstat (limited to 'src/debug/HyprCtl.cpp')
| -rw-r--r-- | src/debug/HyprCtl.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp index 11f293a5..72d3f6b5 100644 --- a/src/debug/HyprCtl.cpp +++ b/src/debug/HyprCtl.cpp @@ -1174,6 +1174,32 @@ std::string dispatchGetOption(std::string request, HyprCtl::eHyprCtlOutputFormat } } +std::string decorationRequest(std::string request, HyprCtl::eHyprCtlOutputFormat format) { + CVarList vars(request, 0, ' '); + const auto PWINDOW = g_pCompositor->getWindowByRegex(vars[1]); + + if (!PWINDOW) + return "none"; + + std::string result = ""; + if (format == HyprCtl::FORMAT_JSON) { + result += "["; + for (auto& wd : PWINDOW->m_dWindowDecorations) { + result += "{\n\"decorationName\": \"" + wd->getDisplayName() + "\",\n\"priority\": " + std::to_string(wd->getPositioningInfo().priority) + "\n},"; + } + + trimTrailingComma(result); + result += "]"; + } else { + result = +"Decoration\tPriority\n"; + for (auto& wd : PWINDOW->m_dWindowDecorations) { + result += wd->getDisplayName() + "\t" + std::to_string(wd->getPositioningInfo().priority) + "\n"; + } + } + + return result; +} + void createOutputIter(wlr_backend* backend, void* data) { const auto DATA = (std::pair<std::string, bool>*)data; @@ -1415,6 +1441,8 @@ std::string getReply(std::string request) { return dispatchSetCursor(request); else if (request.starts_with("getoption")) return dispatchGetOption(request, format); + else if (request.starts_with("decorations")) + return decorationRequest(request, format); else if (request.starts_with("[[BATCH]]")) return dispatchBatch(request); |
