-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathkeymap.go
185 lines (182 loc) · 4.4 KB
/
keymap.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
package main
// https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerhotkey
const (
MOD_ALT = 0x0001
MOD_CONTROL = 0x0002
MOD_NOREPEAT = 0x4000
MOD_SHIFT = 0x0004
MOD_WIN = 0x0008
)
var modKeyNames = map[int]string{
MOD_ALT: "Alt",
MOD_CONTROL: "Ctrl",
MOD_SHIFT: "Shift",
MOD_WIN: "Win",
}
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
var keyNames = map[int]string{
0x01: `Left mouse button`,
0x02: `Right mouse button`,
0x03: `Control-break processing`,
0x04: `Middle mouse button (three-button mouse)`,
0x05: `X1 mouse button`,
0x06: `X2 mouse button`,
0x08: `BACKSPACE key`,
0x09: `TAB key`,
0x0C: `CLEAR key`,
0x0D: `ENTER key`,
0x10: `SHIFT key`,
0x11: `CTRL key`,
0x12: `ALT key`,
0x13: `PAUSE key`,
0x14: `CAPS LOCK key`,
0x15: `IME Kana mode`,
0x16: `IME On`,
0x17: `IME Junja mode`,
0x18: `IME final mode`,
0x19: `IME Hanja mode`,
0x1A: `IME Off`,
0x1B: `ESC key`,
0x1C: `IME convert`,
0x1D: `IME nonconvert`,
0x1E: `IME accept`,
0x1F: `IME mode change request`,
0x20: `SPACEBAR`,
0x21: `PAGE UP key`,
0x22: `PAGE DOWN key`,
0x23: `END key`,
0x24: `HOME key`,
0x25: `LEFT ARROW key`,
0x26: `UP ARROW key`,
0x27: `RIGHT ARROW key`,
0x28: `DOWN ARROW key`,
0x29: `SELECT key`,
0x2A: `PRINT key`,
0x2B: `EXECUTE key`,
0x2C: `PRINT SCREEN key`,
0x2D: `INS key`,
0x2E: `DEL key`,
0x2F: `HELP key`,
0x30: `0 key`,
0x31: `1 key`,
0x32: `2 key`,
0x33: `3 key`,
0x34: `4 key`,
0x35: `5 key`,
0x36: `6 key`,
0x37: `7 key`,
0x38: `8 key`,
0x39: `9 key`,
0x41: `A key`,
0x42: `B key`,
0x43: `C key`,
0x44: `D key`,
0x45: `E key`,
0x46: `F key`,
0x47: `G key`,
0x48: `H key`,
0x49: `I key`,
0x4A: `J key`,
0x4B: `K key`,
0x4C: `L key`,
0x4D: `M key`,
0x4E: `N key`,
0x4F: `O key`,
0x50: `P key`,
0x51: `Q key`,
0x52: `R key`,
0x53: `S key`,
0x54: `T key`,
0x55: `U key`,
0x56: `V key`,
0x57: `W key`,
0x58: `X key`,
0x59: `Y key`,
0x5A: `Z key`,
0x5B: `Left Windows key (Natural keyboard)`,
0x5C: `Right Windows key (Natural keyboard)`,
0x5D: `Applications key (Natural keyboard)`,
0x5F: `Computer Sleep key`,
0x60: `Numeric keypad 0 key`,
0x61: `Numeric keypad 1 key`,
0x62: `Numeric keypad 2 key`,
0x63: `Numeric keypad 3 key`,
0x64: `Numeric keypad 4 key`,
0x65: `Numeric keypad 5 key`,
0x66: `Numeric keypad 6 key`,
0x67: `Numeric keypad 7 key`,
0x68: `Numeric keypad 8 key`,
0x69: `Numeric keypad 9 key`,
0x6A: `Multiply key`,
0x6B: `Add key`,
0x6C: `Separator key`,
0x6D: `Subtract key`,
0x6E: `Decimal key`,
0x6F: `Divide key`,
0x70: `F1 key`,
0x71: `F2 key`,
0x72: `F3 key`,
0x73: `F4 key`,
0x74: `F5 key`,
0x75: `F6 key`,
0x76: `F7 key`,
0x77: `F8 key`,
0x78: `F9 key`,
0x79: `F10 key`,
0x7A: `F11 key`,
0x7B: `F12 key`,
0x7C: `F13 key`,
0x7D: `F14 key`,
0x7E: `F15 key`,
0x7F: `F16 key`,
0x80: `F17 key`,
0x81: `F18 key`,
0x82: `F19 key`,
0x83: `F20 key`,
0x84: `F21 key`,
0x85: `F22 key`,
0x86: `F23 key`,
0x87: `F24 key`,
0x90: `NUM LOCK key`,
0x91: `SCROLL LOCK key`,
0xA0: `Left SHIFT key`,
0xA1: `Right SHIFT key`,
0xA2: `Left CONTROL key`,
0xA3: `Right CONTROL key`,
0xA4: `Left MENU key`,
0xA5: `Right MENU key`,
0xA6: `Browser Back key`,
0xA7: `Browser Forward key`,
0xA8: `Browser Refresh key`,
0xA9: `Browser Stop key`,
0xAA: `Browser Search key`,
0xAB: `Browser Favorites key`,
0xAC: `Browser Start and Home key`,
0xAD: `Volume Mute key`,
0xAE: `Volume Down key`,
0xAF: `Volume Up key`,
0xB0: `Next Track key`,
0xB1: `Previous Track key`,
0xB2: `Stop Media key`,
0xB3: `Play/Pause Media key`,
0xB4: `Start Mail key`,
0xB5: `Select Media key`,
0xB6: `Start Application 1 key`,
0xB7: `Start Application 2 key`,
0xBB: `For any country/region, the '+' key`,
0xBC: `For any country/region, the ',' key`,
0xBD: `For any country/region, the '-' key`,
0xBE: `For any country/region, the '.' key`,
0xE2: `Either the angle bracket key or the backslash key on the RT 102-key keyboard`,
0xE5: `IME PROCESS key`,
0xE6: `OEM specific`,
0xE7: `Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP`,
0xF6: `Attn key`,
0xF7: `CrSel key`,
0xF8: `ExSel key`,
0xF9: `Erase EOF key`,
0xFA: `Play key`,
0xFB: `Zoom key`,
0xFD: `PA1 key`,
0xFE: `Clear key`,
}