diff --git a/rog_ally.c b/rog_ally.c index e827627..1b808e0 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 = { @@ -283,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;