Key press events for some remapped keys are only sent once when held down
Microsoft PowerToys version
0.90.1
Installation method
PowerToys auto-update
Area(s) with issue?
Keyboard Manager
Steps to reproduce
Use the Keyboard Manager utility to remap Ctrl to Left Arrow and Shift to Up Arrow.
Focus a text field and hold down Ctrl or Shift. Then try to do the same on a game.
For context: My laptop's realLeft Arrow and Up Arrow keys are broken, so I assigned right Ctrl and right Shift respectively. This worked fine until the last PowerToys update.
✔️ Expected Behavior
In text fields and navigations, after a short lag, the cursor should move continuously until the key is released (or it reaches the beginning).
In games and interactive applications, the character/car/whatever should move until the key is released.
❌ Actual Behavior
In text fields, the cursor will move by 1 character and stop, even if you keep holding the key. Releasing and re-pressing it moves the cursor by another 1 step.
In games, the input is handled as expected.
All the other keys (including the other arrow keys) are handled as expected.
Remapping a letter to another letter works as expected.
The normal Ctrl/Shift keys work when they are not reassigned, so it is not a hardware fault.
I might be wrong, but as most text fields and navigations have event-driven key handling, while games poll key presses continuously, I assume that this is due to events being sent only once for some remapped keys.
Additional Information
OS version/build: Windows 11 Pro 24H2 26120.3941
.NET version: 6.0.427
Running as admin: Yes
Installation: System
Keyboard layout: German QWERTZ
Other Software
No response
We've found some similar issues:
- #36737 , similarity score: 81%
If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.
Note: You can give me feedback by 👍 or 👎 this comment.
We've found some similar issues
Not a duplicate, the behavior in this issue is different, and it gives additional context.
Fixed in the latest version!