mirror of
https://github.com/swaywm/sway.git
synced 2026-04-28 06:46:26 -04:00
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:
parent
b7fe5097e9
commit
331bcac3ea
10 changed files with 124 additions and 62 deletions
|
|
@ -21,6 +21,7 @@ enum ipc_command_type {
|
|||
// sway-specific command types
|
||||
IPC_GET_INPUTS = 100,
|
||||
IPC_GET_SEATS = 101,
|
||||
IPC_GET_BINDINGS = 102,
|
||||
|
||||
// Events sent from sway to clients. Events have the highest bits set.
|
||||
IPC_EVENT_WORKSPACE = ((1<<31) | 0),
|
||||
|
|
|
|||
|
|
@ -354,9 +354,10 @@ enum ipc_feature {
|
|||
IPC_FEATURE_EVENT_BINDING = 4096,
|
||||
IPC_FEATURE_EVENT_INPUT = 8192,
|
||||
IPC_FEATURE_GET_SEATS = 16384,
|
||||
IPC_FEATURE_GET_BINDINGS = 32768,
|
||||
|
||||
IPC_FEATURE_ALL_COMMANDS =
|
||||
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 16384,
|
||||
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 16384 | 32768,
|
||||
IPC_FEATURE_ALL_EVENTS = 256 | 512 | 1024 | 2048 | 4096 | 8192,
|
||||
|
||||
IPC_FEATURE_ALL = IPC_FEATURE_ALL_COMMANDS | IPC_FEATURE_ALL_EVENTS,
|
||||
|
|
|
|||
|
|
@ -12,5 +12,7 @@ json_object *ipc_json_describe_node_recursive(struct sway_node *node);
|
|||
json_object *ipc_json_describe_input(struct sway_input_device *device);
|
||||
json_object *ipc_json_describe_seat(struct sway_seat *seat);
|
||||
json_object *ipc_json_describe_bar_config(struct bar_config *bar);
|
||||
json_object *ipc_json_describe_binding(struct sway_binding *binding);
|
||||
json_object *ipc_json_describe_mode_bindings(struct sway_mode *mode);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue