aboutsummaryrefslogtreecommitdiff
path: root/sway/ipc-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/ipc-server.c')
-rw-r--r--sway/ipc-server.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sway/ipc-server.c b/sway/ipc-server.c
index b7cd2d76..046e40a8 100644
--- a/sway/ipc-server.c
+++ b/sway/ipc-server.c
@@ -20,6 +20,7 @@
#include "sway/ipc-json.h"
#include "sway/ipc-server.h"
#include "sway/server.h"
+#include "sway/input/input-manager.h"
#include "list.h"
#include "log.h"
@@ -359,6 +360,19 @@ void ipc_client_handle_command(struct ipc_client *client) {
goto exit_cleanup;
}
+ case IPC_GET_INPUTS:
+ {
+ json_object *inputs = json_object_new_array();
+ struct sway_input_device *device = NULL;
+ wl_list_for_each(device, &input_manager->devices, link) {
+ json_object_array_add(inputs, ipc_json_describe_input(device));
+ }
+ const char *json_string = json_object_to_json_string(inputs);
+ ipc_send_reply(client, json_string, (uint32_t)strlen(json_string));
+ json_object_put(inputs); // free
+ goto exit_cleanup;
+ }
+
case IPC_GET_TREE:
{
json_object *tree =