Summary: | [Wayland] Unable to bind keys with keycodes above 255 | ||
---|---|---|---|
Product: | [Applications] systemsettings | Reporter: | sidpranjale127 |
Component: | kcm_keys | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | CONFIRMED --- | ||
Severity: | wishlist | CC: | fanzhuyifan, kde, kde, nate, parker.l.reed, sidpranjale127, the.real.samuel.jimenez |
Priority: | NOR | Keywords: | wayland |
Version: | 5.93.0 | ||
Target Milestone: | --- | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
See Also: |
https://bugs.kde.org/show_bug.cgi?id=477710 https://bugs.kde.org/show_bug.cgi?id=422401 |
||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Bug Depends on: | |||
Bug Blocks: | 481142 |
Description
sidpranjale127
2023-10-13 15:58:25 UTC
Seeing same thing here with Chromecast remote. Half of the buttons are way above 255 and won't map in KWin. Event: time 1706641635.753398, -------------- SYN_REPORT ------------ Event: time 1706641641.873435, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0089 Event: time 1706641641.873435, type 1 (EV_KEY), code 377 (KEY_TV), value 1 Event: time 1706641641.873435, -------------- SYN_REPORT ------------ Event: time 1706641642.013353, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0089 Event: time 1706641642.013353, type 1 (EV_KEY), code 377 (KEY_TV), value 0 Event: time 1706641642.013353, -------------- SYN_REPORT ------------ Event: time 1706641643.873390, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0078 Event: time 1706641643.873390, type 1 (EV_KEY), code 589 (?), value 1 Event: time 1706641643.873390, -------------- SYN_REPORT ------------ Event: time 1706641643.973367, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0078 Event: time 1706641643.973367, type 1 (EV_KEY), code 589 (?), value 0 Event: time 1706641643.973367, -------------- SYN_REPORT ------------ Event: time 1706641644.453419, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0077 Event: time 1706641644.453419, type 1 (EV_KEY), code 588 (?), value 1 Event: time 1706641644.453419, -------------- SYN_REPORT ------------ Event: time 1706641644.533424, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0077 Event: time 1706641644.533424, type 1 (EV_KEY), code 588 (?), value 0 Event: time 1706641644.533424, -------------- SYN_REPORT ------------ Event: time 1706641645.313474, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0041 Event: time 1706641645.313474, type 1 (EV_KEY), code 353 (KEY_SELECT), value 1 Event: time 1706641645.313474, -------------- SYN_REPORT ------------ Event: time 1706641645.453442, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0041 Event: time 1706641645.453442, type 1 (EV_KEY), code 353 (KEY_SELECT), value 0 Event: time 1706641645.453442, -------------- SYN_REPORT ------------ Unfortunately it seems that these keys are neither defined in XFree86 keysym or Qt, so I guess there isn't much KDE can do about those without big changes to the existing code. As a workaround, you could use udev to remap these keys to keys that KDE recognize: https://wiki.archlinux.org/title/Map_scancodes_to_keycodes. To support this feature, maybe we can use this: https://doc.qt.io/qt-6/qkeyevent.html#nativeVirtualKey These keys are defined in evdev and I can use them perfectly remapping them to other keys so this shouldn't be an issue. https://github.com/philipl/evdevremapkeys/commit/e5f251720c470f047549b59acff16ef701e28120 devices: - input_name: 'Chromecast Remote' output_name: remap-kbd remappings: KEY_SELECT: - KEY_ENTER 588: - KEY_PHONE KEY_SCREENLOCK: - KEY_POWER KEY_TV: - KEY_LEFTALT - KEY_F4 589: - KEY_MEDIA KEY_BACK: - KEY_BACKSPACE KEY_HOMEPAGE: - KEY_LEFTMETA (In reply to Parker Reed from comment #4) > These keys are defined in evdev and I can use them perfectly remapping them > to other keys so this shouldn't be an issue. Yes, I know that they are defined in evdev. Unfortunately KDE uses Qt::Key to handle these stuff, and since Qt::Key doesn't define these Keys, KDE is having trouble handling these. ok, fair, and I'm guessing we use the evdevkeyboard backend for Qt::Key? or would that be the lbinput backend https://invent.kde.org/qt/qt/qtbase/-/tree/dev/src/platformsupport/input |