Add get_bindings IPC interface

The new get_bindings IPC interface (IPC_GET_BINDINGS) allows swaymsg (and
other IPC clients) to interrogate sway's input bindings for all configured
binding modes.

The output of get_bindings is a JSON object mapping each configured binding
mode (e.g. "default", "resize", etc.) to an array of binding objects. The
binding JSON objects are of the same form as those in IPC_EVENT_BINDING.

N.B. a big chunk of code from ipc_event_binding() is moved to a new
ipc_json_describe_binding() function which services both the new
IPC_GET_BINDINGS as well as the existing IPC_EVENT_BINDING commands.

Signed-off-by: Peter Grayson <pete@jpgrayson.net>
This commit is contained in:
Peter Grayson 2019-03-08 12:43:04 -05:00
parent b7fe5097e9
commit 331bcac3ea
10 changed files with 124 additions and 62 deletions

View file

@ -15,6 +15,7 @@ _swaymsg()
'get_bar_config'
'get_version'
'get_binding_modes'
'get_bindings'
'get_config'
'send_tick'
)