aboutsummaryrefslogtreecommitdiffstats
path: root/sway/ipc-json.c
diff options
context:
space:
mode:
authorLibravatar Alex Maese <memaese@hotmail.com>2022-06-09 18:51:15 -0500
committerLibravatar Simon Zeni <simon@bl4ckb0ne.ca>2022-09-19 07:26:45 -0400
commit52f0e3a4d5bc5900df821b82a2c6941f57eaca25 (patch)
tree973d60e0f2d0d5ad7fe63aa1b38e549987c6d11a /sway/ipc-json.c
parentsway: Add non-desktop-output type (diff)
downloadsway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.tar.gz
sway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.tar.zst
sway-52f0e3a4d5bc5900df821b82a2c6941f57eaca25.zip
sway: add non-desktop outputs to json when running `swaymsg -t get_outputs`
Diffstat (limited to 'sway/ipc-json.c')
-rw-r--r--sway/ipc-json.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index 63c182f2..763fb3fe 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -240,10 +240,7 @@ static json_object *ipc_json_create_node(int id, const char* type, char *name,
240 return object; 240 return object;
241} 241}
242 242
243static void ipc_json_describe_output(struct sway_output *output, 243static void ipc_json_describe_wlr_output(struct wlr_output *wlr_output, json_object *object) {
244 json_object *object) {
245 struct wlr_output *wlr_output = output->wlr_output;
246
247 json_object_object_add(object, "primary", json_object_new_boolean(false)); 244 json_object_object_add(object, "primary", json_object_new_boolean(false));
248 json_object_object_add(object, "make", 245 json_object_object_add(object, "make",
249 json_object_new_string(wlr_output->make ? wlr_output->make : "Unknown")); 246 json_object_new_string(wlr_output->make ? wlr_output->make : "Unknown"));
@@ -267,11 +264,17 @@ static void ipc_json_describe_output(struct sway_output *output,
267 json_object_object_add(object, "modes", modes_array); 264 json_object_object_add(object, "modes", modes_array);
268} 265}
269 266
267static void ipc_json_describe_output(struct sway_output *output,
268 json_object *object) {
269 ipc_json_describe_wlr_output(output->wlr_output, object);
270}
271
270static void ipc_json_describe_enabled_output(struct sway_output *output, 272static void ipc_json_describe_enabled_output(struct sway_output *output,
271 json_object *object) { 273 json_object *object) {
272 ipc_json_describe_output(output, object); 274 ipc_json_describe_output(output, object);
273 275
274 struct wlr_output *wlr_output = output->wlr_output; 276 struct wlr_output *wlr_output = output->wlr_output;
277 json_object_object_add(object, "non_desktop", json_object_new_boolean(false));
275 json_object_object_add(object, "active", json_object_new_boolean(true)); 278 json_object_object_add(object, "active", json_object_new_boolean(true));
276 json_object_object_add(object, "dpms", 279 json_object_object_add(object, "dpms",
277 json_object_new_boolean(wlr_output->enabled)); 280 json_object_new_boolean(wlr_output->enabled));
@@ -349,6 +352,7 @@ json_object *ipc_json_describe_disabled_output(struct sway_output *output) {
349 352
350 ipc_json_describe_output(output, object); 353 ipc_json_describe_output(output, object);
351 354
355 json_object_object_add(object, "non_desktop", json_object_new_boolean(false));
352 json_object_object_add(object, "type", json_object_new_string("output")); 356 json_object_object_add(object, "type", json_object_new_string("output"));
353 json_object_object_add(object, "name", 357 json_object_object_add(object, "name",
354 json_object_new_string(wlr_output->name)); 358 json_object_new_string(wlr_output->name));
@@ -370,6 +374,21 @@ json_object *ipc_json_describe_disabled_output(struct sway_output *output) {
370 return object; 374 return object;
371} 375}
372 376
377json_object *ipc_json_describe_non_desktop_output(struct sway_output_non_desktop *output) {
378 struct wlr_output *wlr_output = output->wlr_output;
379
380 json_object *object = json_object_new_object();
381
382 ipc_json_describe_wlr_output(wlr_output, object);
383
384 json_object_object_add(object, "non_desktop", json_object_new_boolean(true));
385 json_object_object_add(object, "type", json_object_new_string("output"));
386 json_object_object_add(object, "name",
387 json_object_new_string(wlr_output->name));
388
389 return object;
390}
391
373static json_object *ipc_json_describe_scratchpad_output(void) { 392static json_object *ipc_json_describe_scratchpad_output(void) {
374 struct wlr_box box; 393 struct wlr_box box;
375 root_get_box(root, &box); 394 root_get_box(root, &box);