NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/60918: Keyboard modifier keys are not checked correctly when sent simultaneously



>Number:         60918
>Category:       kern
>Synopsis:       Keyboard modifier keys are not checked correctly when sent simultaneously
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 23 02:50:00 +0000 2026
>Originator:     Phil Hagelberg
>Release:        11.0
>Organization:
>Environment:
NetBSD coronacht 11.0 NetBSD 11.0 (GENERIC) #0: Thu Jul 30 15:23:12 UTC 2026  mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
>Description:
When a keyboard sends a shift key pressed in one USB frame followed by an A keypress in another frame, it correctly detects that the shift key is pressed, resulting in "A".

But when a keyboard sends a shift *and* an A keypress in the same frame, the A is checked first, resulting in a lowercase "a".

Since the shift key is down when the A key is pressed, it should result in an "A" being inserted, not "a".
>How-To-Repeat:
I don't know any way to reproduce this without special hardware unfortunately. I'm using an Atreus keyboard with the Menelaus firmware: https://git.sr.ht/~technomancy/menelaus where pressing fn+a sends shift+9 (in other words, an open paren) but it just results in a 9 being inserted.
>Fix:
When a USB frame is received, the modifier state should be checked *before* the non-modifier keys, not after.




Home | Main Index | Thread Index | Old Index