From d05aeb77a00a957854c12b188b6a3268f7782df9 Mon Sep 17 00:00:00 2001 From: Cole Mickens Date: Fri, 2 Nov 2018 01:34:16 -0700 Subject: [PATCH 1/2] sway-ipc: includes current_mode for each output --- sway/ipc-json.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sway/ipc-json.c b/sway/ipc-json.c index 20ab57b40..7cc965c8a 100644 --- a/sway/ipc-json.c +++ b/sway/ipc-json.c @@ -136,13 +136,18 @@ static void ipc_json_describe_output(struct sway_output *output, json_object_new_int(mode->width)); json_object_object_add(mode_object, "height", json_object_new_int(mode->height)); - json_object_object_add(mode_object, "refresh", - json_object_new_int(mode->refresh)); json_object_array_add(modes_array, mode_object); } json_object_object_add(object, "modes", modes_array); + json_object *current_mode_object = json_object_new_object(); + json_object_object_add(current_mode_object, "width", + json_object_new_int(wlr_output->width)); + json_object_object_add(current_mode_object, "height", + json_object_new_int(wlr_output->height)); + json_object_object_add(object, "current_mode", current_mode_object); + struct sway_node *parent = node_get_parent(&output->node); struct wlr_box parent_box = {0, 0, 0, 0}; From 1f486fe89819c28c3b04f8da3456aa9e7888a2eb Mon Sep 17 00:00:00 2001 From: Cole Mickens Date: Fri, 2 Nov 2018 01:34:33 -0700 Subject: [PATCH 2/2] swaymsg: get_outputs: use output->current_mode for current mode display --- swaymsg/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/swaymsg/main.c b/swaymsg/main.c index 3c9842257..e13dd7ece 100644 --- a/swaymsg/main.c +++ b/swaymsg/main.c @@ -183,13 +183,15 @@ static void pretty_print_output(json_object *o) { json_object_object_get_ex(rect, "height", &height); json_object *modes; json_object_object_get_ex(o, "modes", &modes); + json_object *current_mode; + json_object_object_get_ex(o, "current_mode", ¤t_mode); if (json_object_get_boolean(active)) { printf( "Output %s '%s %s %s'%s\n" " Current mode: %dx%d @ %f Hz\n" " Position: %d,%d\n" - " Scale factor: %dx\n" + " Scale factor: %f\n" " Transform: %s\n" " Workspace: %s\n", json_object_get_string(name), @@ -197,10 +199,13 @@ static void pretty_print_output(json_object *o) { json_object_get_string(model), json_object_get_string(serial), json_object_get_boolean(focused) ? " (focused)" : "", - json_object_get_int(width), json_object_get_int(height), + json_object_get_int( + json_object_object_get(current_mode, "width")), + json_object_get_int( + json_object_object_get(current_mode, "height")), (float)json_object_get_int(refresh) / 1000, json_object_get_int(x), json_object_get_int(y), - json_object_get_int(scale), + json_object_get_double(scale), json_object_get_string(transform), json_object_get_string(ws) );