diff options
author | pudiva chip lĂquida <pudiva@skylittlesystem.org> | 2022-08-24 00:13:12 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2022-10-30 10:56:34 +0100 |
commit | 7cc8ab6d6c4e7ebbfee832b3d8d8fd86623d89fc (patch) | |
tree | faacab010de2a3ffdd76dcf3bab015bb708f42dc /sway/commands | |
parent | a61815d3859e4cc92d3f8a0701a5675d97b81cdc (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.c | 1 | ||||
-rw-r--r-- | sway/commands/input/dwtp.c | 25 |
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); +} |