[PR #35] [MERGED] feat(keyboard): add F13-F24 entries #38

Closed
opened 2026-10-15 12:51:31 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/inputtino/pull/35
Author: @4xMSAA
Created: 3/9/2026
Status: ✅ Merged
Merged: 3/16/2026
Merged by: @ABeltramo

Base: stable ← Head: extendedfkeys


📝 Commits (1)

  • 95a9a4a feat(keyboard): add F13-F24 entries

📊 Changes

1 file changed (+6 additions, -0 deletions)

View changed files

📝 src/uinput/include/inputtino/keyboard.hpp (+6 -0)

📄 Description

Moonlight sends out keycodes 124-135 (scancodes 104-115) for F13-F24 keys, but the related entries are missing in keyboard.hpp.

I am rather new to the world of HID and platform differences, but I tested this setup with similar patches to Sunshine on my Moonlight (Linux) -> Sunshine (Linux) setup, and it successfully shows F13-F24 capabilities via evtest and prints them out. Hopefully doesn't break from different keyboard layouts or such...

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xbeef product 0xdead version 0x111
Input device name: "Keyboard passthrough"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    ...
    Event code 142 (KEY_SLEEP)
    Event code 183 (KEY_F13)
    Event code 184 (KEY_F14)
    Event code 185 (KEY_F15)
    Event code 186 (KEY_F16)
    Event code 187 (KEY_F17)
    Event code 188 (KEY_F18)
    Event code 189 (KEY_F19)
    Event code 190 (KEY_F20)
    Event code 191 (KEY_F21)
    Event code 192 (KEY_F22)
    Event code 193 (KEY_F23)
    Event code 194 (KEY_F24)
    Event code 210 (KEY_PRINT)
    Event code 353 (KEY_SELECT)
    Event code 355 (KEY_CLEAR)
Event: time ***, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 183 (KEY_F13), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 183 (KEY_F13), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 184 (KEY_F14), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 184 (KEY_F14), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 185 (KEY_F15), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 185 (KEY_F15), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 186 (KEY_F16), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 186 (KEY_F16), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 187 (KEY_F17), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 187 (KEY_F17), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 188 (KEY_F18), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 188 (KEY_F18), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 189 (KEY_F19), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 189 (KEY_F19), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 190 (KEY_F20), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 190 (KEY_F20), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 191 (KEY_F21), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 191 (KEY_F21), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 192 (KEY_F22), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 192 (KEY_F22), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 193 (KEY_F23), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 193 (KEY_F23), value 0
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 194 (KEY_F24), value 1
Event: time ***, -------------- SYN_REPORT ------------
Event: time ***, type 1 (EV_KEY), code 194 (KEY_F24), value 0

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/inputtino/pull/35 **Author:** [@4xMSAA](https://github.com/4xMSAA) **Created:** 3/9/2026 **Status:** ✅ Merged **Merged:** 3/16/2026 **Merged by:** [@ABeltramo](https://github.com/ABeltramo) **Base:** `stable` ← **Head:** `extendedfkeys` --- ### 📝 Commits (1) - [`95a9a4a`](https://github.com/games-on-whales/inputtino/commit/95a9a4ac804feae128a02630ffe659af3cb0bc2f) feat(keyboard): add F13-F24 entries ### 📊 Changes **1 file changed** (+6 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/uinput/include/inputtino/keyboard.hpp` (+6 -0) </details> ### 📄 Description Moonlight sends out keycodes `124-135` (scancodes `104-115`) for `F13-F24` keys, but the related entries are missing in `keyboard.hpp`. I am rather new to the world of HID and platform differences, but I tested this setup with similar patches to Sunshine on my Moonlight (Linux) -> Sunshine (Linux) setup, and it successfully shows `F13-F24` capabilities via `evtest` and prints them out. Hopefully doesn't break from different keyboard layouts or such... ``` Input driver version is 1.0.1 Input device ID: bus 0x3 vendor 0xbeef product 0xdead version 0x111 Input device name: "Keyboard passthrough" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) ... Event code 142 (KEY_SLEEP) Event code 183 (KEY_F13) Event code 184 (KEY_F14) Event code 185 (KEY_F15) Event code 186 (KEY_F16) Event code 187 (KEY_F17) Event code 188 (KEY_F18) Event code 189 (KEY_F19) Event code 190 (KEY_F20) Event code 191 (KEY_F21) Event code 192 (KEY_F22) Event code 193 (KEY_F23) Event code 194 (KEY_F24) Event code 210 (KEY_PRINT) Event code 353 (KEY_SELECT) Event code 355 (KEY_CLEAR) ``` ``` Event: time ***, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 183 (KEY_F13), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 183 (KEY_F13), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 184 (KEY_F14), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 184 (KEY_F14), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 185 (KEY_F15), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 185 (KEY_F15), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 186 (KEY_F16), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 186 (KEY_F16), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 187 (KEY_F17), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 187 (KEY_F17), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 188 (KEY_F18), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 188 (KEY_F18), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 189 (KEY_F19), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 189 (KEY_F19), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 190 (KEY_F20), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 190 (KEY_F20), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 191 (KEY_F21), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 191 (KEY_F21), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 192 (KEY_F22), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 192 (KEY_F22), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 193 (KEY_F23), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 193 (KEY_F23), value 0 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 194 (KEY_F24), value 1 Event: time ***, -------------- SYN_REPORT ------------ Event: time ***, type 1 (EV_KEY), code 194 (KEY_F24), value 0 ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 12:51:31 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/inputtino#38
No description provided.