Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Minecraft:Key codes: Difference between revisions

From SAS Gaming Wiki
SyncBot (talk | contribs)
Sync: updated from Minecraft
SyncBot (talk | contribs)
Sync: updated from Minecraft
 
(8 intermediate revisions by the same user not shown)
Line 12: Line 12:


=== Keyboard codes ===
=== Keyboard codes ===
{{info needed section|Instead of bug reports, it may be better to cite https://github.com/libsdl-org/SDL/pull/16239 for some unintuitive Linux mappings}}
Keyboard buttons are handled as a signed 32-bit integer, meaning that through editing options.txt, values from {{code|key.keyboard.-2147483648}} to {{code|key.keyboard.2147483647}} can be specified without being rejected by the game as invalid. Any keys corresponding to a valid [[Minecraft:SDL3 scancodes|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.
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.


Line 517: Line 520:
! {{code|key.keyboard.menu}}
! {{code|key.keyboard.menu}}
| {{btn|Menu}}
| {{btn|Menu}}
| colspan="2" | {{key|Menu}}{{until|java 26.3}}
| colspan="2" | {{key|Menu}}{{until|java 26.3}}<br>{{key|Compose}}{{upcoming|je 26.3}}
| {{code|key.keyboard.menu}}
| {{code|key.keyboard.menu}}
|-
|-
Line 689: Line 692:
| {{code|key.keyboard.right.meta}}{{upcoming|java 26.3}}
| {{code|key.keyboard.right.meta}}{{upcoming|java 26.3}}
|-
|-
! {{code|key.keyboard.lang1}}{{upcoming|java 26.3}}<ref name="genericintl">Mojang have chosen to assign generic, non-descriptive titles to these keys, matching their internal SDL3 IDs rather than the actual real-life key names: {{bug|MC-311175}}</ref>
! rowspan="2" | {{code|key.keyboard.lang1}}{{upcoming|java 26.3}}<ref name="genericintl">Mojang have chosen to assign generic, non-descriptive titles to 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"/>
| colspan="2" | {{key|Hangul}}
| Windows/Linux
| {{code|key.keyboard.lang1}}<ref name="genericintl"/>
| {{key|Hangeul}}
| rowspan="2" | {{code|key.keyboard.lang1}}<ref name="genericintl"/>
|-
| macOS
| {{key|Kana}}
|-
! rowspan="2" | {{code|key.keyboard.lang2}}{{upcoming|java 26.3}}<ref name="genericintl"/>
| rowspan="2" | {{btn|Language 2}}<ref name="genericintl"/>
| Windows/Linux
| {{key|Hanja}}
| rowspan="2" | {{code|key.keyboard.lang2}}<ref name="genericintl"/>
|-
|-
! {{code|key.keyboard.lang2}}{{upcoming|java 26.3}}<ref name="genericintl"/>
| macOS
| {{btn|Language 2}}<ref name="genericintl"/>
| {{key|Eisu}}
| colspan="2" | {{key|Hanja}}
| {{code|key.keyboard.lang2}}<ref name="genericintl"/>
|-
|-
! {{code|key.keyboard.lang3}}{{upcoming|java 26.3}}<ref name="genericintl"/>
! {{code|key.keyboard.lang3}}{{upcoming|java 26.3}}<ref name="genericintl"/>
Line 711: Line 722:
! {{code|key.keyboard.lang5}}{{upcoming|java 26.3}}<ref name="genericintl"/>
! {{code|key.keyboard.lang5}}{{upcoming|java 26.3}}<ref name="genericintl"/>
| {{btn|Language 5}}<ref name="genericintl"/>
| {{btn|Language 5}}<ref name="genericintl"/>
| colspan="2" | {{key|Halfwidth Fullwidth}}{{note|May not work correctly on Linux: {{bug|MC-310984}}}}
| colspan="2" | {{key|Zenkaku/Hankaku}}{{note|May not work correctly on Linux: {{bug|MC-310984}}}}
| {{code|key.keyboard.lang5}}<ref name="genericintl"/>
| {{code|key.keyboard.lang5}}<ref name="genericintl"/>
|-
|-
Line 743: Line 754:
| 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.alternate.erase}}{{upcoming|java 26.3}}
| {{btn|Alternate Erase}}
| colspan="2" | {{note|Not recognised for some reason: {{bug|MC-311320}}}}
| {{code|key.keyboard.alternate.erase}}
|-
|-
! {{code|key.keyboard.mute}}{{upcoming|java 26.3}}
! {{code|key.keyboard.mute}}{{upcoming|java 26.3}}
Line 944: Line 960:
| {{code|scancode.{{note|name="oldkeynumberid"}}}}
| {{code|scancode.{{note|name="oldkeynumberid"}}}}
|-
|-
! {{code|key.keyboard.{{note|name="newkeynumberid"|Three digit number representing SDL3 key ID}}}}{{upcoming|java 26.3}}{{more info|is this possible to obtain anymore?}}
! {{code|key.keyboard.{{note|name="newkeynumberid"|Three digit number representing SDL3 key ID}}}}{{upcoming|java 26.3}}{{more info|confirm whether key numbers undefined by SDL3 use this still}}
| {{btn|key.keyboard.}}{{note|name="newkeynumberid"}}
| {{btn|key.keyboard.}}{{note|name="newkeynumberid"}}
| colspan="2" | Keys with no assigned ID
| colspan="2" | Keys with no assigned ID
Line 951: Line 967:


==== Unused ====
==== Unused ====
{{info needed section|on Linux, SysRq, Channel Up, Channel Down, Mode, Select and Clear should be usable - move at least some to above table and cite bug reports explaining why they aren't, maybe making a new one for the first beforehand}}
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.
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.


Line 963: Line 980:
! {{code|key.keyboard.ac.print}}
! {{code|key.keyboard.ac.print}}
| {{btn|AC Print}}
| {{btn|AC Print}}
|
|-
! {{code|key.keyboard.alternate.erase}}
| {{btn|Alternate Erase}}
|  
|  
|-
|-
Line 1,238: Line 1,251:
|-
|-
! {{code|key.keyboard.sys.req}}
! {{code|key.keyboard.sys.req}}
| {{btn|SysRq}}
| {{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}}}}
| The Print Screen key usually holds this functionality.
|  
|-
|-
! {{code|key.keyboard.thousands.separator}}
! {{code|key.keyboard.thousands.separator}}
Line 1,644: Line 1,657:
! {{code|13}}
! {{code|13}}
| {{btn|RETURN|be=1}}
| {{btn|RETURN|be=1}}
| {{key|Enter}}
| {{key|Return}}
| {{code|keyboard.keyName.return}}
| {{code|keyboard.keyName.return}}
|-
|-
Line 1,674: Line 1,687:
! {{code|21}}
! {{code|21}}
| {{btn|Button21|be=1}}
| {{btn|Button21|be=1}}
| {{key|IME Kana}}{{info needed|Is this the hiragana-katakana toggle?}} / {{key|Hangul}}
| {{key|Kana}}{{verify}} / {{key|Hangeul}}
|
|
|-
|-
Line 1,694: Line 1,707:
! {{code|25}}
! {{code|25}}
| {{btn|Button25|be=1}}
| {{btn|Button25|be=1}}
| {{key|Hanja}} / {{key|IME Kanji}}
| {{key|Hanja}} / {{key|Eisu}}{{verify}}
|
|
|-
|-
Line 2,244: Line 2,257:
! {{code|166}}
! {{code|166}}
| {{btn|Button166|be=1}}
| {{btn|Button166|be=1}}
| {{key|Browser Back}}
| {{key|Application Back}}
|
|
|-
|-
! {{code|167}}
! {{code|167}}
| {{btn|Button167|be=1}}
| {{btn|Button167|be=1}}
| {{key|Browser Forward}}
| {{key|Application Forward}}
|
|
|-
|-
! {{code|168}}
! {{code|168}}
| {{btn|Button168|be=1}}
| {{btn|Button168|be=1}}
| {{key|Browser Refresh}}
| {{key|Application Refresh}}
|
|
|-
|-
! {{code|169}}
! {{code|169}}
| {{btn|Button169|be=1}}
| {{btn|Button169|be=1}}
| {{key|Browser Stop}}
| {{key|Application Stop}}
|
|
|-
|-
! {{code|170}}
! {{code|170}}
| {{btn|Button170|be=1}}
| {{btn|Button170|be=1}}
| {{key|Browser Search}}
| {{key|Application Search}}
|
|
|-
|-
! {{code|171}}
! {{code|171}}
| {{btn|Button171|be=1}}
| {{btn|Button171|be=1}}
| {{key|Browser Favorites}}
| {{key|Application Bookmarks}}
|
|
|-
|-
! {{code|172}}
! {{code|172}}
| {{btn|Button172|be=1}}
| {{btn|Button172|be=1}}
| {{key|Browser Start and Home}}
| {{key|Application Home}}
|
|
|-
|-
Line 2,366: Line 2,379:
| {{key|`}}
| {{key|`}}
| {{code|keyboard.keyName.grave}}
| {{code|keyboard.keyName.grave}}
|--
! {{code|194}}
| {{btn|Button193|be=1}}
| {{more info|It's the International 1 key, but I don't know what that is specifically.}}
|
|-
! {{code|194}}
| {{btn|Button194|be=1}}
| {{key|Numpad ,}}
|
|-
|-
! {{code|219}}
! {{code|219}}
Line 2,530: Line 2,553:
| {{btn|Button254|be=1}}
| {{btn|Button254|be=1}}
| {{key|Clear}}
| {{key|Clear}}
|
|-
! {{code|255}}
| {{btn|Button255|be=1}}
| All unknown keys
|
|
|}
|}
Line 2,722: Line 2,750:
|Controls that are not bound to anything now display "Not bound".
|Controls that are not bound to anything now display "Not bound".
|The game now uses GLFW.
|The game now uses GLFW.
|Added translation keys for most key codes, which are only displayed for keys GLFW doesn't return a name for.}}
|Added translation keys for most key codes, which are only displayed for keys GLFW doesn't return a name for.
|Keys with no assigned ID are called {{code|scancode.###}}
|Accepted values are -2147483648 to 2147483647,{{verify}} though obviously only a tiny subset are attainable.}}
|{{HistoryLine|||dev=17w45a|Keyboard key codes and their translation keys are now prefixed with {{code|key.keyboard.}}.
|{{HistoryLine|||dev=17w45a|Keyboard key codes and their translation keys are now prefixed with {{code|key.keyboard.}}.
|{{code|key.keyboard.-1}} is now used for controls that are not bound to anything.}}
|{{code|key.keyboard.-1}} is now used for controls that are not bound to anything.}}
Line 2,734: Line 2,764:
|{{HistoryLine|java upcoming}}
|{{HistoryLine|java upcoming}}
|{{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}}.
|Removed {{code|key.keyboard.f25}}. Its translation string is purposefully retained in the game files for an unknown reason.<ref>{{bug|MC-311176}}</ref>
|Keypad keys are now prefixed with "Keypad ".
|Keypad keys are now prefixed with "Keypad ".
|Keys are only displayed as the internal name that SDL provides if that name is one character long and uses the translation key otherwise.
|Keys are only displayed as the internal name that SDL provides if that name is one character long and uses the translation key otherwise.
|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 recognised as {{code|key.keyboard.world.1}} on Windows, rather than {{code|key.keyboard.world.2}}.}}
|The international backslash key is now recognised 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.menu}} is now assigned with {{key|Compose}} instead of {{key|Menu}}.}}
|{{HistoryLine|||dev=snap7|Several new translatable key codes have been added:
|{{HistoryLine|||dev=snap7|Several new translatable key codes have been added:
{{collapse|content=
{{collapse|content=
* {{code|key.keyboard.keypad.period}}
* {{code|key.keyboard.99}} → {{code|key.keyboard.keypad.period}}
* {{code|key.keyboard.keypad.comma}}
* {{code|key.keyboard.101}} → {{code|key.keyboard.application}}
* {{code|key.keyboard.keypad.plus.minus}}
* {{code|key.keyboard.117}} → {{code|key.keyboard.help}}
* {{code|key.keyboard.keypad.left.parenthesis}}
* {{code|key.keyboard.120}} → {{code|key.keyboard.stop}}
* {{code|key.keyboard.keypad.right.parenthesis}}
* {{code|key.keyboard.121}} → {{code|key.keyboard.again}}
* {{code|key.keyboard.application}}
* {{code|key.keyboard.122}} → {{code|key.keyboard.undo}}
* {{code|key.keyboard.mute}}
* {{code|key.keyboard.123}} → {{code|key.keyboard.cut}}
* {{code|key.keyboard.volume.up}}
* {{code|key.keyboard.124}} → {{code|key.keyboard.copy}}
* {{code|key.keyboard.volume.down}}
* {{code|key.keyboard.125}} → {{code|key.keyboard.paste}}
* {{code|key.keyboard.media.play.pause}}
* {{code|key.keyboard.126}} → {{code|key.keyboard.find}}
* {{code|key.keyboard.stop}}
* {{code|key.keyboard.127}} → {{code|key.keyboard.mute}}
* {{code|key.keyboard.again}}
* {{code|key.keyboard.128}} → {{code|key.keyboard.volume.up}}
* {{code|key.keyboard.undo}}
* {{code|key.keyboard.129}} → {{code|key.keyboard.volume.down}}
* {{code|key.keyboard.cut}}
* {{code|key.keyboard.133}} → {{code|key.keyboard.keypad.comma}}
* {{code|key.keyboard.copy}}
* {{code|key.keyboard.182}} → {{code|key.keyboard.keypad.left.parenthesis}}
* {{code|key.keyboard.paste}}
* {{code|key.keyboard.183}} → {{code|key.keyboard.keypad.right.parenthesis}}
* {{code|key.keyboard.find}}
* {{code|key.keyboard.215}} → {{code|key.keyboard.keypad.plus.minus}}
* {{code|key.keyboard.help}}
* {{code|key.keyboard.271}} → {{code|key.keyboard.media.play.pause}}
* {{code|key.keyboard.new}}
* {{code|key.keyboard.273}} → {{code|key.keyboard.new}}
* {{code|key.keyboard.save}}
* {{code|key.keyboard.277}} → {{code|key.keyboard.save}}
}}
}}
|{{code|key.keyboard.left.alt}}, {{code|key.keyboard.right.alt}}, {{code|key.keyboard.left.win}}, and {{code|key.keyboard.right.win}} now have different display names depending on the user's operating system.{{info needed|Checking the lang files shows that there are distinct "[left/right].win" and "[left/right].windows" translation strings - explain how these are applied}}}}
|{{code|key.keyboard.left.alt}}, {{code|key.keyboard.right.alt}}, {{code|key.keyboard.left.win}}, and {{code|key.keyboard.right.win}} now use different translation keys based on the user's operating system.}}
|{{HistoryLine|||dev=snap9|Translatable key codes have been added for all SDL scancodes:
|{{HistoryLine|||dev=snap9|IDs and translation strings have been added for all SDL scancodes, regardless of whether or not said keycodes correspond to actual, bindable keyboard buttons:
{{collapse|content=
{{collapse|content=
* {{code|key.keyboard.ac.back}}
* {{code|key.keyboard.102}} {{code|key.keyboard.power}}
* {{code|key.keyboard.ac.bookmarks}}
* {{code|key.keyboard.116}} {{code|key.keyboard.execute}}
* {{code|key.keyboard.ac.close}}
* {{code|key.keyboard.119}} {{code|key.keyboard.select}}
* {{code|key.keyboard.ac.exit}}
* {{code|key.keyboard.134}} → {{code|key.keyboard.keypad.equals.as400}}
* {{code|key.keyboard.ac.forward}}
* {{code|key.keyboard.135}} {{code|key.keyboard.international1}}
* {{code|key.keyboard.ac.home}}
* {{code|key.keyboard.136}} {{code|key.keyboard.international2}}
* {{code|key.keyboard.ac.open}}
* {{code|key.keyboard.137}} → {{code|key.keyboard.international3}}
* {{code|key.keyboard.ac.print}}
* {{code|key.keyboard.138}} {{code|key.keyboard.international4}}
* {{code|key.keyboard.ac.properties}}
* {{code|key.keyboard.139}} {{code|key.keyboard.international5}}
* {{code|key.keyboard.ac.refresh}}
* {{code|key.keyboard.140}} {{code|key.keyboard.international6}}
* {{code|key.keyboard.ac.search}}
* {{code|key.keyboard.141}} {{code|key.keyboard.international7}}
* {{code|key.keyboard.ac.stop}}
* {{code|key.keyboard.142}} {{code|key.keyboard.international8}}
* {{code|key.keyboard.alternate.erase}}
* {{code|key.keyboard.143}} {{code|key.keyboard.international9}}
* {{code|key.keyboard.call}}
* {{code|key.keyboard.144}} {{code|key.keyboard.lang1}}
* {{code|key.keyboard.cancel}}
* {{code|key.keyboard.145}} {{code|key.keyboard.lang2}}
* {{code|key.keyboard.channel.down}}
* {{code|key.keyboard.146}} {{code|key.keyboard.lang3}}
* {{code|key.keyboard.channel.up}}
* {{code|key.keyboard.147}} {{code|key.keyboard.lang4}}
* {{code|key.keyboard.clear}}
* {{code|key.keyboard.148}} {{code|key.keyboard.lang5}}
* {{code|key.keyboard.clear.again}}
* {{code|key.keyboard.149}} {{code|key.keyboard.lang6}}
* {{code|key.keyboard.crsel}}
* {{code|key.keyboard.150}} {{code|key.keyboard.lang7}}
* {{code|key.keyboard.currency.subunit}}
* {{code|key.keyboard.151}} {{code|key.keyboard.lang8}}
* {{code|key.keyboard.currency.unit}}
* {{code|key.keyboard.152}} {{code|key.keyboard.lang9}}
* {{code|key.keyboard.decimal.separator}}
* {{code|key.keyboard.153}} {{code|key.keyboard.alternate.erase}}
* {{code|key.keyboard.end.call}}
* {{code|key.keyboard.154}} → {{code|key.keyboard.sys.req}}
* {{code|key.keyboard.enter2}}
* {{code|key.keyboard.155}} {{code|key.keyboard.cancel}}
* {{code|key.keyboard.execute}}
* {{code|key.keyboard.156}} {{code|key.keyboard.clear}}
* {{code|key.keyboard.exsel}}
* {{code|key.keyboard.157}} {{code|key.keyboard.prior}}
* {{code|key.keyboard.international1}}
* {{code|key.keyboard.158}} {{code|key.keyboard.enter2}}
* {{code|key.keyboard.international2}}
* {{code|key.keyboard.159}} {{code|key.keyboard.separator}}
* {{code|key.keyboard.international3}}
* {{code|key.keyboard.160}} {{code|key.keyboard.out}}
* {{code|key.keyboard.international4}}
* {{code|key.keyboard.161}} {{code|key.keyboard.oper}}
* {{code|key.keyboard.international5}}
* {{code|key.keyboard.162}} {{code|key.keyboard.clear.again}}
* {{code|key.keyboard.international6}}
* {{code|key.keyboard.163}} {{code|key.keyboard.crsel}}
* {{code|key.keyboard.international7}}
* {{code|key.keyboard.164}} {{code|key.keyboard.exsel}}
* {{code|key.keyboard.international8}}
* {{code|key.keyboard.176}} {{code|key.keyboard.keypad.00}}
* {{code|key.keyboard.international9}}
* {{code|key.keyboard.177}} {{code|key.keyboard.keypad.000}}
* {{code|key.keyboard.keypad.00}}
* {{code|key.keyboard.178}} {{code|key.keyboard.thousands.separator}}
* {{code|key.keyboard.keypad.000}}
* {{code|key.keyboard.179}} {{code|key.keyboard.decimal.separator}}
* {{code|key.keyboard.keypad.a}}
* {{code|key.keyboard.180}} {{code|key.keyboard.currency.unit}}
* {{code|key.keyboard.keypad.ampersand}}
* {{code|key.keyboard.181}} {{code|key.keyboard.currency.subunit}}
* {{code|key.keyboard.keypad.at}}
* {{code|key.keyboard.184}} {{code|key.keyboard.keypad.left.brace}}
* {{code|key.keyboard.keypad.b}}
* {{code|key.keyboard.185}} {{code|key.keyboard.keypad.right.brace}}
* {{code|key.keyboard.keypad.backspace}}
* {{code|key.keyboard.186}} {{code|key.keyboard.keypad.tab}}
* {{code|key.keyboard.keypad.binary}}
* {{code|key.keyboard.187}} {{code|key.keyboard.keypad.backspace}}
* {{code|key.keyboard.keypad.c}}
* {{code|key.keyboard.188}} {{code|key.keyboard.keypad.a}}
* {{code|key.keyboard.keypad.clear}}
* {{code|key.keyboard.189}} {{code|key.keyboard.keypad.b}}
* {{code|key.keyboard.keypad.clear.entry}}
* {{code|key.keyboard.190}} {{code|key.keyboard.keypad.c}}
* {{code|key.keyboard.keypad.colon}}
* {{code|key.keyboard.191}} {{code|key.keyboard.keypad.d}}
* {{code|key.keyboard.keypad.d}}
* {{code|key.keyboard.192}} {{code|key.keyboard.keypad.e}}
* {{code|key.keyboard.keypad.double.ampersand}}
* {{code|key.keyboard.193}} {{code|key.keyboard.keypad.f}}
* {{code|key.keyboard.keypad.double.vertical.bar}}
* {{code|key.keyboard.194}} {{code|key.keyboard.keypad.xor}}
* {{code|key.keyboard.keypad.e}}
* {{code|key.keyboard.195}} {{code|key.keyboard.keypad.power}}
* {{code|key.keyboard.keypad.equals.as400}}
* {{code|key.keyboard.196}} → {{code|key.keyboard.keypad.percent}}
* {{code|key.keyboard.keypad.exclamation}}
* {{code|key.keyboard.197}} {{code|key.keyboard.keypad.less}}
* {{code|key.keyboard.keypad.f}}
* {{code|key.keyboard.198}} → {{code|key.keyboard.keypad.greater}}
* {{code|key.keyboard.keypad.greater}}
* {{code|key.keyboard.199}} → {{code|key.keyboard.keypad.ampersand}}
* {{code|key.keyboard.keypad.hash}}
* {{code|key.keyboard.200}} → {{code|key.keyboard.keypad.double.ampersand}}
* {{code|key.keyboard.keypad.hexadecimal}}
* {{code|key.keyboard.201}} → {{code|key.keyboard.keypad.vertical.bar}}
* {{code|key.keyboard.keypad.left.brace}}
* {{code|key.keyboard.202}} → {{code|key.keyboard.keypad.double.vertical.bar}}
* {{code|key.keyboard.keypad.less}}
* {{code|key.keyboard.203}} → {{code|key.keyboard.keypad.colon}}
* {{code|key.keyboard.keypad.memory.add}}
* {{code|key.keyboard.204}} → {{code|key.keyboard.keypad.hash}}
* {{code|key.keyboard.keypad.memory.clear}}
* {{code|key.keyboard.205}} → {{code|key.keyboard.keypad.space}}
* {{code|key.keyboard.keypad.memory.divide}}
* {{code|key.keyboard.206}} → {{code|key.keyboard.keypad.at}}
* {{code|key.keyboard.keypad.memory.multiply}}
* {{code|key.keyboard.207}} → {{code|key.keyboard.keypad.exclamation}}
* {{code|key.keyboard.keypad.memory.recall}}
* {{code|key.keyboard.208}} → {{code|key.keyboard.keypad.memory.store}}
* {{code|key.keyboard.keypad.memory.store}}
* {{code|key.keyboard.209}} → {{code|key.keyboard.keypad.memory.recall}}
* {{code|key.keyboard.keypad.memory.subtract}}
* {{code|key.keyboard.210}} → {{code|key.keyboard.keypad.memory.clear}}
* {{code|key.keyboard.keypad.octal}}
* {{code|key.keyboard.211}} → {{code|key.keyboard.keypad.memory.add}}
* {{code|key.keyboard.keypad.percent}}
* {{code|key.keyboard.212}} → {{code|key.keyboard.keypad.memory.subtract}}
* {{code|key.keyboard.keypad.power}}
* {{code|key.keyboard.213}} → {{code|key.keyboard.keypad.memory.multiply}}
* {{code|key.keyboard.keypad.right.brace}}
* {{code|key.keyboard.214}} → {{code|key.keyboard.keypad.memory.divide}}
* {{code|key.keyboard.keypad.space}}
* {{code|key.keyboard.216}} → {{code|key.keyboard.keypad.clear}}
* {{code|key.keyboard.keypad.tab}}
* {{code|key.keyboard.217}} → {{code|key.keyboard.keypad.clear.entry}}
* {{code|key.keyboard.keypad.vertical.bar}}
* {{code|key.keyboard.218}} → {{code|key.keyboard.keypad.binary}}
* {{code|key.keyboard.keypad.xor}}
* {{code|key.keyboard.219}} → {{code|key.keyboard.keypad.octal}}
* {{code|key.keyboard.lang1}}
* {{code|key.keyboard.221}} → {{code|key.keyboard.keypad.hexadecimal}}
* {{code|key.keyboard.lang2}}
* {{code|key.keyboard.257}} → {{code|key.keyboard.mode}}
* {{code|key.keyboard.lang3}}
* {{code|key.keyboard.258}} → {{code|key.keyboard.sleep}}
* {{code|key.keyboard.lang4}}
* {{code|key.keyboard.259}} → {{code|key.keyboard.wake}}
* {{code|key.keyboard.lang5}}
* {{code|key.keyboard.260}} → {{code|key.keyboard.channel.up}}
* {{code|key.keyboard.lang6}}
* {{code|key.keyboard.261}} → {{code|key.keyboard.channel.down}}
* {{code|key.keyboard.lang7}}
* {{code|key.keyboard.262}} → {{code|key.keyboard.media.play}}
* {{code|key.keyboard.lang8}}
* {{code|key.keyboard.263}} → {{code|key.keyboard.media.pause}}
* {{code|key.keyboard.lang9}}
* {{code|key.keyboard.264}} → {{code|key.keyboard.media.record}}
* {{code|key.keyboard.media.eject}}
* {{code|key.keyboard.265}} → {{code|key.keyboard.media.fast.forward}}
* {{code|key.keyboard.media.fast.forward}}
* {{code|key.keyboard.266}} → {{code|key.keyboard.media.rewind}}
* {{code|key.keyboard.media.next.track}}
* {{code|key.keyboard.267}} → {{code|key.keyboard.media.next.track}}
* {{code|key.keyboard.media.pause}}
* {{code|key.keyboard.268}} → {{code|key.keyboard.media.previous.track}}
* {{code|key.keyboard.media.play}}
* {{code|key.keyboard.269}} → {{code|key.keyboard.media.stop}}
* {{code|key.keyboard.media.previous.track}}
* {{code|key.keyboard.270}} → {{code|key.keyboard.media.eject}}
* {{code|key.keyboard.media.record}}
* {{code|key.keyboard.272}} → {{code|key.keyboard.media.select}}
* {{code|key.keyboard.media.rewind}}
* {{code|key.keyboard.274}} → {{code|key.keyboard.ac.open}}
* {{code|key.keyboard.media.select}}
* {{code|key.keyboard.275}} → {{code|key.keyboard.ac.close}}
* {{code|key.keyboard.media.stop}}
* {{code|key.keyboard.276}} → {{code|key.keyboard.ac.exit}}
* {{code|key.keyboard.mode}}
* {{code|key.keyboard.278}} → {{code|key.keyboard.ac.print}}
* {{code|key.keyboard.oper}}
* {{code|key.keyboard.279}} → {{code|key.keyboard.ac.properties}}
* {{code|key.keyboard.out}}
* {{code|key.keyboard.280}} → {{code|key.keyboard.ac.search}}
* {{code|key.keyboard.power}}
* {{code|key.keyboard.281}} → {{code|key.keyboard.ac.home}}
* {{code|key.keyboard.prior}}
* {{code|key.keyboard.282}} → {{code|key.keyboard.ac.back}}
* {{code|key.keyboard.select}}
* {{code|key.keyboard.283}} → {{code|key.keyboard.ac.forward}}
* {{code|key.keyboard.separator}}
* {{code|key.keyboard.284}} → {{code|key.keyboard.ac.stop}}
* {{code|key.keyboard.sleep}}
* {{code|key.keyboard.285}} → {{code|key.keyboard.ac.refresh}}
* {{code|key.keyboard.soft.left}}
* {{code|key.keyboard.286}} → {{code|key.keyboard.ac.bookmarks}}
* {{code|key.keyboard.soft.right}}
* {{code|key.keyboard.287}} → {{code|key.keyboard.soft.left}}
* {{code|key.keyboard.sys.req}}
* {{code|key.keyboard.288}} → {{code|key.keyboard.soft.right}}
* {{code|key.keyboard.thousands.separator}}
* {{code|key.keyboard.289}} → {{code|key.keyboard.call}}
* {{code|key.keyboard.wake}}
* {{code|key.keyboard.290}} → {{code|key.keyboard.end.call}}
}}
}}
|{{code|key.keyboard.application}} now displays as "Application".
|{{code|key.keyboard.application}} now displays as "Application".

Latest revision as of 11:07, 8 September 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

Template:For

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 recognisable 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

Template:Info needed section 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.

ID Displayed name Physical key or button Translation keyTemplate:Note
Template:Code Template:Btn UnassignedTemplate:Note Template:Code
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Note
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key (ANSI) Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:UntilTemplate:Note
Template:BtnTemplate:Upcoming
VariesTemplate:NoteTemplate:Until
Template:Key (ISO)Template:Upcoming
Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
VariesTemplate:NoteTemplate:Until
Cannot be assignedTemplate:Upcoming
Template:CodeTemplate:Note
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:KeyTemplate:Note Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:CodeTemplate:Until Template:Btn UnclearTemplate:Note Template:Code
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:Key Template:CodeTemplate:Note
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Template:KeyTemplate:Until
Cannot be assignedTemplate:Upcoming
Template:CodeTemplate:Note
Template:CodeTemplate:Upcoming Template:Btn Template:Key<ref>Template:Bug</ref> Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:KeyTemplate:Note Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:KeyTemplate:Until
Template:KeyTemplate:Upcoming
Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Cannot be assignedTemplate:Note Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Windows
Linux
Template:Key Template:Code
Template:BtnTemplate:Upcoming macOS Template:Key Template:CodeTemplate:Upcoming
Template:Code Template:Btn<ref>Template:Bug</ref> Windows
Linux
Template:Key Template:Code
Template:BtnTemplate:Upcoming macOS Template:Key Template:CodeTemplate:Upcoming
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Windows Template:Key Template:CodeTemplate:Until
Template:CodeTemplate:Upcoming
Template:BtnTemplate:Upcoming macOS Template:Key Template:CodeTemplate:Upcoming
Template:BtnTemplate:Upcoming Linux Template:Key Template:CodeTemplate:Upcoming
Template:Code Template:BtnTemplate:Until
Template:BtnTemplate:Upcoming
Windows Template:Key Template:CodeTemplate:Until
Template:CodeTemplate:Upcoming
Template:BtnTemplate:Upcoming macOS Template:Key Template:CodeTemplate:Upcoming
Template:BtnTemplate:Upcoming Linux Template:Key Template:CodeTemplate:Upcoming
Template:CodeTemplate:Upcoming<ref name="genericintl">Mojang have chosen to assign generic, non-descriptive titles to these keys, matching their internal SDL3 IDs rather than the actual real-life key names: Template:Bug</ref> Template:Btn<ref name="genericintl"/> Windows/Linux Template:Key Template:Code<ref name="genericintl"/>
macOS Template:Key
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Windows/Linux Template:Key Template:Code<ref name="genericintl"/>
macOS Template:Key
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:KeyTemplate:Note Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key (JIS) / Template:Key (ABNT) Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="genericintl"/> Template:Btn<ref name="genericintl"/> Template:Key Template:Code<ref name="genericintl"/>
Template:CodeTemplate:Upcoming<ref name="generic9800">Template:Bug</ref> Template:Btn<ref name="generic9800"/> Template:Key (PC-9800)Template:Note Template:Code<ref name="generic9800"/>
Template:CodeTemplate:Upcoming Template:Btn Template:Note Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key<ref>Template:Bug</ref> Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Upcoming Template:Btn Template:Key Template:Code
Template:CodeTemplate:Until Template:BtnTemplate:Note Keys with no assigned ID Template:Code
Template:CodeTemplate:UpcomingTemplate:More info Template:BtnTemplate:Note Keys with no assigned ID Template:Code

Unused

Template:Info needed section 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 World 2, Keypad Decimal and Escape may warrant inclusion here later.Template:Upcoming

IDTemplate:Note Displayed name Notes
Template:Code Template:Btn
Template:Code Template:Btn This is a mobile phone button.<ref name="SDLmasterlist">https://wiki.libsdl.org/SDL3/SDL_Scancode</ref>
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn This is a mobile phone button.<ref name="SDLmasterlist"/>
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn Accidentally assignable in Linux.<ref>Template:Bug</ref>
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn
Template:Code Template:Btn This is a mobile phone button.<ref name="SDLmasterlist"/>
Template:Code Template:Btn This is a mobile phone button.<ref name="SDLmasterlist"/>
Template:Code Template:BtnTemplate:Note
Template:Code Template:Btn

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.

Only the first eight mouse buttons can have controls assigned to them.Template:Until

On Linux, mouse buttons up to 48Template:Upcoming 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.

ID Displayed name Description Usable on
Windows macOS Linux
Template:CodeTemplate:Note Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:CodeTemplate:Note Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:CodeTemplate:Note Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:Tc
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:TcTemplate:Upcoming Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming
Template:Code Template:Btn Template:Mouse Template:Tc Template:Tc Template:TcTemplate:Upcoming

Bedrock Edition

Keyboard codes

Template:Info needed section Template:Cleanup In Template:BE, keys are stored as the decimal representation of their virtual key code.

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.

ID Displayed name Physical key or button Translation key
Template:Code Template:Btn Not Bound Template:Info needed
Template:Code Template:BtnTemplate:Note Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key / Template:Key Template:Code
Template:Code Template:Btn Template:Key / Template:Key Template:Code
Template:Code Template:Btn Template:Key / Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:KeyTemplate:Verify / Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key / Template:KeyTemplate:Verify
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Cannot be assignedTemplate:Note Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key / Template:Key / Template:Key
Template:Code Template:Btn Template:Key / Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:More info
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:KeyTemplate:Info needed Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn Template:Key Template:Code
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn Template:Key
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn Template:Info needed
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn OEM-SpecificTemplate:Note
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn Template:Key
Template:Code Template:Btn All unknown keys

Mouse codes

Template:Info needed section Mouse buttons are represented by negative numbers.

ID Displayed name Description
Template:Code Template:Btn Template:Mouse
Template:Code Template:Btn Template:Mouse
Template:Code Template:Btn Template:Mouse
Template:Code Template:Btn Template:Mouse
Template:Code Template:Btn Template:Mouse

Controller codes

Template:Info needed section

ID Display Description
Template:OS Template:OS Template:OS
Template:OS Template:OS
Template:Code Not Bound
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont A
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont B
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont X
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Y
Template:Code Template:Ore UI Cont Template:Ore UI Cont/Template:Ore UI Cont Template:Ore UI Cont D-Pad Up
Template:Code Template:Ore UI Cont Template:Ore UI Cont/Template:Ore UI Cont Template:Ore UI Cont D-Pad Down
Template:Code Template:Ore UI Cont Template:Ore UI Cont/Template:Ore UI Cont Template:Ore UI Cont D-Pad Left
Template:Code Template:Ore UI Cont Template:Ore UI Cont/Template:Ore UI Cont Template:Ore UI Cont D-Pad Right
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Stick Click
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Right Stick Click
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Bumper
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Right Bumper
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Select
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Menu
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Stick Down
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Stick Right
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Stick Left
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Stick Up
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Left Trigger
Template:Code Template:Ore UI Cont Template:Ore UI Cont Template:Ore UI Cont Right Trigger

History

Java Edition

Template:HistoryTable

Removed keys

Template:Section needed

Notes

Template:Notelist

References

Template:Reflist

Navigation

Template:Navbox Java Edition technical Template:Navbox Bedrock Edition

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:键控代码