From 6581f36a43375f8c80c76c152dd456c49cef45ca Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Mon, 21 Mar 2022 16:43:12 -0400 Subject: [PATCH] Make noop a valid keycode (#138) --- keyd.1.gz | Bin 4868 -> 4869 bytes keyd.md | 2 +- src/descriptor.c | 2 -- src/keyboard.c | 3 +++ src/keys.c | 1 + src/keys.h | 1 + 6 files changed, 6 insertions(+), 3 deletions(-) diff --git a/keyd.1.gz b/keyd.1.gz index d847bbe30498382a1ed519152f52d270c0854033..31afca48db235a5f6fe46c3a0cc96d76c14e4d60 100644 GIT binary patch literal 4869 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 literal 4868 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 instead\n"); - } else if (!strcmp(s, "noop")) { - d->op = OP_UNDEFINED; } else if (!parse_macro(s, ¯o)) { if (lt->nr_macros >= MAX_MACROS) { err("max macros (%d), exceeded", MAX_MACROS); diff --git a/src/keyboard.c b/src/keyboard.c index ed17ba8..f9217b0 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -30,6 +30,9 @@ static long get_time() static void kbd_send_key(struct keyboard *kbd, uint8_t code, uint8_t pressed) { + if (code == KEYD_NOOP) + return; + if (pressed) kbd->last_pressed_output_code = code; diff --git a/src/keys.c b/src/keys.c index c19c52a..4155068 100644 --- a/src/keys.c +++ b/src/keys.c @@ -265,6 +265,7 @@ const struct keycode_table_ent keycode_table[256] = { [KEYD_MOUSE_1] = { "mouse1", NULL, NULL }, [KEYD_MOUSE_2] = { "mouse2", NULL, NULL }, [KEYD_FN] = { "fn", NULL, NULL }, + [KEYD_NOOP] = { "noop", NULL, NULL }, }; uint8_t keycode_to_mod(uint8_t code) diff --git a/src/keys.h b/src/keys.h index d4311f6..4c2885c 100644 --- a/src/keys.h +++ b/src/keys.h @@ -281,6 +281,7 @@ struct modifier_table_ent { /* These deviate from uinput codes. */ +#define KEYD_NOOP 195 #define KEYD_LEFT_MOUSE 249 #define KEYD_RIGHT_MOUSE 250 #define KEYD_MIDDLE_MOUSE 251