aboutsummaryrefslogtreecommitdiff
path: root/sway/commands
diff options
context:
space:
mode:
authorpudiva chip lĂ­quida <pudiva@skylittlesystem.org>2022-08-24 00:13:12 +0100
committerSimon Ser <contact@emersion.fr>2022-10-30 10:56:34 +0100
commit7cc8ab6d6c4e7ebbfee832b3d8d8fd86623d89fc (patch)
treefaacab010de2a3ffdd76dcf3bab015bb708f42dc /sway/commands
parenta61815d3859e4cc92d3f8a0701a5675d97b81cdc (diff)
Support libinput's 1.21 new dwtp option
Support the new dwtp (disable while trackpointing) option introduced in libinput 1.21, allowing users to control whether the trackpoint (like those in Thinkpads, but not only) should be disabled while using the keyboard/touchpad. See: https://gitlab.freedesktop.org/libinput/libinput/-/issues/731
Diffstat (limited to 'sway/commands')
-rw-r--r--sway/commands/input.c1
-rw-r--r--sway/commands/input/dwtp.c25
2 files changed, 26 insertions, 0 deletions
diff --git a/sway/commands/input.c b/sway/commands/input.c
index 77acb671..ea531659 100644
--- a/sway/commands/input.c
+++ b/sway/commands/input.c
@@ -14,6 +14,7 @@ static const struct cmd_handler input_handlers[] = {
{ "drag", input_cmd_drag },
{ "drag_lock", input_cmd_drag_lock },
{ "dwt", input_cmd_dwt },
+ { "dwtp", input_cmd_dwtp },
{ "events", input_cmd_events },
{ "left_handed", input_cmd_left_handed },
{ "map_from_region", input_cmd_map_from_region },
diff --git a/sway/commands/input/dwtp.c b/sway/commands/input/dwtp.c
new file mode 100644
index 00000000..232e2b26
--- /dev/null
+++ b/sway/commands/input/dwtp.c
@@ -0,0 +1,25 @@
+#include <string.h>
+#include <strings.h>
+#include "sway/config.h"
+#include "sway/commands.h"
+#include "sway/input/input-manager.h"
+#include "util.h"
+
+struct cmd_results *input_cmd_dwtp(int argc, char **argv) {
+ struct cmd_results *error = NULL;
+ if ((error = checkarg(argc, "dwtp", EXPECTED_AT_LEAST, 1))) {
+ return error;
+ }
+ struct input_config *ic = config->handler_context.input_config;
+ if (!ic) {
+ return cmd_results_new(CMD_FAILURE, "No input device defined.");
+ }
+
+ if (parse_boolean(argv[0], true)) {
+ ic->dwtp = LIBINPUT_CONFIG_DWTP_ENABLED;
+ } else {
+ ic->dwtp = LIBINPUT_CONFIG_DWTP_DISABLED;
+ }
+
+ return cmd_results_new(CMD_SUCCESS, NULL);
+}