aboutsummaryrefslogtreecommitdiff
path: root/sway
diff options
context:
space:
mode:
authorBrian Ashworth <bosrsf04@gmail.com>2019-01-09 22:25:01 -0500
committerBrian Ashworth <bosrsf04@gmail.com>2019-01-09 23:17:27 -0500
commit4dba42555f123e68b81d3587c9ea55ecc0d40d84 (patch)
treeee51575fc6534741609123f0b8316a7bb5dc545b /sway
parent55e1d599a26785a7eda48e26aff335c8f9a3b348 (diff)
get_inputs: add libinput send events mode
Add `libinput_send_events` to the IPC output for `get_inputs` to allow scripting of mode changes.
Diffstat (limited to 'sway')
-rw-r--r--sway/ipc-json.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sway/ipc-json.c b/sway/ipc-json.c
index 53e0e335..19930319 100644
--- a/sway/ipc-json.c
+++ b/sway/ipc-json.c
@@ -11,6 +11,7 @@
#include "sway/output.h"
#include "sway/input/input-manager.h"
#include "sway/input/seat.h"
+#include <wlr/backend/libinput.h>
#include <wlr/types/wlr_box.h>
#include <wlr/types/wlr_output.h>
#include <xkbcommon/xkbcommon.h>
@@ -598,6 +599,26 @@ json_object *ipc_json_describe_input(struct sway_input_device *device) {
}
}
+ if (wlr_input_device_is_libinput(device->wlr_device)) {
+ struct libinput_device *libinput_dev;
+ libinput_dev = wlr_libinput_get_device_handle(device->wlr_device);
+
+ const char *events = "unknown";
+ switch (libinput_device_config_send_events_get_mode(libinput_dev)) {
+ case LIBINPUT_CONFIG_SEND_EVENTS_ENABLED:
+ events = "enabled";
+ break;
+ case LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE:
+ events = "disabled_on_external_mouse";
+ break;
+ case LIBINPUT_CONFIG_SEND_EVENTS_DISABLED:
+ events = "disabled";
+ break;
+ }
+ json_object_object_add(object, "libinput_send_events",
+ json_object_new_string(events));
+ }
+
return object;
}