ipc: remove extraneous properties from get_outputs reply

The GET_OUTPUTS IPC reply was including many tree/node properties
(id, type, orientation, percent, urgent, marks, layout, border,
current_border_width, deco_rect, window_rect, geometry, window,
nodes, floating_nodes, focus, fullscreen_mode, sticky, floating,
scratchpad_state) that are only meaningful for containers in
GET_TREE, not for outputs.

Create a dedicated function for building the GET_OUTPUTS reply that
only includes the documented output-specific fields (name, make,
model, serial, active, dpms, power, primary, scale, transform,
current_workspace, modes, current_mode, rect, hdr) plus sway-specific
output configuration fields (scale_filter, adaptive_sync_status,
max_render_time, allow_tearing, non_desktop, features, focused,
subpixel_hinting).

This improves i3 IPC compatibility and reduces reply size.

Fixes: https://github.com/swaywm/sway/issues/2685
This commit is contained in:
claude-bot 2026-02-07 21:32:35 -05:00
parent 845cdb190f
commit 37454c0cac
3 changed files with 97 additions and 6 deletions

View file

@ -11,6 +11,7 @@ json_object *ipc_json_get_binding_mode(void);
json_object *ipc_json_describe_disabled_output(struct sway_output *o);
json_object *ipc_json_describe_non_desktop_output(struct sway_output_non_desktop *o);
json_object *ipc_json_describe_enabled_output_ipc(struct sway_output *output);
json_object *ipc_json_describe_node(struct sway_node *node);
json_object *ipc_json_describe_node_recursive(struct sway_node *node);
json_object *ipc_json_describe_input(struct sway_input_device *device);