SDL3 defines Channel Increment and Channel Decrement among its key press types and maps them to Linux evdev events, and Minecraft assigns IDs and translation keys corresponding to them. However, if one of these keys actually gets pressed, Minecraft will not pick up on it at all.
I have attached a Python script which can be used to reproduce this issue as I do not own a keyboard or other input device capable of sending these events. To reproduce:
download the attached script, put it in a folder somewhere, and open a terminal window in that directory
open Minecraft and navigate to the key binds menu
click on something to start the rebind listening process
go into the command window and run this command, then after running it, immediately switch Minecraft back into focus: ./simulate-keys 'sleep 2' 'press 89' 'sleep 0.1' 'release 89'
it should be recognised correctly as “International 1”
now repeat with this command: ./simulate-keys 'sleep 2' 'press 402' 'sleep 0.1' 'release 402'
and this command: ./simulate-keys 'sleep 2' 'press 403' 'sleep 0.1' 'release 403'
Expected results: the latter two commands are recognised as “Channel Up” and “Channel Down”
Actual results: Minecraft behaves as though no key was pressed at all
How to fix: Minecraft should properly listen for key press events above evdev 247 - currently, it doesn’t seem to do that (except for 282 to 319 inclusive, which are recognised as mouse buttons).
Thank you for helping us improve Minecraft! We saved your files: