summaryrefslogtreecommitdiff
path: root/src/debug/HyprCtl.cpp
diff options
context:
space:
mode:
authorMightyPlaza <123664421+MightyPlaza@users.noreply.github.com>2023-12-28 15:38:16 +0000
committerGitHub <noreply@github.com>2023-12-28 16:38:16 +0100
commit5f65946c84ed6ba3703e865d9a70f98cbb1ae479 (patch)
tree749a347ba1fbbdc32e0c89f21adc64f4bf7920e5 /src/debug/HyprCtl.cpp
parent6a93cee74e8f076068bea1463b95ee0374c50a3a (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.cpp28
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);