-
Notifications
You must be signed in to change notification settings - Fork 1.7k
USB: HID Usage Table
https://www.usb.org/sites/default/files/hut1_22.pdf
Usage_ID | Usage_Name | Usage_Type | AT-101 | PC-AT | Mac | Unix | Boot |
---|---|---|---|---|---|---|---|
00-00 | Reserved | ||||||
01 | Keyboard ErrorRollOver1 | Sel | N/A | ✓ | ✓ | ✓ | 84/101/104 |
02 | Keyboard POSTFail1 | Sel | N/A | ✓ | ✓ | ✓ | 84/101/104 |
03 | Keyboard ErrorUndefined1 | Sel | N/A | ✓ | ✓ | ✓ | 84/101/104 |
04 | Keyboard a and A[2] | Sel | 31 | ✓ | ✓ | ✓ | 84/101/104 |
05 | Keyboard b and B | Sel | 50 | ✓ | ✓ | ✓ | 84/101/104 |
06 | Keyboard c and C[2] | Sel | 48 | ✓ | ✓ | ✓ | 84/101/104 |
07 | Keyboard d and D | Sel | 33 | ✓ | ✓ | ✓ | 84/101/104 |
08 | Keyboard e and E | Sel | 19 | ✓ | ✓ | ✓ | 84/101/104 |
09 | Keyboard f and F | Sel | 34 | ✓ | ✓ | ✓ | 84/101/104 |
0A | Keyboard g and G | Sel | 35 | ✓ | ✓ | ✓ | 84/101/104 |
0B | Keyboard h and H | Sel | 36 | ✓ | ✓ | ✓ | 84/101/104 |
0C | Keyboard i and I | Sel | 24 | ✓ | ✓ | ✓ | 84/101/104 |
0D | Keyboard j and J | Sel | 37 | ✓ | ✓ | ✓ | 84/101/104 |
0E | Keyboard k and K | Sel | 38 | ✓ | ✓ | ✓ | 84/101/104 |
0F | Keyboard l and L | Sel | 39 | ✓ | ✓ | ✓ | 84/101/104 |
10 | Keyboard m and M[2] | Sel | 52 | ✓ | ✓ | ✓ | 84/101/104 |
11 | Keyboard n and N | Sel | 51 | ✓ | ✓ | ✓ | 84/101/104 |
12 | Keyboard o and O[2] | Sel | 25 | ✓ | ✓ | ✓ | 84/101/104 |
13 | Keyboard p and P[2] | Sel | 26 | ✓ | ✓ | ✓ | 84/101/104 |
14 | Keyboard q and Q[2] | Sel | 17 | ✓ | ✓ | ✓ | 84/101/104 |
15 | Keyboard r and R | Sel | 20 | ✓ | ✓ | ✓ | 84/101/104 |
16 | Keyboard s and S | Sel | 32 | ✓ | ✓ | ✓ | 84/101/104 |
17 | Keyboard t and T | Sel | 21 | ✓ | ✓ | ✓ | 84/101/104 |
18 | Keyboard u and U | Sel | 23 | ✓ | ✓ | ✓ | 84/101/104 |
19 | Keyboard v and V | Sel | 49 | ✓ | ✓ | ✓ | 84/101/104 |
1A | Keyboard w and W[2] | Sel | 18 | ✓ | ✓ | ✓ | 84/101/104 |
1B | Keyboard x and X[2] | Sel | 47 | ✓ | ✓ | ✓ | 84/101/104 |
1C | Keyboard y and Y[2] | Sel | 22 | ✓ | ✓ | ✓ | 84/101/104 |
1D | Keyboard z and Z[2] | Sel | 46 | ✓ | ✓ | ✓ | 84/101/104 |
1E | Keyboard 1 and ![2] | Sel | 2 | ✓ | ✓ | ✓ | 84/101/104 |
1F | Keyboard 2 and @[2] | Sel | 3 | ✓ | ✓ | ✓ | 84/101/104 |
20 | Keyboard 3 and #[2] | Sel | 4 | ✓ | ✓ | ✓ | 84/101/104 |
21 | Keyboard 4 and $[2] | Sel | 5 | ✓ | ✓ | ✓ | 84/101/104 |
22 | Keyboard 5 and %[2] | Sel | 6 | ✓ | ✓ | ✓ | 84/101/104 |
23 | Keyboard 6 and ∧[2] | Sel | 7 | ✓ | ✓ | ✓ | 84/101/104 |
24 | Keyboard 7 and &[2] | Sel | 8 | ✓ | ✓ | ✓ | 84/101/104 |
25 | Keyboard 8 and *[2] | Sel | 9 | ✓ | ✓ | ✓ | 84/101/104 |
26 | Keyboard 9 and ([2] | Sel | 10 | ✓ | ✓ | ✓ | 84/101/104 |
27 | Keyboard 0 and )[2] | Sel | 11 | ✓ | ✓ | ✓ | 84/101/104 |
28 | Keyboard Return (ENTER)[3] | Sel | 43 | ✓ | ✓ | ✓ | 84/101/104 |
29 | Keyboard ESCAPE | Sel | 110 | ✓ | ✓ | ✓ | 84/101/104 |
2A | Keyboard DELETE (Backspace)[4] | Sel | 15 | ✓ | ✓ | ✓ | 84/101/104 |
2B | Keyboard Tab | Sel | 16 | ✓ | ✓ | ✓ | 84/101/104 |
2C | Keyboard Spacebar | Sel | 61 | ✓ | ✓ | ✓ | 84/101/104 |
2D | Keyboard - and (underscore)[2] | Sel | 12 | ✓ | ✓ | ✓ | 84/101/104 |
2E | Keyboard = and +[2] | Sel | 13 | ✓ | ✓ | ✓ | 84/101/104 |
2F | Keyboard [ and {[2] | Sel | 27 | ✓ | ✓ | ✓ | 84/101/104 |
30 | Keyboard ] and }[2] | Sel | 28 | ✓ | ✓ | ✓ | 84/101/104 |
31 | Keyboard \and | | Sel | 29 | ✓ | ✓ | ✓ | 84/101/104 |
32 | Keyboard Non-US # and ˜[5] | Sel | 42 | ✓ | ✓ | ✓ | 84/101/104 |
33 | Keyboard ; and :[2] | Sel | 40 | ✓ | ✓ | ✓ | 84/101/104 |
34 | Keyboard ‘ and “[2] | Sel | 41 | ✓ | ✓ | ✓ | 84/101/104 |
35 | Keyboard Grave Accent and Tilde[2] | Sel | 1 | ✓ | ✓ | ✓ | 84/101/104 |
36 | Keyboard , and <[2] | Sel | 53 | ✓ | ✓ | ✓ | 84/101/104 |
37 | Keyboard . and >[2] | Sel | 54 | ✓ | ✓ | ✓ | 84/101/104 |
38 | Keyboard / and ?[2] | Sel | 55 | ✓ | ✓ | ✓ | 84/101/104 |
39 | Keyboard Caps Lock[6] | Sel | 30 | ✓ | ✓ | ✓ | 84/101/104 |
3A | Keyboard F1 | Sel | 112 | ✓ | ✓ | ✓ | 84/101/104 |
3B | Keyboard F2 | Sel | 113 | ✓ | ✓ | ✓ | 84/101/104 |
3C | Keyboard F3 | Sel | 114 | ✓ | ✓ | ✓ | 84/101/104 |
3D | Keyboard F4 | Sel | 115 | ✓ | ✓ | ✓ | 84/101/104 |
3E | Keyboard F5 | Sel | 116 | ✓ | ✓ | ✓ | 84/101/104 |
3F | Keyboard F6 | Sel | 117 | ✓ | ✓ | ✓ | 84/101/104 |
40 | Keyboard F7 | Sel | 118 | ✓ | ✓ | ✓ | 84/101/104 |
41 | Keyboard F8 | Sel | 119 | ✓ | ✓ | ✓ | 84/101/104 |
42 | Keyboard F9 | Sel | 120 | ✓ | ✓ | ✓ | 84/101/104 |
43 | Keyboard F10 | Sel | 121 | ✓ | ✓ | ✓ | 84/101/104 |
44 | Keyboard F11 | Sel | 122 | ✓ | ✓ | ✓ | 84/101/104 |
45 | Keyboard F12 | Sel | 123 | ✓ | ✓ | ✓ | 84/101/104 |
46 | Keyboard PrintScreen[7] | Sel | 124 | ✓ | ✓ | ✓ | 84/101/104 |
47 | Keyboard Scroll Lock[6] | Sel | 125 | ✓ | ✓ | ✓ | 84/101/104 |
48 | Keyboard Pause[7] | Sel | 126 | ✓ | ✓ | ✓ | 84/101/104 |
49 | Keyboard Insert[7] | Sel | 75 | ✓ | ✓ | ✓ | 84/101/104 |
4A | Keyboard Home[7] | Sel | 80 | ✓ | ✓ | ✓ | 84/101/104 |
4B | Keyboard PageUp[7] | Sel | 85 | ✓ | ✓ | ✓ | 84/101/104 |
4C | Keyboard Delete Forward[7],[8] | Sel | 76 | ✓ | ✓ | ✓ | 84/101/104 |
4D | Keyboard End[7] | Sel | 81 | ✓ | ✓ | ✓ | 84/101/104 |
4E | Keyboard PageDown[7] | Sel | 86 | ✓ | ✓ | ✓ | 84/101/104 |
4F | Keyboard RightArrow[7] | Sel | 89 | ✓ | ✓ | ✓ | 84/101/104 |
50 | Keyboard LeftArrow[7] | Sel | 79 | ✓ | ✓ | ✓ | 84/101/104 |
51 | Keyboard DownArrow[7] | Sel | 84 | ✓ | ✓ | ✓ | 84/101/104 |
52 | Keyboard UpArrow[7] | Sel | 83 | ✓ | ✓ | ✓ | 84/101/104 |
53 | Keypad Num Lock and Clear[6] | Sel | 90 | ✓ | ✓ | ✓ | 84/101/104 |
54 | Keypad /[7] | Sel | 95 | ✓ | ✓ | ✓ | 84/101/104 |
55 | Keypad * | Sel | 100 | ✓ | ✓ | ✓ | 84/101/104 |
56 | Keypad - | Sel | 105 | ✓ | ✓ | ✓ | 84/101/104 |
57 | Keypad + | Sel | 106 | ✓ | ✓ | ✓ | 84/101/104 |
58 | Keypad ENTER[3] | Sel | 108 | ✓ | ✓ | ✓ | 84/101/104 |
59 | Keypad 1 and End | Sel | 93 | ✓ | ✓ | ✓ | 84/101/104 |
5A | Keypad 2 and Down Arrow | Sel | 98 | ✓ | ✓ | ✓ | 84/101/104 |
5B | Keypad 3 and PageDn | Sel | 103 | ✓ | ✓ | ✓ | 84/101/104 |
5C | Keypad 4 and Left Arrow | Sel | 92 | ✓ | ✓ | ✓ | 84/101/104 |
5D | Keypad 5 | Sel | 97 | ✓ | ✓ | ✓ | 84/101/104 |
5E | Keypad 6 and Right Arrow | Sel | 102 | ✓ | ✓ | ✓ | 84/101/104 |
5F | Keypad 7 and Home | Sel | 91 | ✓ | ✓ | ✓ | 84/101/104 |
60 | Keypad 8 and Up Arrow | Sel | 96 | ✓ | ✓ | ✓ | 84/101/104 |
61 | Keypad 9 and PageUp | Sel | 101 | ✓ | ✓ | ✓ | 84/101/104 |
62 | Keypad 0 and Insert | Sel | 99 | ✓ | ✓ | ✓ | 84/101/104 |
63 | Keypad . and Delete | Sel | 104 | ✓ | ✓ | ✓ | 84/101/104 |
64 | Keyboard Non-US \and |[9],[10] | Sel | 45 | ✓ | ✓ | ✓ | 84/101/104 |
65 | Keyboard Application[11] | Sel | 129 | ✓ | ✓ | 104 | |
66 | Keyboard Power[1] | Sel | ✓ | ✓ | |||
67 | Keypad = | Sel | ✓ | ||||
68 | Keyboard F13 | Sel | ✓ | ||||
69 | Keyboard F14 | Sel | ✓ | ||||
6A | Keyboard F15 | Sel | ✓ | ||||
6B | Keyboard F16 | Sel | |||||
6C | Keyboard F17 | Sel | |||||
6D | Keyboard F18 | Sel | |||||
6E | Keyboard F19 | Sel | |||||
6F | Keyboard F20 | Sel | |||||
70 | Keyboard F21 | Sel | |||||
71 | Keyboard F22 | Sel | |||||
72 | Keyboard F23 | Sel | |||||
73 | Keyboard F24 | Sel | |||||
74 | Keyboard Execute | Sel | ✓ | ||||
75 | Keyboard Help | Sel | ✓ | ||||
76 | Keyboard Menu | Sel | ✓ | ||||
77 | Keyboard Select | Sel | ✓ | ||||
78 | Keyboard Stop | Sel | ✓ | ||||
79 | Keyboard Again | Sel | ✓ | ||||
7A | Keyboard Undo | Sel | ✓ | ||||
7B | Keyboard Cut | Sel | ✓ | ||||
7C | Keyboard Copy | Sel | ✓ | ||||
7D | Keyboard Paste | Sel | ✓ | ||||
7E | Keyboard Find | Sel | ✓ | ||||
7F | Keyboard Mute | Sel | ✓ | ||||
80 | Keyboard Volume Up | Sel | ✓ | ||||
81 | Keyboard Volume Down | Sel | ✓ | ||||
82 | Keyboard Locking Caps Lock[12] | Sel | ✓ | ||||
83 | Keyboard Locking Num Lock[12] | Sel | ✓ | ||||
84 | Keyboard Locking Scroll Lock[12] | Sel | ✓ | ||||
85 | Keypad Comma[13] | Sel | 107 | ||||
86 | Keypad Equal Sign[14] | Sel | ✓ | ||||
87 | Keyboard International1[15],[16] | Sel | 56 | ||||
88 | Keyboard International2[17] | Sel | |||||
89 | Keyboard International3[18] | Sel | |||||
8A | Keyboard International4[19] | Sel | |||||
8B | Keyboard International5[20] | Sel | |||||
8C | Keyboard International6[21] | Sel | |||||
8D | Keyboard International7[22] | Sel | |||||
8E | Keyboard International8[23] | Sel | |||||
8F | Keyboard International9[23] | Sel | |||||
90 | Keyboard LANG1[24] | Sel | |||||
91 | Keyboard LANG2[25] | Sel | |||||
92 | Keyboard LANG3[26] | Sel | |||||
93 | Keyboard LANG4[27] | Sel | |||||
94 | Keyboard LANG5[28] | Sel | |||||
95 | Keyboard LANG6[29] | Sel | |||||
96 | Keyboard LANG7[29] | Sel | |||||
97 | Keyboard LANG8[29] | Sel | |||||
98 | Keyboard LANG9[29] | Sel | |||||
99 | Keyboard Alternate Erase[30] | Sel | |||||
9A | Keyboard SysReq/Attention[7] | Sel | |||||
9B | Keyboard Cancel | Sel | |||||
9C | Keyboard Clear | Sel | |||||
9D | Keyboard Prior | Sel | |||||
9E | Keyboard Return | Sel | |||||
9F | Keyboard Separator | Sel | |||||
A0 | Keyboard Out | Sel | |||||
A1 | Keyboard Oper | Sel | |||||
A2 | Keyboard Clear/Again | Sel | |||||
A3 | Keyboard CrSel/Props | Sel | |||||
A4 | Keyboard ExSel | Sel | |||||
A5-AF | Reserved | ||||||
B0 | Keypad 00 | Sel | |||||
B1 | Keypad 000 | Sel | |||||
B2 | Thousands Separator[31] | Sel | |||||
B3 | Decimal Separator[31] | Sel | |||||
B4 | Currency Unit[32] | Sel | |||||
B5 | Currency Sub-unit[32] | Sel | |||||
B6 | Keypad ( | Sel | |||||
B7 | Keypad ) | Sel | |||||
B8 | Keypad { | Sel | |||||
B9 | Keypad } | Sel | |||||
BA | Keypad Tab | Sel | |||||
BB | Keypad Backspace | Sel | |||||
BC | Keypad A | Sel | |||||
BD | Keypad B | Sel | |||||
BE | Keypad C | Sel | |||||
BF | Keypad D | Sel | |||||
C0 | Keypad E | Sel | |||||
C1 | Keypad F | Sel | |||||
C2 | Keypad XOR | Sel | |||||
C3 | Keypad ∧ | Sel | |||||
C4 | Keypad % | Sel | |||||
C5 | Keypad < | Sel | |||||
C6 | Keypad > | Sel | |||||
C7 | Keypad & | Sel | |||||
C8 | Keypad && | Sel | |||||
C9 | Keypad | | Sel | |||||
CA | Keypad || | Sel | |||||
CB | Keypad : | Sel | |||||
CC | Keypad # | Sel | |||||
CD | Keypad Space | Sel | |||||
CE | Keypad @ | Sel | |||||
CF | Keypad ! | Sel | |||||
D0 | Keypad Memory Store | Sel | |||||
D1 | Keypad Memory Recall | Sel | |||||
D2 | Keypad Memory Clear | Sel | |||||
D3 | Keypad Memory Add | Sel | |||||
D4 | Keypad Memory Subtract | Sel | |||||
D5 | Keypad Memory Multiply | Sel | |||||
D6 | Keypad Memory Divide | Sel | |||||
D7 | Keypad +/- | Sel | |||||
D8 | Keypad Clear | Sel | |||||
D9 | Keypad Clear Entry | Sel | |||||
DA | Keypad Binary | Sel | |||||
DB | Keypad Octal | Sel | |||||
DC | Keypad Decimal | Sel | |||||
DD | Keypad Hexadecimal | Sel | |||||
DE-DF | Reserved | ||||||
E0 | Keyboard LeftControl | DV | 58 | ✓ | ✓ | ✓ | 84/101/104 |
E1 | Keyboard LeftShift | DV | 44 | ✓ | ✓ | ✓ | 84/101/104 |
E2 | Keyboard LeftAlt | DV | 60 | ✓ | ✓ | ✓ | 84/101/104 |
E3 | Keyboard Left GUI[11],[33] | DV | 127 | ✓ | ✓ | ✓ | 104 |
E4 | Keyboard RightControl | DV | 64 | ✓ | ✓ | ✓ | 101/104 |
E5 | Keyboard RightShift | DV | 57 | ✓ | ✓ | ✓ | 84/101/104 |
E6 | Keyboard RightAlt | DV | 62 | ✓ | ✓ | ✓ | 101/104 |
E7 | Keyboard Right GUI[11],[34] | DV | 128 | ✓ | ✓ | ✓ | 104 |
E8-FFFF | Reserved |
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -|
|-----------------------------------------------------------| |-----------| |---------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +|
|-----------------------------------------------------------| `-----------' |-----------| |
|CapsL | A| S| D| F| G| H| J| K| L| ;| '| #|Entr| | 4| 5| 6| |
|-----------------------------------------------------------| ,---. |---------------|
|Shft| <| Z| X| C| V| B| N| M| ,| .| /| RO|Shift | |Up | | 1| 2| 3|Ent|
|-----------------------------------------------------------| ,-----------. |-----------| |
|Ctl|Gui|Alt|MHEN| Space |HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0| .| |
`-----------------------------------------------------------' `-----------' `---------------'
,---. ,---------------. ,---------------. ,---------------. ,-----------.
|110| |112|113|114|115| |116|117|118|119| |120|121|122|123| |124|125|126|
`---' `---------------' `---------------' `---------------' `-----------'
,-----------------------------------------------------------. ,-----------. ,---------------.
| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| | 75| 80| 85| | 90| 95|100|105|
|-----------------------------------------------------------| |-----------| |---------------|
| 16 | 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29 | | 76| 81| 86| | 91| 96|101|106|
|-----------------------------------------------------------| `-----------' |-----------| |
| 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43 | | 92| 97|102| |
|-----------------------------------------------------------| ,---. |---------------|
| 44 | 45| 46| 47| 48| 49| 50| 51| 52| 53| 54| 55| 56| 57 | | 83| | 93| 98|103|108|
|-----------------------------------------------------------| ,-----------. |-----------| |
| 58|127| 60| 70| 61 | 71| 72| 62|128|129| 64| | 79| 84| 89| | 99|104| |
`-----------------------------------------------------------' `-----------' `---------------'
Reserved for typical keyboard status or keyboard errors. Sent as a member of the keyboard array. Not a physical key.
Typically remapped for other languages in the host system.
Keyboard Enter and Keypad Enter generate different Usage codes.
Backs up the cursor one position, deleting a character as it goes.
Typical language mappings: US: \|Belg: µ `£French Canadian: <}>Danish: ’* Dutch: <>French: *µ German: # ’Italian: ù §LatinAmerica: } `] Norwegian: , * Spain: }Ç Swedish: , * Swiss: $ £UK: # ~
Implemented as a non-locking key; sent as member of an array.
Usage of keys is not modified by the state of the Control, Alt, Shift or Num Lock keys. That is, a key does not send extra codes to compensate for the state of any Control, Alt, Shift or Num Lock keys.
Deletes one character without changing position.
Typical language mappings: Belg: <\>French Canadian: <°>Danish: <\>Dutch: ]|[ French: <>German: <|>Italian: <>LatinAmerica: <>Norwegian: <>Spain: <>Swedish: <|>Swiss: <>UK: \|Brazil: \|
Typically near the Left-Shift key in AT-102 implementations.
Windows key for Windows 95, and Compose.
Implemented as a locking key; sent as a toggle button. Available for legacy support; however, most systems should use the non-locking version of this key.
Keypad Comma is the appropriate usage for the Brazilian keypad period (.) key. This represents the closest possible match, and system software should do the correct mapping based on the current locale setting.
Used on AS/400 keyboards.
See additional footnotes below
Keyboard International1 should be identified via footnote as the appropriate usage for the Brazilian forward-slash (/) and question-mark (?) key. This usage should also be renamed to either "Keyboard Non-US / and ?" or to "Keyboard International1" now that it’s become clear that it does not only apply to Kanji keyboards anymore.
See additional footnotes below
See additional footnotes below
See additional footnotes below
See additional footnotes below
See additional footnotes below
Toggle Double-Byte/Single-Byte mode.
Undefined, available for other Front End Language Processors.
Hangul/English toggle key. This usage is used as an input method editor control key on a Korean language keyboard.
Hanja conversion key. This usage is used as an input method editor control key on a Korean language keyboard.
Defines the Katakana key for Japanese USB word-processing keyboards.
Defines the Hiragana key for Japanese USB word-processing keyboards.
Defines the Zenkaku/Hankaku key for Japanese USB word-processing keyboards.
Reserved for language-specific functions, such as Front End Processors and Input Method Editors.
Example, Erase-Eaze™ key.
The symbol displayed will depend on the current locale settings of the operating system. For example, the US thousands separator would be a comma, and the decimal separator would be a period.
The symbol displayed will depend on the current locale settings of the operating system. For example the US currency unit would be $ and the sub-unit would be ¢.
Windowing environment key, examples are Microsoft Left Win key, Mac Left Apple key, Sun Left Meta key
Windowing environment key, examples are Microsoft®RIGHT WIN key, Macintosh®RIGHT APPLE key, Sun®RIGHT META key.