summaryrefslogtreecommitdiff
path: root/src/debug/HyprCtl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/HyprCtl.cpp')
-rw-r--r--src/debug/HyprCtl.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/src/debug/HyprCtl.cpp b/src/debug/HyprCtl.cpp
index 1b1e53c3..9745a0fe 100644
--- a/src/debug/HyprCtl.cpp
+++ b/src/debug/HyprCtl.cpp
@@ -260,7 +260,7 @@ static std::string getWorkspaceRuleData(const SWorkspaceRule& r, HyprCtl::eHyprC
std::string result = std::format(R"#({{
"workspaceString": "{}"{}{}{}{}{}{}{}{}
}})#",
- escapeJSONStrings(r.workspaceString), monitor, default_, persistent, gapsIn, gapsOut, borderSize, border, rounding, decorate, shadow);
+ escapeJSONStrings(r.workspaceString), monitor, default_, persistent, gapsIn, gapsOut, borderSize, border, rounding, decorate, shadow);
return result;
} else {
@@ -276,7 +276,7 @@ static std::string getWorkspaceRuleData(const SWorkspaceRule& r, HyprCtl::eHyprC
const std::string shadow = std::format("\tshadow: {}\n", (bool)(r.shadow) ? boolToString(r.shadow.value()) : "<unset>");
std::string result = std::format("Workspace rule {}:\n{}{}{}{}{}{}{}{}{}{}\n", escapeJSONStrings(r.workspaceString), monitor, default_, persistent, gapsIn, gapsOut,
- borderSize, border, rounding, decorate, shadow);
+ borderSize, border, rounding, decorate, shadow);
return result;
}
@@ -423,6 +423,28 @@ std::string layersRequest(HyprCtl::eHyprCtlOutputFormat format) {
return result;
}
+std::string layoutsRequest(HyprCtl::eHyprCtlOutputFormat format) {
+ std::string result = "";
+ if (format == HyprCtl::FORMAT_JSON) {
+ result += "[";
+
+ for (auto& m : g_pLayoutManager->getAllLayoutNames()) {
+ result += std::format(
+ R"#(
+ "{}",)#",
+ m);
+ }
+ trimTrailingComma(result);
+
+ result += "\n]\n";
+ } else {
+ for (auto& m : g_pLayoutManager->getAllLayoutNames()) {
+ result += std::format("{}\n", m);
+ }
+ }
+ return result;
+}
+
std::string devicesRequest(HyprCtl::eHyprCtlOutputFormat format) {
std::string result = "";
@@ -1377,6 +1399,8 @@ std::string getReply(std::string request) {
return animationsRequest(format);
else if (request == "rollinglog")
return rollinglogRequest(format);
+ else if (request == "layouts")
+ return layoutsRequest(format);
else if (request.starts_with("plugin"))
return dispatchPlugin(request);
else if (request.starts_with("notify"))