Minecraft:Key codes: Difference between revisions
More actions
Sync: updated from Minecraft |
Sync: updated from Minecraft |
||
| (10 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
{{For|the codes used prior to [[Minecraft:the Flattening]]|Java Edition pre-flattening data values#Key codes}} | {{For|the codes used prior to [[Minecraft:the Flattening]]|Java Edition pre-flattening data values#Key codes}} | ||
Only keys which can be directly detected by the operating system are able to be bound to game controls - keys such as F Lock<ref>{{bug|MC-265854}}</ref> or Fn typically are not | Only keys which can be directly detected by the operating system are able to be bound to game controls - keys such as F Lock<ref>{{bug|MC-265854}}</ref> or Fn typically are not recognizable themselves as keys, and Minecraft and all other computer programs will be oblivious to them in isolation. | ||
Only mouse buttons can have controls be bound to them in the options menu. Mouse movement, vertical scrolling and horizontal scrolling are hardcoded, and their default actions cannot be assigned to other keys or buttons, nor can scrolling or moving the mouse be made to do anything else. | Only mouse buttons can have controls be bound to them in the options menu. Mouse movement, vertical scrolling and horizontal scrolling are hardcoded, and their default actions cannot be assigned to other keys or buttons, nor can scrolling or moving the mouse be made to do anything else. | ||
| Line 15: | Line 15: | ||
The displayed names of several keys will change depending on the currently active system keyboard layout. The values displayed in this table assume a standard en-US QWERTY layout. Some keys also have operating system dependent names, which are assigned different rows sharing an ID. | The displayed names of several keys will change depending on the currently active system keyboard layout. The values displayed in this table assume a standard en-US QWERTY layout. Some keys also have operating system dependent names, which are assigned different rows sharing an ID. | ||
If SDL does not define a specific key as a valid input, it will be set to "Not Bound" if attempting to bind a control to it.{{until|java 26.4}} | |||
If a key is pressed that SDL does not assign a key code to, the game will act as though no key is pressed.{{upcoming|java 26.4}} This is a bug which Mojang have decided not to fix.<ref>{{bug|MC-312500}}</ref> | |||
{| class="wikitable sortable" data-description="Keyboard key and multimedia button IDs" style="margin-left:auto; margin-right:auto; text-align: center" | {| class="wikitable sortable" data-description="Keyboard key and multimedia button IDs" style="margin-left:auto; margin-right:auto; text-align: center" | ||
| Line 20: | Line 24: | ||
! Displayed name | ! Displayed name | ||
! colspan="2" | Physical key or button | ! colspan="2" | Physical key or button | ||
! Translation key{{note|name=internal-name| | ! Translation key{{note|name=internal-name|If the internal name of the key code from SDL is a single character, Minecraft will display that character regardless of whether there exists a translation key.}} | ||
|- | |- | ||
! {{code|key.keyboard.unknown}} | ! {{code|key.keyboard.unknown}} | ||
| {{btn|Not Bound}} | | {{btn|Not Bound}} | ||
| colspan="2" | Unassigned | | colspan="2" | Unassigned, or unrecognized<ref>{{bug|MC-310108}}</ref>{{until|java 26.4}} | ||
| {{code|key.keyboard.unknown}} | | {{code|key.keyboard.unknown}} | ||
|- | |- | ||
| Line 30: | Line 34: | ||
| {{btn|0}} | | {{btn|0}} | ||
| colspan="2" | {{key|0}} | | colspan="2" | {{key|0}} | ||
| {{note|name=single-character|No translation key exists and the internal name from | | {{note|name=single-character|No translation key exists and the internal name from SDL is displayed instead.}} | ||
|- | |- | ||
! {{code|key.keyboard.1}} | ! {{code|key.keyboard.1}} | ||
| Line 220: | Line 224: | ||
| {{btn|'}} | | {{btn|'}} | ||
| colspan="2" | {{key|'}} | | colspan="2" | {{key|'}} | ||
| {{code|key.keyboard.apostrophe}}{{note|name=unused-translation| | | {{code|key.keyboard.apostrophe}}{{note|name=unused-translation|This translation key is typically unused, but may be used with certain keyboard layouts or operating systems.}} | ||
|- | |- | ||
! {{code|key.keyboard.backslash}} | ! {{code|key.keyboard.backslash}} | ||
| Line 273: | Line 277: | ||
|- | |- | ||
! {{code|key.keyboard.world.1}} | ! {{code|key.keyboard.world.1}} | ||
| | | {{btn|\}} | ||
| colspan="2" | | | colspan="2" | {{key|\}} (ISO) | ||
| {{code|key.keyboard.world.1}}{{note|name=world-key-translation|This translation key could be used with certain keyboard layouts or operating systems.}} | | {{code|key.keyboard.world.1}}{{note|name=world-key-translation|This translation key could be used with certain keyboard layouts or operating systems.}} | ||
|- | |- | ||
! {{code|key.keyboard.f1}} | ! {{code|key.keyboard.f1}} | ||
| Line 401: | Line 400: | ||
| colspan="2" | {{key|F24}} | | colspan="2" | {{key|F24}} | ||
| {{code|key.keyboard.f24}} | | {{code|key.keyboard.f24}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.0}} | ! {{code|key.keyboard.keypad.0}} | ||
| | | {{btn|Keypad 0}} | ||
| colspan="2" | {{key|Numpad 0}} | | colspan="2" | {{key|Numpad 0}} | ||
| {{code|key.keyboard.keypad.0 | | {{code|key.keyboard.keypad.0}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.1}} | ! {{code|key.keyboard.keypad.1}} | ||
| | | {{btn|Keypad 1}} | ||
| colspan="2" | {{key|Numpad 1}} | | colspan="2" | {{key|Numpad 1}} | ||
| {{code|key.keyboard.keypad.1 | | {{code|key.keyboard.keypad.1}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.2}} | ! {{code|key.keyboard.keypad.2}} | ||
| | | {{btn|Keypad 2}} | ||
| colspan="2" | {{key|Numpad 2}} | | colspan="2" | {{key|Numpad 2}} | ||
| {{code|key.keyboard.keypad.2 | | {{code|key.keyboard.keypad.2}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.3}} | ! {{code|key.keyboard.keypad.3}} | ||
| | | {{btn|Keypad 3}} | ||
| colspan="2" | {{key|Numpad 3}} | | colspan="2" | {{key|Numpad 3}} | ||
| {{code|key.keyboard.keypad.3 | | {{code|key.keyboard.keypad.3}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.4}} | ! {{code|key.keyboard.keypad.4}} | ||
| | | {{btn|Keypad 4}} | ||
| colspan="2" | {{key|Numpad 4}} | | colspan="2" | {{key|Numpad 4}} | ||
| {{code|key.keyboard.keypad.4 | | {{code|key.keyboard.keypad.4}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.5}} | ! {{code|key.keyboard.keypad.5}} | ||
| | | {{btn|Keypad 5}} | ||
| colspan="2" | {{key|Numpad 5}} | | colspan="2" | {{key|Numpad 5}} | ||
| {{code|key.keyboard.keypad.5 | | {{code|key.keyboard.keypad.5}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.6}} | ! {{code|key.keyboard.keypad.6}} | ||
| | | {{btn|Keypad 6}} | ||
| colspan="2" | {{key|Numpad 6}} | | colspan="2" | {{key|Numpad 6}} | ||
| {{code|key.keyboard.keypad.6 | | {{code|key.keyboard.keypad.6}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.7}} | ! {{code|key.keyboard.keypad.7}} | ||
| | | {{btn|Keypad 7}} | ||
| colspan="2" | {{key|Numpad 7}} | | colspan="2" | {{key|Numpad 7}} | ||
| {{code|key.keyboard.keypad.7 | | {{code|key.keyboard.keypad.7}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.8}} | ! {{code|key.keyboard.keypad.8}} | ||
| | | {{btn|Keypad 8}} | ||
| colspan="2" | {{key|Numpad 8}} | | colspan="2" | {{key|Numpad 8}} | ||
| {{code|key.keyboard.keypad.8 | | {{code|key.keyboard.keypad.8}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.9}} | ! {{code|key.keyboard.keypad.9}} | ||
| | | {{btn|Keypad 9}} | ||
| colspan="2" | {{key|Numpad 9}} | | colspan="2" | {{key|Numpad 9}} | ||
| {{code|key.keyboard.keypad.9 | | {{code|key.keyboard.keypad.9}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.add}} | ! {{code|key.keyboard.keypad.add}} | ||
| | | {{btn|Keypad +}} | ||
| colspan="2" | {{key|Numpad <nowiki>+</nowiki>}} | | colspan="2" | {{key|Numpad <nowiki>+</nowiki>}} | ||
| {{code|key.keyboard.keypad.add | | {{code|key.keyboard.keypad.add}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.subtract}} | ! {{code|key.keyboard.keypad.subtract}} | ||
| | | {{btn|Keypad -}} | ||
| colspan="2" | {{key|Numpad -}} | | colspan="2" | {{key|Numpad -}} | ||
| {{code|key.keyboard.keypad.subtract | | {{code|key.keyboard.keypad.subtract}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.multiply}} | ! {{code|key.keyboard.keypad.multiply}} | ||
| | | {{btn|Keypad *}} | ||
| colspan="2" | {{key|Numpad *}} | | colspan="2" | {{key|Numpad *}} | ||
| {{code|key.keyboard.keypad.multiply | | {{code|key.keyboard.keypad.multiply}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.divide}} | ! {{code|key.keyboard.keypad.divide}} | ||
| | | {{btn|Keypad /}} | ||
| colspan="2" | {{key|Numpad /}} | | colspan="2" | {{key|Numpad /}} | ||
| {{code|key.keyboard.keypad.divide | | {{code|key.keyboard.keypad.divide}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.equal}} | ! {{code|key.keyboard.keypad.equal}} | ||
| | | {{btn|Keypad {{=}}}} | ||
| colspan="2" | {{key|Numpad {{=}}}} | | colspan="2" | {{key|Numpad {{=}}}} | ||
| {{code|key.keyboard.keypad.equal | | {{code|key.keyboard.keypad.equal}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.plus.minus | ! {{code|key.keyboard.keypad.plus.minus}} | ||
| {{btn|Keypad ±}} | | {{btn|Keypad ±}}{{verify}} | ||
| colspan="2" | {{key|Numpad ±}} | | colspan="2" | {{key|Numpad ±}} | ||
| {{code|key.keyboard.keypad.plus.minus}} | | {{code|key.keyboard.keypad.plus.minus}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.left.parenthesis | ! {{code|key.keyboard.keypad.left.parenthesis}} | ||
| {{btn|Keypad (}} | | {{btn|Keypad (}}{{verify}} | ||
| colspan="2" | {{key|Numpad (}} | | colspan="2" | {{key|Numpad (}} | ||
| {{code|key.keyboard.keypad.left.parenthesis}} | | {{code|key.keyboard.keypad.left.parenthesis}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.right.parenthesis | ! {{code|key.keyboard.keypad.right.parenthesis}} | ||
| {{btn|Keypad )}} | | {{btn|Keypad )}}{{verify}} | ||
| colspan="2" | {{key|Numpad )}} | | colspan="2" | {{key|Numpad )}} | ||
| {{code|key.keyboard.keypad.right.parenthesis}} | | {{code|key.keyboard.keypad.right.parenthesis}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.period}} | |||
! {{code|key.keyboard.keypad.period | |||
| {{btn|Keypad .}} | | {{btn|Keypad .}} | ||
| colspan="2" | {{key|Numpad .}} | | colspan="2" | {{key|Numpad .}} | ||
| {{code|key.keyboard.keypad.period}} | | {{code|key.keyboard.keypad.period}} | ||
|- | |- | ||
! {{code|key.keyboard.keypad.comma | ! {{code|key.keyboard.keypad.comma}} | ||
| {{btn|Keypad ,}} | | {{btn|Keypad ,}} | ||
| colspan="2" | {{key|Numpad ,}}{{note| | | colspan="2" | {{key|Numpad ,}}{{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.keypad.comma}} | | {{code|key.keyboard.keypad.comma}} | ||
|- | |- | ||
| Line 519: | Line 508: | ||
! {{code|key.keyboard.menu}} | ! {{code|key.keyboard.menu}} | ||
| {{btn|Menu}} | | {{btn|Menu}} | ||
| colspan="2" | | | colspan="2" | {{key|Compose}}{{verify|windows?}} | ||
| {{code|key.keyboard.menu}} | | {{code|key.keyboard.menu}} | ||
|- | |- | ||
! {{code|key.keyboard.application | ! {{code|key.keyboard.application}} | ||
| {{btn|Application}} | | {{btn|Application}} | ||
| colspan="2" | {{key|Menu}} | | colspan="2" | {{key|Menu}} | ||
| Line 566: | Line 555: | ||
| colspan="2" | {{key|Print Screen}} | | colspan="2" | {{key|Print Screen}} | ||
| {{code|key.keyboard.print.screen}} | | {{code|key.keyboard.print.screen}} | ||
|- | |||
! {{code|key.keyboard.sys.req}} | |||
| {{btn|SysRq}}{{note|Mojang have chosen to keep this name, despite it being abbreviated in direct contrast to almost all other keys: {{bug|MC-311713}}}} | |||
| colspan="2" | {{key|System Request}}{{note|Linux only - only works on some systems right now, see https://github.com/libsdl-org/SDL/pull/16252}} | |||
| {{code|key.keyboard.sys.req}} | |||
|- | |- | ||
! {{code|key.keyboard.pause}} | ! {{code|key.keyboard.pause}} | ||
| Line 643: | Line 637: | ||
| {{code|key.keyboard.left.alt}} | | {{code|key.keyboard.left.alt}} | ||
|- | |- | ||
| {{btn|Left Option | | {{btn|Left Option}} | ||
| macOS | | macOS | ||
| {{key|Left Option}} | | {{key|Left Option}} | ||
| {{code|key.keyboard.left.option | | {{code|key.keyboard.left.option}} | ||
|- | |- | ||
! rowspan="2" | {{code|key.keyboard.right.alt}} | ! rowspan="2" | {{code|key.keyboard.right.alt}} | ||
| Line 654: | Line 648: | ||
| {{code|key.keyboard.right.alt}} | | {{code|key.keyboard.right.alt}} | ||
|- | |- | ||
| {{btn|Right Option | | {{btn|Right Option}} | ||
| macOS | | macOS | ||
| {{key|Right Option}} | | {{key|Right Option}} | ||
| {{code|key.keyboard.right.option | | {{code|key.keyboard.right.option}} | ||
|- | |- | ||
! rowspan="3" | {{code|key.keyboard.left.win}} | ! rowspan="3" | {{code|key.keyboard.left.win}} | ||
| | | {{btn|Left Windows}} | ||
| Windows | | Windows | ||
| {{key|Left Windows}} | | {{key|Left Windows}} | ||
| | | {{code|key.keyboard.left.windows}} | ||
|- | |- | ||
| {{btn|Left Command | | {{btn|Left Command}} | ||
| macOS | | macOS | ||
| {{key|Left Command}} | | {{key|Left Command}} | ||
| {{code|key.keyboard.left.command | | {{code|key.keyboard.left.command}} | ||
|- | |- | ||
| {{btn|Left Meta | | {{btn|Left Meta}} | ||
| Linux | | Linux | ||
| {{key|Left Meta}} | | {{key|Left Meta}} | ||
| {{code|key.keyboard.left.meta | | {{code|key.keyboard.left.meta}} | ||
|- | |- | ||
! rowspan="3" | {{code|key.keyboard.right.win}} | ! rowspan="3" | {{code|key.keyboard.right.win}} | ||
| | | {{btn|Right Windows}} | ||
| Windows | | Windows | ||
| {{key|Right Windows}} | | {{key|Right Windows}} | ||
| | | {{code|key.keyboard.right.windows}} | ||
|- | |- | ||
| {{btn|Right Command | | {{btn|Right Command}} | ||
| macOS | | macOS | ||
| {{key|Right Command}} | | {{key|Right Command}} | ||
| {{code|key.keyboard.right.command | | {{code|key.keyboard.right.command}} | ||
|- | |- | ||
| {{btn|Right Meta | | {{btn|Right Meta}} | ||
| Linux | | Linux | ||
| {{key|Right Meta}} | | {{key|Right Meta}} | ||
| {{code|key.keyboard.right.meta | | {{code|key.keyboard.right.meta}} | ||
|- | |- | ||
! {{code|key.keyboard.lang1 | ! rowspan="2" | {{code|key.keyboard.lang1}}<ref name="genericintl">Mojang have chosen to keep the generic, non-descriptive USB HID titles for these keys, matching their internal SDL3 IDs rather than the actual real-life key names: {{bug|MC-311175}}</ref> | ||
| {{btn|Language 1}}<ref name="genericintl"/> | | rowspan="2" | {{btn|Language 1}}<ref name="genericintl"/> | ||
| | | Windows/Linux | ||
| {{code|key.keyboard.lang1}}<ref name="genericintl"/> | | {{key|Hangeul}} | ||
| rowspan="2" | {{code|key.keyboard.lang1}}<ref name="genericintl"/> | |||
|- | |- | ||
| macOS | |||
| {{key|Kana}} | |||
|- | |- | ||
! {{code|key.keyboard. | ! rowspan="2" | {{code|key.keyboard.lang2}}<ref name="genericintl"/> | ||
| rowspan="2" | {{btn|Language 2}}<ref name="genericintl"/> | |||
| Windows/Linux | |||
| {{key|Hanja}} | |||
| rowspan="2" | {{code|key.keyboard.lang2}}<ref name="genericintl"/> | |||
|- | |||
| macOS | |||
| {{key|Eisu}} | |||
|- | |||
! {{code|key.keyboard.lang3}}<ref name="genericintl"/> | |||
| {{btn|Language 3}}<ref name="genericintl"/> | | {{btn|Language 3}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Katakana}} | | colspan="2" | {{key|Katakana}} | ||
| {{code|key.keyboard.lang3}}<ref name="genericintl"/> | | {{code|key.keyboard.lang3}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.lang4 | ! {{code|key.keyboard.lang4}}<ref name="genericintl"/> | ||
| {{btn|Language 4}}<ref name="genericintl"/> | | {{btn|Language 4}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Hiragana}} | | colspan="2" | {{key|Hiragana}} | ||
| {{code|key.keyboard.lang4}}<ref name="genericintl"/> | | {{code|key.keyboard.lang4}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.lang5 | ! {{code|key.keyboard.lang5}}<ref name="genericintl"/> | ||
| {{btn|Language 5}}<ref name="genericintl"/> | | {{btn|Language 5}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Zenkaku/Hankaku}}{{note| | | colspan="2" | {{key|Zenkaku/Hankaku}}{{note|name=XFree86-disparity|Does not bind to the correct key on some Linux systems: https://github.com/libsdl-org/SDL/pull/16239}} | ||
| {{code|key.keyboard.lang5}}<ref name="genericintl"/> | | {{code|key.keyboard.lang5}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international1 | ! {{code|key.keyboard.international1}}<ref name="genericintl"/> | ||
| {{btn|International 1}}<ref name="genericintl"/> | | {{btn|International 1}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|ろ}} (JIS) / {{key|/}} (ABNT) | | colspan="2" | {{key|ろ}} (JIS) / {{key|/}} (ABNT) | ||
| {{code|key.keyboard.international1}}<ref name="genericintl"/> | | {{code|key.keyboard.international1}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international2 | ! {{code|key.keyboard.international2}}<ref name="genericintl"/> | ||
| {{btn|International 2}}<ref name="genericintl"/> | | {{btn|International 2}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Katakana/Hiragana}} | | colspan="2" | {{key|Katakana/Hiragana}} | ||
| {{code|key.keyboard.international2}}<ref name="genericintl"/> | | {{code|key.keyboard.international2}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international3 | ! {{code|key.keyboard.international3}}<ref name="genericintl"/> | ||
| {{btn|International 3}}<ref name="genericintl"/> | | {{btn|International 3}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|¥}} | | colspan="2" | {{key|¥}} | ||
| {{code|key.keyboard.international3}}<ref name="genericintl"/> | | {{code|key.keyboard.international3}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international4 | ! {{code|key.keyboard.international4}}<ref name="genericintl"/> | ||
| {{btn|International 4}}<ref name="genericintl"/> | | {{btn|International 4}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Henkan}} | | colspan="2" | {{key|Henkan}} | ||
| {{code|key.keyboard.international4}}<ref name="genericintl"/> | | {{code|key.keyboard.international4}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international5 | ! {{code|key.keyboard.international5}}<ref name="genericintl"/> | ||
| {{btn|International 5}}<ref name="genericintl"/> | | {{btn|International 5}}<ref name="genericintl"/> | ||
| colspan="2" | {{key|Muhenkan}} | | colspan="2" | {{key|Muhenkan}} | ||
| {{code|key.keyboard.international5}}<ref name="genericintl"/> | | {{code|key.keyboard.international5}}<ref name="genericintl"/> | ||
|- | |- | ||
! {{code|key.keyboard.international6 | ! {{code|key.keyboard.international6}}<ref name="generic9800">{{bug|MC-311184}}</ref> | ||
| {{btn|International 6}}<ref name="generic9800"/> | | {{btn|International 6}}<ref name="generic9800"/> | ||
| colspan="2" | {{key|Numpad ,}} (PC-9800){{note|Windows only; it is assumed that KEY_KPJPCOMMA is meant to represent this on Linux, but is incorrectly bound to International 5 - see https://github.com/libsdl-org/SDL/pull/16168}} | | colspan="2" | {{key|Numpad ,}} (PC-9800){{note|Windows only; it is assumed that KEY_KPJPCOMMA is meant to represent this on Linux, but is incorrectly bound to International 5 - see https://github.com/libsdl-org/SDL/pull/16168}} | ||
| {{code|key.keyboard.international6}}<ref name="generic9800"/> | | {{code|key.keyboard.international6}}<ref name="generic9800"/> | ||
|- | |- | ||
! {{code|key.keyboard.mute}} | |||
! {{code|key.keyboard.mute | |||
| {{btn|Mute}} | | {{btn|Mute}} | ||
| colspan="2" | {{key|Mute}} | | colspan="2" | {{key|Mute}} | ||
| {{code|key.keyboard.mute}} | | {{code|key.keyboard.mute}} | ||
|- | |- | ||
! {{code|key.keyboard.volume.down | ! {{code|key.keyboard.volume.down}} | ||
| {{btn|Volume Down}} | | {{btn|Volume Down}} | ||
| colspan="2" | {{key|Volume Down}} | | colspan="2" | {{key|Volume Down}} | ||
| {{code|key.keyboard.volume.down}} | | {{code|key.keyboard.volume.down}} | ||
|- | |- | ||
! {{code|key.keyboard.volume.up | ! {{code|key.keyboard.volume.up}} | ||
| {{btn|Volume Up}} | | {{btn|Volume Up}} | ||
| colspan="2" | {{key|Volume Up}} | | colspan="2" | {{key|Volume Up}} | ||
| {{code|key.keyboard.volume.up}} | | {{code|key.keyboard.volume.up}} | ||
|- | |- | ||
! {{code|key.keyboard.media.play.pause | ! {{code|key.keyboard.media.play.pause}} | ||
| {{btn|Play/Pause}} | | {{btn|Play/Pause}} | ||
| colspan="2" | {{key|Media Play Pause}} | | colspan="2" | {{key|Media Play Pause}} | ||
| {{code|key.keyboard.media.play.pause}} | | {{code|key.keyboard.media.play.pause}} | ||
|- | |- | ||
! {{code|key.keyboard.media.play | ! {{code|key.keyboard.media.play}} | ||
| {{btn|Media Play}} | | {{btn|Media Play}} | ||
| colspan="2" | {{key|Media Play}} | | colspan="2" | {{key|Media Play}} | ||
| {{code|key.keyboard.media.play}} | | {{code|key.keyboard.media.play}} | ||
|- | |- | ||
! {{code|key.keyboard.media.pause | ! {{code|key.keyboard.media.pause}} | ||
| {{btn|Media Pause}} | | {{btn|Media Pause}} | ||
| colspan="2" | {{key|Media Pause}} | | colspan="2" | {{key|Media Pause}} | ||
| {{code|key.keyboard.media.pause}} | | {{code|key.keyboard.media.pause}} | ||
|- | |- | ||
! {{code|key.keyboard.media.record | ! {{code|key.keyboard.media.record}} | ||
| {{btn|Record}} | | {{btn|Record}} | ||
| colspan="2" | {{key|Media Record}} | | colspan="2" | {{key|Media Record}} | ||
| {{code|key.keyboard.media.record}} | | {{code|key.keyboard.media.record}} | ||
|- | |- | ||
! {{code|key.keyboard.media.fast.forward | ! {{code|key.keyboard.media.fast.forward}} | ||
| {{btn|Fast Forward}} | | {{btn|Fast Forward}} | ||
| colspan="2" | {{key|Media Fast Forward}} | | colspan="2" | {{key|Media Fast Forward}} | ||
| {{code|key.keyboard.media.fast.forward}} | | {{code|key.keyboard.media.fast.forward}} | ||
|- | |- | ||
! {{code|key.keyboard.media.rewind | ! {{code|key.keyboard.media.rewind}} | ||
| {{btn|Rewind}} | | {{btn|Rewind}} | ||
| colspan="2" | {{key|Media Rewind}} | | colspan="2" | {{key|Media Rewind}} | ||
| {{code|key.keyboard.media.rewind}} | | {{code|key.keyboard.media.rewind}} | ||
|- | |- | ||
! {{code|key.keyboard.media.next.track | ! {{code|key.keyboard.media.next.track}} | ||
| {{btn|Next Track}} | | {{btn|Next Track}} | ||
| colspan="2" | {{key|Media Next Track}} | | colspan="2" | {{key|Media Next Track}} | ||
| {{code|key.keyboard.media.next.track}} | | {{code|key.keyboard.media.next.track}} | ||
|- | |- | ||
! {{code|key.keyboard.media.previous.track | ! {{code|key.keyboard.media.previous.track}} | ||
| {{btn|Previous Track}} | | {{btn|Previous Track}} | ||
| colspan="2" | {{key|Media Previous Track}} | | colspan="2" | {{key|Media Previous Track}} | ||
| {{code|key.keyboard.media.previous.track}} | | {{code|key.keyboard.media.previous.track}} | ||
|- | |- | ||
! {{code|key.keyboard.media.stop | ! {{code|key.keyboard.media.stop}} | ||
| {{btn|Media Stop}} | | {{btn|Media Stop}} | ||
| colspan="2" | {{key|Media Stop}} | | colspan="2" | {{key|Media Stop}} | ||
| {{code|key.keyboard.media.stop}} | | {{code|key.keyboard.media.stop}} | ||
|- | |- | ||
! {{code|key.keyboard.media.eject | ! {{code|key.keyboard.media.eject}} | ||
| {{btn|Eject}} | | {{btn|Eject}} | ||
| colspan="2" | {{key|Media Eject}} | | colspan="2" | {{key|Media Eject}} | ||
| {{code|key.keyboard.media.eject}} | | {{code|key.keyboard.media.eject}} | ||
|- | |- | ||
! {{code|key.keyboard.media.select | ! {{code|key.keyboard.media.select}} | ||
| {{btn|Media Select}} | | {{btn|Media Select}} | ||
| colspan="2" | {{key|Media Select}} | | colspan="2" | {{key|Media Select}} | ||
| {{code|key.keyboard.media.select}} | | {{code|key.keyboard.media.select}} | ||
|- | |- | ||
! {{code|key.keyboard.stop | ! {{code|key.keyboard.stop}} | ||
| {{btn|Stop}} | | {{btn|Stop}} | ||
| colspan="2" | {{key|Stop}} | | colspan="2" | {{key|Stop}}{{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.stop}} | | {{code|key.keyboard.stop}} | ||
|- | |- | ||
! {{code|key.keyboard.cancel | ! {{code|key.keyboard.cancel}} | ||
| {{btn|Cancel}} | | {{btn|Cancel}} | ||
| colspan="2" | {{key|Cancel}} | | colspan="2" | {{key|Cancel}} | ||
| {{code|key.keyboard.cancel}} | | {{code|key.keyboard.cancel}} | ||
|- | |- | ||
! {{code|key.keyboard.cut | ! {{code|key.keyboard.cut}} | ||
| {{btn|Cut}} | | {{btn|Cut}} | ||
| colspan="2" | {{key|Cut}} | | colspan="2" | {{key|Cut}} | ||
| {{code|key.keyboard.cut}} | | {{code|key.keyboard.cut}} | ||
|- | |- | ||
! {{code|key.keyboard.copy | ! {{code|key.keyboard.copy}} | ||
| {{btn|Copy}} | | {{btn|Copy}} | ||
| colspan="2" | {{key|Copy}} | | colspan="2" | {{key|Copy}} | ||
| {{code|key.keyboard.copy}} | | {{code|key.keyboard.copy}} | ||
|- | |- | ||
! {{code|key.keyboard.paste | ! {{code|key.keyboard.paste}} | ||
| {{btn|Paste}} | | {{btn|Paste}} | ||
| colspan="2" | {{key|Paste}} | | colspan="2" | {{key|Paste}} | ||
| {{code|key.keyboard.paste}} | | {{code|key.keyboard.paste}} | ||
|- | |- | ||
! {{code|key.keyboard.undo | ! {{code|key.keyboard.undo}} | ||
| {{btn|Undo}} | | {{btn|Undo}} | ||
| colspan="2" | {{key|Undo}} | | colspan="2" | {{key|Undo}} | ||
| {{code|key.keyboard.undo}} | | {{code|key.keyboard.undo}} | ||
|- | |- | ||
! {{code|key.keyboard.again | ! {{code|key.keyboard.again}} | ||
| {{btn|Again}} | | {{btn|Again}} | ||
| colspan="2" | {{key|Redo}}<ref>{{bug|MC-310863}}</ref> | | colspan="2" | {{key|Redo}}<ref>{{bug|MC-310863}}</ref> | ||
| {{code|key.keyboard.again}} | | {{code|key.keyboard.again}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.new | ! {{code|key.keyboard.ac.new}} | ||
| {{btn|AC New}} | | {{btn|AC New}} | ||
| colspan="2" | {{key|Application New}} | | colspan="2" | {{key|Application New}} | ||
| {{code|key.keyboard.ac.new}} | | {{code|key.keyboard.ac.new}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.open | ! {{code|key.keyboard.ac.open}} | ||
| {{btn|AC Open}} | | {{btn|AC Open}} | ||
| colspan="2" | {{key|Application Open}} | | colspan="2" | {{key|Application Open}} | ||
| {{code|key.keyboard.ac.open}} | | {{code|key.keyboard.ac.open}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.save | ! {{code|key.keyboard.ac.save}} | ||
| {{btn|AC Save}} | | {{btn|AC Save}} | ||
| colspan="2" | {{key|Application Save}} | | colspan="2" | {{key|Application Save}} | ||
| {{code|key.keyboard.ac.save}} | | {{code|key.keyboard.ac.save}} | ||
|- | |- | ||
! {{code|key.keyboard.help | ! {{code|key.keyboard.help}} | ||
| {{btn|Help}} | | {{btn|Help}} | ||
| colspan="2" | {{key|Help}} | | colspan="2" | {{key|Help}} | ||
| {{code|key.keyboard.help}} | | {{code|key.keyboard.help}} | ||
|- | |- | ||
! {{code|key.keyboard.find | ! {{code|key.keyboard.find}} | ||
| {{btn|Find}} | | {{btn|Find}} | ||
| colspan="2" | {{key|Find}} | | colspan="2" | {{key|Find}} | ||
| {{code|key.keyboard.find}} | | {{code|key.keyboard.find}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.close | ! {{code|key.keyboard.ac.close}} | ||
| {{btn|AC Close}} | | {{btn|AC Close}} | ||
| colspan="2" | {{key|Application Close}} | | colspan="2" | {{key|Application Close}} | ||
| {{code|key.keyboard.ac.close}} | | {{code|key.keyboard.ac.close}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.exit | ! {{code|key.keyboard.ac.exit}} | ||
| {{btn|AC Exit}} | | {{btn|AC Exit}} | ||
| colspan="2" | {{key|Application Exit}} | | colspan="2" | {{key|Application Exit}}{{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.ac.exit}} | | {{code|key.keyboard.ac.exit}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.stop | ! {{code|key.keyboard.ac.stop}} | ||
| {{btn|AC Stop}} | | {{btn|AC Stop}} | ||
| colspan="2" | {{key|Application Stop}} | | colspan="2" | {{key|Application Stop}} | ||
| {{code|key.keyboard.ac.stop}} | | {{code|key.keyboard.ac.stop}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.properties | ! {{code|key.keyboard.ac.properties}} | ||
| {{btn|AC Properties}} | | {{btn|AC Properties}} | ||
| colspan="2" | {{key|Application Properties}} | | colspan="2" | {{key|Application Properties}}{{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.ac.properties}} | | {{code|key.keyboard.ac.properties}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.search | ! {{code|key.keyboard.ac.search}} | ||
| {{btn|AC Search}} | | {{btn|AC Search}} | ||
| colspan="2" | {{key|Application Search}} | | colspan="2" | {{key|Application Search}} | ||
| {{code|key.keyboard.ac.search}} | | {{code|key.keyboard.ac.search}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.home | ! {{code|key.keyboard.ac.home}} | ||
| {{btn|AC Home}} | | {{btn|AC Home}} | ||
| colspan="2" | {{key|Application Home}} | | colspan="2" | {{key|Application Home}} | ||
| {{code|key.keyboard.ac.home}} | | {{code|key.keyboard.ac.home}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.back | ! {{code|key.keyboard.ac.back}} | ||
| {{btn|AC Back}} | | {{btn|AC Back}} | ||
| colspan="2" | {{key|Application Back}} | | colspan="2" | {{key|Application Back}} | ||
| {{code|key.keyboard.ac.back}} | | {{code|key.keyboard.ac.back}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.forward | ! {{code|key.keyboard.ac.forward}} | ||
| {{btn|AC Forward}} | | {{btn|AC Forward}} | ||
| colspan="2" | {{key|Application Forward}} | | colspan="2" | {{key|Application Forward}} | ||
| {{code|key.keyboard.ac.forward}} | | {{code|key.keyboard.ac.forward}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.refresh | ! {{code|key.keyboard.ac.refresh}} | ||
| {{btn|AC Refresh}} | | {{btn|AC Refresh}} | ||
| colspan="2" | {{key|Application Refresh}} | | colspan="2" | {{key|Application Refresh}} | ||
| {{code|key.keyboard.ac.refresh}} | | {{code|key.keyboard.ac.refresh}} | ||
|- | |- | ||
! {{code|key.keyboard.ac.bookmarks | ! {{code|key.keyboard.ac.bookmarks}} | ||
| {{btn|AC Favorites}} | | {{btn|AC Favorites}} | ||
| colspan="2" | {{key|Application Bookmarks}} | | colspan="2" | {{key|Application Bookmarks}} | ||
| {{code|key.keyboard.ac.bookmarks}} | | {{code|key.keyboard.ac.bookmarks}} | ||
|- | |- | ||
! {{code|key.keyboard.power | ! {{code|key.keyboard.power}} | ||
| {{btn|Power}} | | {{btn|Power}} | ||
| colspan="2" | {{key|Power}} | | colspan="2" | {{key|Power}} | ||
| {{code|key.keyboard.power}} | | {{code|key.keyboard.power}} | ||
|- | |- | ||
! {{code|key.keyboard.sleep | ! {{code|key.keyboard.sleep}} | ||
| {{btn|Sleep}} | | {{btn|Sleep}} | ||
| colspan="2" | {{key|Sleep}} | | colspan="2" | {{key|Sleep}} | ||
| {{code|key.keyboard.sleep}} | | {{code|key.keyboard.sleep}} | ||
|- | |- | ||
! {{code|key.keyboard.wake | ! {{code|key.keyboard.wake}} | ||
| {{btn|Wake}} | | {{btn|Wake}} | ||
| colspan="2" | {{key|Wake}} | | colspan="2" | {{key|Wake}}{{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.wake}} | | {{code|key.keyboard.wake}} | ||
|- | |- | ||
! {{code| | ! {{code|key.keyboard.alternate.erase}} | ||
| {{btn| | | {{btn|Alternate Erase}} | ||
| colspan="2" | | | colspan="2" | {{note|name=XFree86-disparity}} | ||
| {{code|key.keyboard.alternate.erase}} | |||
|- | |- | ||
! {{code|key.keyboard.{{note|name=" | ! {{code|key.keyboard.channel.down}} | ||
| {{btn|key.keyboard.}}{{note|name=" | | {{btn|Channel Down}} | ||
| colspan="2" | | | colspan="2" | {{note|name=channelproblem|Linux only, but not assignable as the game fails to recognize key presses above ID 247: {{bug|MC-311578}}}} | ||
| {{code|key.keyboard.{{note|name=" | | {{code|key.keyboard.channel.down}} | ||
|} | |- | ||
! {{code|key.keyboard.channel.up}} | |||
==== Unused ==== | | {{btn|Channel Up}} | ||
Minecraft includes IDs and translation strings for all named SDL3 key IDs, even those which are not present in the key binding files for any supported operating system, and therefore cannot be accessed. | | colspan="2" | {{note|name=channelproblem}} | ||
| {{code|key.keyboard.channel.up}} | |||
These can be set via modifying {{code|[[Minecraft:options.txt]]}} manually, but will not be triggerable due to the lack of an associated key. | |- | ||
! {{code|key.keyboard.clear}} | |||
Keys such as | | {{btn|Clear}} | ||
{| class="wikitable sortable" data-description="IDs of unused keys" style="margin-left:auto; margin-right:auto; text-align: center" | | colspan="2" | {{note|name=247plus|Linux only, but not assignable as the game fails to recognize key presses above ID 247: {{bug|MC-311584}}}} | ||
! ID{{note|The translation string is assumed to match unless stated otherwise.}} | | {{code|key.keyboard.clear}} | ||
! Displayed name | |- | ||
! Notes | ! {{code|key.keyboard.mode}} | ||
| {{btn|Mode}} | |||
| colspan="2" | {{note|name=247plus}}{{note|Accidentally assignable in Linux - see {{bug|MC-310984}}}} | |||
| {{code|key.keyboard.mode}} | |||
|- | |||
! {{code|key.keyboard.select}} | |||
| {{btn|Select}} | |||
| colspan="2" | {{note|name=247plus}} | |||
| {{code|key.keyboard.select}} | |||
|- | |||
! {{code|key.keyboard.{{note|name="keynumberid"|Three digit number representing SDL3 key ID}}}} | |||
| {{btn|key.keyboard.}}{{note|name="keynumberid"}} | |||
| colspan="2" | Undefined key IDs | |||
| {{code|key.keyboard.{{note|name="keynumberid"}}}} | |||
|} | |||
==== Unused ==== | |||
Minecraft includes IDs and translation strings for all named SDL3 key IDs, even those which are not present in the key binding files for any supported operating system, and therefore cannot be accessed. | |||
These can be set via modifying {{code|[[Minecraft:options.txt]]}} manually, but will not be triggerable due to the lack of an associated key. | |||
Keys such as Escape may warrant inclusion here. It may also be worth creating a table for accidentally-unassignable keys. | |||
{| class="wikitable sortable" data-description="IDs of unused keys" style="margin-left:auto; margin-right:auto; text-align: center" | |||
! ID{{note|The translation string is assumed to match unless stated otherwise.}} | |||
! Displayed name | |||
! Notes | |||
|- | |- | ||
! {{code|key.keyboard.ac.print}} | ! {{code|key.keyboard.ac.print}} | ||
| Line 975: | Line 997: | ||
| {{btn|Call}} | | {{btn|Call}} | ||
| This is a mobile phone button.<ref name="SDLmasterlist">https://wiki.libsdl.org/SDL3/SDL_Scancode</ref> | | This is a mobile phone button.<ref name="SDLmasterlist">https://wiki.libsdl.org/SDL3/SDL_Scancode</ref> | ||
|- | |- | ||
! {{code|key.keyboard.clear.again}} | ! {{code|key.keyboard.clear.again}} | ||
| Line 1,086: | Line 1,096: | ||
! {{code|key.keyboard.keypad.d}} | ! {{code|key.keyboard.keypad.d}} | ||
| {{btn|Keypad D}} | | {{btn|Keypad D}} | ||
| | |||
|- | |||
! {{code|key.keyboard.keypad.decimal}} | |||
| {{btn|Keypad Decimal}} | |||
| | | | ||
|- | |- | ||
| Line 1,207: | Line 1,221: | ||
| {{btn|Language 9}} | | {{btn|Language 9}} | ||
| | | | ||
|- | |- | ||
! {{code|key.keyboard.oper}} | ! {{code|key.keyboard.oper}} | ||
| Line 1,222: | Line 1,232: | ||
! {{code|key.keyboard.prior}} | ! {{code|key.keyboard.prior}} | ||
| {{btn|Prior}} | | {{btn|Prior}} | ||
| | | | ||
|- | |- | ||
| Line 1,239: | Line 1,245: | ||
| {{btn|Soft Right}} | | {{btn|Soft Right}} | ||
| This is a mobile phone button.<ref name="SDLmasterlist"/> | | This is a mobile phone button.<ref name="SDLmasterlist"/> | ||
|- | |- | ||
! {{code|key.keyboard.thousands.separator}} | ! {{code|key.keyboard.thousands.separator}} | ||
| {{btn|Thousands Separator}} | | {{btn|Thousands Separator}} | ||
| | | | ||
|- | |||
! {{code|key.keyboard.world.2}} | |||
| {{btn|<nowiki>#</nowiki>}} | |||
| Represents "Non-US Hash", which in practice is always pointed to the same code as the ANSI backslash. | |||
|} | |} | ||
| Line 1,252: | Line 1,258: | ||
Mouse buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from {{code|key.mouse.-2147483648}} to {{code|key.mouse.2147483647}} can be specified without being rejected by the game as invalid.<ref>{{bug|MC-268286}}</ref> However, the USB HID specification only permits mouse buttons from 1 to 65535,<ref>https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</ref> meaning that all negative values and the vast majority of the positive values can never actually be assigned to in-game actions without file editing. | Mouse buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from {{code|key.mouse.-2147483648}} to {{code|key.mouse.2147483647}} can be specified without being rejected by the game as invalid.<ref>{{bug|MC-268286}}</ref> However, the USB HID specification only permits mouse buttons from 1 to 65535,<ref>https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</ref> meaning that all negative values and the vast majority of the positive values can never actually be assigned to in-game actions without file editing. | ||
On Linux, mouse buttons up to 48 can be specified (evdev key press events 272 to 319) - it is not known if any supported operating systems support a 49th or higher mouse button as input. The maximum mouse button on macOS is 32,<ref>according to what karabiner-elements allows: https://discord.com/channels/647810384031645728/648555495564509184/1528136787434930358</ref> and the maximum mouse button on Windows is 5. | |||
On Linux, mouse buttons up to 48 | |||
For the first three mouse buttons, the translation keys match the key IDs; all other buttons follow a generic template. | For the first three mouse buttons, the translation keys match the key IDs; all other buttons follow a generic template. | ||
| Line 1,328: | Line 1,332: | ||
| {{mouse|ninth}} | | {{mouse|ninth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.10}} | ! {{code|key.mouse.10}} | ||
| Line 1,335: | Line 1,339: | ||
| {{mouse|tenth}} | | {{mouse|tenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.11}} | ! {{code|key.mouse.11}} | ||
| Line 1,342: | Line 1,346: | ||
| {{mouse|eleventh}} | | {{mouse|eleventh}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.12}} | ! {{code|key.mouse.12}} | ||
| Line 1,349: | Line 1,353: | ||
| {{mouse|twelfth}} | | {{mouse|twelfth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.13}} | ! {{code|key.mouse.13}} | ||
| Line 1,356: | Line 1,360: | ||
| {{mouse|thirteenth}} | | {{mouse|thirteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.14}} | ! {{code|key.mouse.14}} | ||
| Line 1,363: | Line 1,367: | ||
| {{mouse|fourteenth}} | | {{mouse|fourteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.15}} | ! {{code|key.mouse.15}} | ||
| Line 1,370: | Line 1,374: | ||
| {{mouse|fifteenth}} | | {{mouse|fifteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.16}} | ! {{code|key.mouse.16}} | ||
| Line 1,377: | Line 1,381: | ||
| {{mouse|sixteenth}} | | {{mouse|sixteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.17}} | ! {{code|key.mouse.17}} | ||
| Line 1,384: | Line 1,388: | ||
| {{mouse|seventeenth}} | | {{mouse|seventeenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.18}} | ! {{code|key.mouse.18}} | ||
| Line 1,391: | Line 1,395: | ||
| {{mouse|eighteenth}} | | {{mouse|eighteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.19}} | ! {{code|key.mouse.19}} | ||
| Line 1,398: | Line 1,402: | ||
| {{mouse|nineteenth}} | | {{mouse|nineteenth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.20}} | ! {{code|key.mouse.20}} | ||
| Line 1,405: | Line 1,409: | ||
| {{mouse|twentieth}} | | {{mouse|twentieth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.21}} | ! {{code|key.mouse.21}} | ||
| Line 1,412: | Line 1,416: | ||
| {{mouse|twenty-first}} | | {{mouse|twenty-first}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.22}} | ! {{code|key.mouse.22}} | ||
| Line 1,419: | Line 1,423: | ||
| {{mouse|twenty-second}} | | {{mouse|twenty-second}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.23}} | ! {{code|key.mouse.23}} | ||
| Line 1,426: | Line 1,430: | ||
| {{mouse|twenty-third}} | | {{mouse|twenty-third}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.24}} | ! {{code|key.mouse.24}} | ||
| Line 1,433: | Line 1,437: | ||
| {{mouse|twenty-fourth}} | | {{mouse|twenty-fourth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.25}} | ! {{code|key.mouse.25}} | ||
| Line 1,440: | Line 1,444: | ||
| {{mouse|twenty-fifth}} | | {{mouse|twenty-fifth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.26}} | ! {{code|key.mouse.26}} | ||
| Line 1,447: | Line 1,451: | ||
| {{mouse|twenty-sixth}} | | {{mouse|twenty-sixth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.27}} | ! {{code|key.mouse.27}} | ||
| Line 1,454: | Line 1,458: | ||
| {{mouse|twenty-seventh}} | | {{mouse|twenty-seventh}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.28}} | ! {{code|key.mouse.28}} | ||
| Line 1,461: | Line 1,465: | ||
| {{mouse|twenty-eighth}} | | {{mouse|twenty-eighth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.29}} | ! {{code|key.mouse.29}} | ||
| Line 1,468: | Line 1,472: | ||
| {{mouse|twenty-ninth}} | | {{mouse|twenty-ninth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.30}} | ! {{code|key.mouse.30}} | ||
| Line 1,475: | Line 1,479: | ||
| {{mouse|thirtieth}} | | {{mouse|thirtieth}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.31}} | ! {{code|key.mouse.31}} | ||
| Line 1,482: | Line 1,486: | ||
| {{mouse|thirty-first}} | | {{mouse|thirty-first}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.32}} | ! {{code|key.mouse.32}} | ||
| Line 1,489: | Line 1,493: | ||
| {{mouse|thirty-second}} | | {{mouse|thirty-second}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.33}} | ! {{code|key.mouse.33}} | ||
| Line 1,497: | Line 1,501: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.34}} | ! {{code|key.mouse.34}} | ||
| Line 1,504: | Line 1,508: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.35}} | ! {{code|key.mouse.35}} | ||
| Line 1,511: | Line 1,515: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.36}} | ! {{code|key.mouse.36}} | ||
| Line 1,518: | Line 1,522: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.37}} | ! {{code|key.mouse.37}} | ||
| Line 1,525: | Line 1,529: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.38}} | ! {{code|key.mouse.38}} | ||
| Line 1,532: | Line 1,536: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.39}} | ! {{code|key.mouse.39}} | ||
| Line 1,539: | Line 1,543: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.40}} | ! {{code|key.mouse.40}} | ||
| Line 1,546: | Line 1,550: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.41}} | ! {{code|key.mouse.41}} | ||
| Line 1,553: | Line 1,557: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.42}} | ! {{code|key.mouse.42}} | ||
| Line 1,560: | Line 1,564: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.43}} | ! {{code|key.mouse.43}} | ||
| Line 1,567: | Line 1,571: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.44}} | ! {{code|key.mouse.44}} | ||
| Line 1,574: | Line 1,578: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.45}} | ! {{code|key.mouse.45}} | ||
| Line 1,581: | Line 1,585: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.46}} | ! {{code|key.mouse.46}} | ||
| Line 1,588: | Line 1,592: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.47}} | ! {{code|key.mouse.47}} | ||
| Line 1,595: | Line 1,599: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|- | |- | ||
! {{code|key.mouse.48}} | ! {{code|key.mouse.48}} | ||
| Line 1,602: | Line 1,606: | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|No}} | ! {{tc|No}} | ||
! {{tc|Yes | ! {{tc|Yes}} | ||
|} | |} | ||
| Line 1,609: | Line 1,613: | ||
{{info needed section|In the lang files there are translation strings for each translatable keycode that is a shortened version (e.g. PgUp instead of PAGE UP). Figure out if these ever appear in the game and, if they do, add a column for them.}} | {{info needed section|In the lang files there are translation strings for each translatable keycode that is a shortened version (e.g. PgUp instead of PAGE UP). Figure out if these ever appear in the game and, if they do, add a column for them.}} | ||
{{cleanup|section=1|for differing operating systems (e.g. things involving the command key), implement something similar to what is seen with the Java Edition keyboard table above: make the key ID span multiple rows (rowspan 2), and have sub-rows per operating system}} | {{cleanup|section=1|for differing operating systems (e.g. things involving the command key), implement something similar to what is seen with the Java Edition keyboard table above: make the key ID span multiple rows (rowspan 2), and have sub-rows per operating system}} | ||
In {{BE}}, keys are stored as the decimal representation of their [https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes virtual key code]. | In {{BE}}, keys are stored as the decimal representation of their [https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes Windows virtual key code]. This also includes platforms other than Windows, where keys are loosely mapped to these key codes. | ||
On Android, the majority of non-basic keys are not recognized, and the Menu key is mapped to unknown (255). | |||
Some numbers are skipped because they are reserved or not assigned. By modifying options.txt, you can force the game to show these numbers (prefixed with "Button"), but they are unobtainable by pressing a key. | Some numbers are skipped because they are reserved or not assigned. By modifying <samp>options.txt</samp>, you can force the game to show these numbers (prefixed with "Button"), but they are unobtainable by pressing a key. The virtual key code specification also provides numbers for buttons on the mouse. However, mouse buttons are not stored as those numbers. | ||
Multiple keys can be bound to the same action by separating their key codes with a comma in <samp>options.txt</samp>. There is not a way to do this in-game. For example, the default value in <samp>options.txt</samp> for opening the chat is {{cd|84,13}}, representing both {{key|T}} and {{key|Return}}. | |||
{| class="wikitable" data-description="Keyboard button IDs" style="margin-left:auto; margin-right:auto; text-align:center" | {| class="wikitable" data-description="Keyboard button IDs" style="margin-left:auto; margin-right:auto; text-align:center" | ||
! ID | ! ID | ||
| Line 1,626: | Line 1,632: | ||
|- | |- | ||
! {{code|3}} | ! {{code|3}} | ||
| {{btn|Button3|be=1}}{{note|Displayed the same as the middle mouse button.}} | | {{btn|Button3|be=1}}{{note|Displayed the same as the middle mouse button.}}<ref>{{bug|MCPE-242522}}</ref> | ||
| {{key|Break}} | | {{key|Break}}{{note|requires Ctrl to be held before rebinding}} | ||
| | | | ||
|- | |- | ||
| Line 1,647: | Line 1,653: | ||
! {{code|13}} | ! {{code|13}} | ||
| {{btn|RETURN|be=1}} | | {{btn|RETURN|be=1}} | ||
| {{key|Enter}} | | {{key|Return}} / {{key|Numpad Enter}} | ||
| {{code|keyboard.keyName.return}} | | {{code|keyboard.keyName.return}} | ||
|- | |- | ||
| Line 1,677: | Line 1,683: | ||
! {{code|21}} | ! {{code|21}} | ||
| {{btn|Button21|be=1}} | | {{btn|Button21|be=1}} | ||
| {{key| | | {{key|Kana}}{{verify}} / {{key|Hangeul}} | ||
| | | | ||
|- | |- | ||
| Line 1,697: | Line 1,703: | ||
! {{code|25}} | ! {{code|25}} | ||
| {{btn|Button25|be=1}} | | {{btn|Button25|be=1}} | ||
| {{key|Hanja}} / {{key| | | {{key|Hanja}} / {{key|Eisu}}{{verify}} | ||
| | | | ||
|- | |- | ||
| Line 2,552: | Line 2,558: | ||
=== Mouse codes === | === Mouse codes === | ||
{{info needed section| | |||
{{info needed section|How many mouse buttons does Bedrock support? There are no official Linux versions, but perhaps ChromeOS (unlikely, due to the build being near identical to Android) or iOS could support more than Windows's five}} | |||
Mouse buttons are represented by negative numbers. | Mouse buttons are represented by negative numbers. | ||
On Android, only 3 buttons are recognized, despite the OS supporting up to 5 buttons. | |||
{| class="wikitable" data-description="Keyboard button IDs" style="margin-left:auto; margin-right:auto" | {| class="wikitable" data-description="Keyboard button IDs" style="margin-left:auto; margin-right:auto" | ||
! ID | ! ID | ||
| Line 2,730: | Line 2,741: | ||
{{HistoryTable | {{HistoryTable | ||
|{{HistoryLine|java classic}} | |{{HistoryLine|java classic}} | ||
|{{HistoryLine||0.0.23a|Controls can now be customized. Only keyboard buttons are | |{{HistoryLine||0.0.23a|Controls can now be customized. Only keyboard buttons are recognized as valid for rebinding.}} | ||
|{{HistoryLine|java beta}} | |{{HistoryLine|java beta}} | ||
|{{HistoryLine||1.8|dev=Pre-release|Controls can now be bound to mouse buttons; these are handled using negative numbers.}} | |{{HistoryLine||1.8|dev=Pre-release|Controls can now be bound to mouse buttons; these are handled using negative numbers.}} | ||
| Line 2,752: | Line 2,763: | ||
|{{HistoryLine||1.20|dev=pre2|Letter keys are now displayed in uppercase again.}} | |{{HistoryLine||1.20|dev=pre2|Letter keys are now displayed in uppercase again.}} | ||
|{{HistoryLine|||dev=pre3|Controls that are not bound to anything now display "Not Bound".}} | |{{HistoryLine|||dev=pre3|Controls that are not bound to anything now display "Not Bound".}} | ||
|{{HistoryLine||26.3|dev=snap4|Valid but undefined key codes have been changed from {{code|scancode.###}} to {{code|key.keyboard.###}}. | |{{HistoryLine||26.3|dev=snap4|Valid but undefined key codes have been changed from {{code|scancode.###}} to {{code|key.keyboard.###}}. | ||
|Removed {{code|key.keyboard.f25}}. Its translation string is purposefully retained in the game files for an unknown reason.<ref>{{bug|MC-311176}}</ref> | |Removed {{code|key.keyboard.f25}}. Its translation string is purposefully retained in the game files for an unknown reason.<ref>{{bug|MC-311176}}</ref> | ||
| Line 2,759: | Line 2,769: | ||
|Certain keys, such as keypad plus-or-minus, keypad opening bracket and keypad closing bracket, now display the character they represent, despite not being defined key codes in the game.<ref>{{bug|MC-310109}}, {{bug|MC-310110}}</ref> | |Certain keys, such as keypad plus-or-minus, keypad opening bracket and keypad closing bracket, now display the character they represent, despite not being defined key codes in the game.<ref>{{bug|MC-310109}}, {{bug|MC-310110}}</ref> | ||
|The game now uses SDL3. | |The game now uses SDL3. | ||
|The international backslash key is now | |The international backslash key is now recognized as {{code|key.keyboard.world.1}} on Windows, rather than {{code|key.keyboard.world.2}}. | ||
|{{code|key.keyboard.keypad.decimal}} can no longer be assigned. | |{{code|key.keyboard.keypad.decimal}} can no longer be assigned. | ||
|{{code|key.keyboard.menu}} is now assigned with {{key|Compose}} instead of {{key|Menu}}.}} | |{{code|key.keyboard.menu}} is now assigned with {{key|Compose}} instead of {{key|Menu}}.}} | ||
| Line 2,904: | Line 2,914: | ||
==== Removed keys ==== | ==== Removed keys ==== | ||
{{ | {| class="wikitable sortable" data-description="Key codes that no longer exist" style="margin-left:auto; margin-right:auto; text-align: center" | ||
! ID | |||
! Displayed name | |||
! colspan="2" | Physical key or button | |||
! Translation key | |||
|- | |||
! {{code|key.keyboard.f25}} | |||
| {{btn|F25}} | |||
| colspan="2" | Unclear{{note|Ostensibly for a twenty-fifth function key, but Windows, Linux and presumably macOS only recognize up to F24. Some keyboards from decades past go past F24, and Arch Linux can apparently recognize up to F246, however it is unknown if Minecraft would recognize either of these.}} | |||
| {{code|key.keyboard.f25}} | |||
|} | |||
== Notes == | == Notes == | ||
| Line 2,913: | Line 2,933: | ||
== Navigation == | == Navigation == | ||
{{Navbox | {{Navbox input}} | ||
[[Category:Gameplay]] | [[Category:Gameplay]] | ||
Latest revision as of 11:21, 22 October 2026
Template:For This is a list of key codes used by Minecraft:Minecraft, which are used in the Minecraft:options.txt file.
Java Edition
Only keys which can be directly detected by the operating system are able to be bound to game controls - keys such as F Lock<ref>Template:Bug</ref> or Fn typically are not recognizable themselves as keys, and Minecraft and all other computer programs will be oblivious to them in isolation.
Only mouse buttons can have controls be bound to them in the options menu. Mouse movement, vertical scrolling and horizontal scrolling are hardcoded, and their default actions cannot be assigned to other keys or buttons, nor can scrolling or moving the mouse be made to do anything else.
Java Edition does not provide official support for controllers.
Keyboard codes
Keyboard buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from Template:Code to Template:Code can be specified without being rejected by the game as invalid. Any keys corresponding to a valid SDL key code will be automatically converted to one of the named keys below.
The displayed names of several keys will change depending on the currently active system keyboard layout. The values displayed in this table assume a standard en-US QWERTY layout. Some keys also have operating system dependent names, which are assigned different rows sharing an ID.
If SDL does not define a specific key as a valid input, it will be set to "Not Bound" if attempting to bind a control to it.Template:Until
If a key is pressed that SDL does not assign a key code to, the game will act as though no key is pressed.Template:Upcoming This is a bug which Mojang have decided not to fix.<ref>Template:Bug</ref>
Unused
Minecraft includes IDs and translation strings for all named SDL3 key IDs, even those which are not present in the key binding files for any supported operating system, and therefore cannot be accessed.
These can be set via modifying Template:Code manually, but will not be triggerable due to the lack of an associated key.
Keys such as Escape may warrant inclusion here. It may also be worth creating a table for accidentally-unassignable keys.
Mouse codes
Mouse buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from Template:Code to Template:Code can be specified without being rejected by the game as invalid.<ref>Template:Bug</ref> However, the USB HID specification only permits mouse buttons from 1 to 65535,<ref>https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf</ref> meaning that all negative values and the vast majority of the positive values can never actually be assigned to in-game actions without file editing.
On Linux, mouse buttons up to 48 can be specified (evdev key press events 272 to 319) - it is not known if any supported operating systems support a 49th or higher mouse button as input. The maximum mouse button on macOS is 32,<ref>according to what karabiner-elements allows: https://discord.com/channels/647810384031645728/648555495564509184/1528136787434930358</ref> and the maximum mouse button on Windows is 5.
For the first three mouse buttons, the translation keys match the key IDs; all other buttons follow a generic template.
Bedrock Edition
Keyboard codes
Template:Info needed section Template:Cleanup In Template:BE, keys are stored as the decimal representation of their Windows virtual key code. This also includes platforms other than Windows, where keys are loosely mapped to these key codes.
On Android, the majority of non-basic keys are not recognized, and the Menu key is mapped to unknown (255).
Some numbers are skipped because they are reserved or not assigned. By modifying options.txt, you can force the game to show these numbers (prefixed with "Button"), but they are unobtainable by pressing a key. The virtual key code specification also provides numbers for buttons on the mouse. However, mouse buttons are not stored as those numbers.
Multiple keys can be bound to the same action by separating their key codes with a comma in options.txt. There is not a way to do this in-game. For example, the default value in options.txt for opening the chat is Template:Cd, representing both Template:Key and Template:Key.
Mouse codes
Mouse buttons are represented by negative numbers.
On Android, only 3 buttons are recognized, despite the OS supporting up to 5 buttons.
Controller codes
History
Java Edition
Removed keys
| ID | Displayed name | Physical key or button | Translation key | |
|---|---|---|---|---|
| Template:Code | Template:Btn | UnclearTemplate:Note | Template:Code | |
Notes
References
Minecraft:fr:Codes de touche Minecraft:hu:Billentyűkódok Minecraft:ja:キーコード Minecraft:nl:Toetscodes Minecraft:pt:Códigos de teclas Minecraft:ru:Коды клавиш Minecraft:uk:Коди клавіш Minecraft:zh:键控代码