From c331a4e139ee12328ace24e21fc6d740e35cf232 Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Dec 2023 03:05:34 +0100 Subject: [PATCH 1/2] Avoid fooding with unnecessary messages --- rog_ally.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rog_ally.c b/rog_ally.c index e827627..22067ac 100644 --- a/rog_ally.c +++ b/rog_ally.c @@ -129,6 +129,10 @@ static int asus_kbd_ev_map( for (size_t i = 0; i < e->ev_count; ++i) { if (e->ev[i].type == EV_KEY) { + if (e->ev[i].value > 1) { + continue; + } + if (e->ev[i].code == KEY_F14) { // this is left back paddle, works as expected const in_message_t current_message = { From 660f73c26d8bf1b2c282410551f1f1aa3ac78ead Mon Sep 17 00:00:00 2001 From: Denis Date: Sun, 17 Dec 2023 03:12:21 +0100 Subject: [PATCH 2/2] fixed arrows and lctrl --- rog_ally.c | 12 ++++++++++++ virt_kbd.c | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/rog_ally.c b/rog_ally.c index 22067ac..1b808e0 100644 --- a/rog_ally.c +++ b/rog_ally.c @@ -287,6 +287,18 @@ static int asus_kbd_ev_map( } }; + messages[written_msg++] = current_message; + } else if (e->ev[i].code == KEY_LEFTCTRL) { + const in_message_t current_message = { + .type = KEYBOARD_SET_ELEMENT, + .data = { + .kbd_set = { + .type = KEYBOARD_KEY_LCRTL, + .value = e->ev[i].value + } + } + }; + messages[written_msg++] = current_message; } else if (e->ev[i].code == KEY_Q) { const in_message_t current_message = { diff --git a/virt_kbd.c b/virt_kbd.c index 62a0365..b6e7b1e 100644 --- a/virt_kbd.c +++ b/virt_kbd.c @@ -445,7 +445,7 @@ int virt_kbd_send(virt_kbd_t *const kbd, keyboard_status_t *const status, struct } if (status->up != kbd->prev_up) { - tmp_ev.code = KEYBOARD_KEY_UP; + tmp_ev.code = KEY_LEFTCTRL; tmp_ev.value = kbd->prev_up = status->up; if (write(kbd->fd, &tmp_ev, sizeof(tmp_ev)) != sizeof(struct input_event)) { res = errno < 0 ? errno : -1 * errno; @@ -454,7 +454,7 @@ int virt_kbd_send(virt_kbd_t *const kbd, keyboard_status_t *const status, struct } if (status->down != kbd->prev_down) { - tmp_ev.code = KEYBOARD_KEY_DOWN; + tmp_ev.code = KEY_DOWN; tmp_ev.value = kbd->prev_down = status->down; if (write(kbd->fd, &tmp_ev, sizeof(tmp_ev)) != sizeof(struct input_event)) { res = errno < 0 ? errno : -1 * errno; @@ -463,7 +463,7 @@ int virt_kbd_send(virt_kbd_t *const kbd, keyboard_status_t *const status, struct } if (status->left != kbd->prev_left) { - tmp_ev.code = KEYBOARD_KEY_LEFT; + tmp_ev.code = KEY_LEFT; tmp_ev.value = kbd->prev_left = status->left; if (write(kbd->fd, &tmp_ev, sizeof(tmp_ev)) != sizeof(struct input_event)) { res = errno < 0 ? errno : -1 * errno; @@ -472,7 +472,7 @@ int virt_kbd_send(virt_kbd_t *const kbd, keyboard_status_t *const status, struct } if (status->right != kbd->prev_right) { - tmp_ev.code = KEYBOARD_KEY_RIGHT; + tmp_ev.code = KEY_RIGHT; tmp_ev.value = kbd->prev_right = status->right; if (write(kbd->fd, &tmp_ev, sizeof(tmp_ev)) != sizeof(struct input_event)) { res = errno < 0 ? errno : -1 * errno;