Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ulixee
GitHub Repository: ulixee/secret-agent
Path: blob/main/puppet-chrome/interfaces/USKeyboardLayout.ts
1028 views
1
/**
2
* Copyright 2020 Data Liberation Foundation, Inc. All rights reserved.
3
*
4
* Licensed under the Apache License, Version 2.0 (the 'License');
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an 'AS IS' BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
import { IKeyboardKey } from '@secret-agent/interfaces/IKeyboardLayoutUS';
18
19
export interface IKeyDefinition {
20
keyCode?: number;
21
shiftKeyCode?: number;
22
key?: string;
23
shiftKey?: string;
24
code?: string;
25
text?: string;
26
shiftText?: string;
27
location?: number;
28
}
29
30
export const keyDefinitions: Readonly<Record<IKeyboardKey, IKeyDefinition>> = {
31
'0': { keyCode: 48, key: '0', code: 'Digit0' },
32
'1': { keyCode: 49, key: '1', code: 'Digit1' },
33
'2': { keyCode: 50, key: '2', code: 'Digit2' },
34
'3': { keyCode: 51, key: '3', code: 'Digit3' },
35
'4': { keyCode: 52, key: '4', code: 'Digit4' },
36
'5': { keyCode: 53, key: '5', code: 'Digit5' },
37
'6': { keyCode: 54, key: '6', code: 'Digit6' },
38
'7': { keyCode: 55, key: '7', code: 'Digit7' },
39
'8': { keyCode: 56, key: '8', code: 'Digit8' },
40
'9': { keyCode: 57, key: '9', code: 'Digit9' },
41
Power: { key: 'Power', code: 'Power' },
42
Eject: { key: 'Eject', code: 'Eject' },
43
Abort: { keyCode: 3, code: 'Abort', key: 'Cancel' },
44
Help: { keyCode: 6, code: 'Help', key: 'Help' },
45
Backspace: { keyCode: 8, code: 'Backspace', key: 'Backspace' },
46
Tab: { keyCode: 9, code: 'Tab', key: 'Tab' },
47
Numpad5: {
48
keyCode: 12,
49
shiftKeyCode: 101,
50
key: 'Clear',
51
code: 'Numpad5',
52
shiftKey: '5',
53
location: 3,
54
},
55
NumpadEnter: {
56
keyCode: 13,
57
code: 'NumpadEnter',
58
key: 'Enter',
59
text: '\r',
60
location: 3,
61
},
62
Enter: { keyCode: 13, code: 'Enter', key: 'Enter', text: '\r' },
63
'\r': { keyCode: 13, code: 'Enter', key: 'Enter', text: '\r' },
64
'\n': { keyCode: 13, code: 'Enter', key: 'Enter', text: '\r' },
65
ShiftLeft: { keyCode: 16, code: 'ShiftLeft', key: 'Shift', location: 1 },
66
ShiftRight: { keyCode: 16, code: 'ShiftRight', key: 'Shift', location: 2 },
67
ControlLeft: {
68
keyCode: 17,
69
code: 'ControlLeft',
70
key: 'Control',
71
location: 1,
72
},
73
ControlRight: {
74
keyCode: 17,
75
code: 'ControlRight',
76
key: 'Control',
77
location: 2,
78
},
79
AltLeft: { keyCode: 18, code: 'AltLeft', key: 'Alt', location: 1 },
80
AltRight: { keyCode: 18, code: 'AltRight', key: 'Alt', location: 2 },
81
Pause: { keyCode: 19, code: 'Pause', key: 'Pause' },
82
CapsLock: { keyCode: 20, code: 'CapsLock', key: 'CapsLock' },
83
Escape: { keyCode: 27, code: 'Escape', key: 'Escape' },
84
Convert: { keyCode: 28, code: 'Convert', key: 'Convert' },
85
NonConvert: { keyCode: 29, code: 'NonConvert', key: 'NonConvert' },
86
Space: { keyCode: 32, code: 'Space', key: ' ' },
87
Numpad9: {
88
keyCode: 33,
89
shiftKeyCode: 105,
90
key: 'PageUp',
91
code: 'Numpad9',
92
shiftKey: '9',
93
location: 3,
94
},
95
PageUp: { keyCode: 33, code: 'PageUp', key: 'PageUp' },
96
Numpad3: {
97
keyCode: 34,
98
shiftKeyCode: 99,
99
key: 'PageDown',
100
code: 'Numpad3',
101
shiftKey: '3',
102
location: 3,
103
},
104
PageDown: { keyCode: 34, code: 'PageDown', key: 'PageDown' },
105
End: { keyCode: 35, code: 'End', key: 'End' },
106
Numpad1: {
107
keyCode: 35,
108
shiftKeyCode: 97,
109
key: 'End',
110
code: 'Numpad1',
111
shiftKey: '1',
112
location: 3,
113
},
114
Home: { keyCode: 36, code: 'Home', key: 'Home' },
115
Numpad7: {
116
keyCode: 36,
117
shiftKeyCode: 103,
118
key: 'Home',
119
code: 'Numpad7',
120
shiftKey: '7',
121
location: 3,
122
},
123
ArrowLeft: { keyCode: 37, code: 'ArrowLeft', key: 'ArrowLeft' },
124
Numpad4: {
125
keyCode: 37,
126
shiftKeyCode: 100,
127
key: 'ArrowLeft',
128
code: 'Numpad4',
129
shiftKey: '4',
130
location: 3,
131
},
132
Numpad8: {
133
keyCode: 38,
134
shiftKeyCode: 104,
135
key: 'ArrowUp',
136
code: 'Numpad8',
137
shiftKey: '8',
138
location: 3,
139
},
140
ArrowUp: { keyCode: 38, code: 'ArrowUp', key: 'ArrowUp' },
141
ArrowRight: { keyCode: 39, code: 'ArrowRight', key: 'ArrowRight' },
142
Numpad6: {
143
keyCode: 39,
144
shiftKeyCode: 102,
145
key: 'ArrowRight',
146
code: 'Numpad6',
147
shiftKey: '6',
148
location: 3,
149
},
150
Numpad2: {
151
keyCode: 40,
152
shiftKeyCode: 98,
153
key: 'ArrowDown',
154
code: 'Numpad2',
155
shiftKey: '2',
156
location: 3,
157
},
158
ArrowDown: { keyCode: 40, code: 'ArrowDown', key: 'ArrowDown' },
159
Select: { keyCode: 41, code: 'Select', key: 'Select' },
160
Open: { keyCode: 43, code: 'Open', key: 'Execute' },
161
PrintScreen: { keyCode: 44, code: 'PrintScreen', key: 'PrintScreen' },
162
Insert: { keyCode: 45, code: 'Insert', key: 'Insert' },
163
Numpad0: {
164
keyCode: 45,
165
shiftKeyCode: 96,
166
key: 'Insert',
167
code: 'Numpad0',
168
shiftKey: '0',
169
location: 3,
170
},
171
Delete: { keyCode: 46, code: 'Delete', key: 'Delete' },
172
NumpadDecimal: {
173
keyCode: 46,
174
shiftKeyCode: 110,
175
code: 'NumpadDecimal',
176
key: '\u0000',
177
shiftKey: '.',
178
location: 3,
179
},
180
Digit0: { keyCode: 48, code: 'Digit0', shiftKey: ')', key: '0' },
181
Digit1: { keyCode: 49, code: 'Digit1', shiftKey: '!', key: '1' },
182
Digit2: { keyCode: 50, code: 'Digit2', shiftKey: '@', key: '2' },
183
Digit3: { keyCode: 51, code: 'Digit3', shiftKey: '#', key: '3' },
184
Digit4: { keyCode: 52, code: 'Digit4', shiftKey: '$', key: '4' },
185
Digit5: { keyCode: 53, code: 'Digit5', shiftKey: '%', key: '5' },
186
Digit6: { keyCode: 54, code: 'Digit6', shiftKey: '^', key: '6' },
187
Digit7: { keyCode: 55, code: 'Digit7', shiftKey: '&', key: '7' },
188
Digit8: { keyCode: 56, code: 'Digit8', shiftKey: '*', key: '8' },
189
Digit9: { keyCode: 57, code: 'Digit9', shiftKey: '(', key: '9' },
190
KeyA: { keyCode: 65, code: 'KeyA', shiftKey: 'A', key: 'a' },
191
KeyB: { keyCode: 66, code: 'KeyB', shiftKey: 'B', key: 'b' },
192
KeyC: { keyCode: 67, code: 'KeyC', shiftKey: 'C', key: 'c' },
193
KeyD: { keyCode: 68, code: 'KeyD', shiftKey: 'D', key: 'd' },
194
KeyE: { keyCode: 69, code: 'KeyE', shiftKey: 'E', key: 'e' },
195
KeyF: { keyCode: 70, code: 'KeyF', shiftKey: 'F', key: 'f' },
196
KeyG: { keyCode: 71, code: 'KeyG', shiftKey: 'G', key: 'g' },
197
KeyH: { keyCode: 72, code: 'KeyH', shiftKey: 'H', key: 'h' },
198
KeyI: { keyCode: 73, code: 'KeyI', shiftKey: 'I', key: 'i' },
199
KeyJ: { keyCode: 74, code: 'KeyJ', shiftKey: 'J', key: 'j' },
200
KeyK: { keyCode: 75, code: 'KeyK', shiftKey: 'K', key: 'k' },
201
KeyL: { keyCode: 76, code: 'KeyL', shiftKey: 'L', key: 'l' },
202
KeyM: { keyCode: 77, code: 'KeyM', shiftKey: 'M', key: 'm' },
203
KeyN: { keyCode: 78, code: 'KeyN', shiftKey: 'N', key: 'n' },
204
KeyO: { keyCode: 79, code: 'KeyO', shiftKey: 'O', key: 'o' },
205
KeyP: { keyCode: 80, code: 'KeyP', shiftKey: 'P', key: 'p' },
206
KeyQ: { keyCode: 81, code: 'KeyQ', shiftKey: 'Q', key: 'q' },
207
KeyR: { keyCode: 82, code: 'KeyR', shiftKey: 'R', key: 'r' },
208
KeyS: { keyCode: 83, code: 'KeyS', shiftKey: 'S', key: 's' },
209
KeyT: { keyCode: 84, code: 'KeyT', shiftKey: 'T', key: 't' },
210
KeyU: { keyCode: 85, code: 'KeyU', shiftKey: 'U', key: 'u' },
211
KeyV: { keyCode: 86, code: 'KeyV', shiftKey: 'V', key: 'v' },
212
KeyW: { keyCode: 87, code: 'KeyW', shiftKey: 'W', key: 'w' },
213
KeyX: { keyCode: 88, code: 'KeyX', shiftKey: 'X', key: 'x' },
214
KeyY: { keyCode: 89, code: 'KeyY', shiftKey: 'Y', key: 'y' },
215
KeyZ: { keyCode: 90, code: 'KeyZ', shiftKey: 'Z', key: 'z' },
216
MetaLeft: { keyCode: 91, code: 'MetaLeft', key: 'Meta', location: 1 },
217
MetaRight: { keyCode: 92, code: 'MetaRight', key: 'Meta', location: 2 },
218
ContextMenu: { keyCode: 93, code: 'ContextMenu', key: 'ContextMenu' },
219
NumpadMultiply: {
220
keyCode: 106,
221
code: 'NumpadMultiply',
222
key: '*',
223
location: 3,
224
},
225
NumpadAdd: { keyCode: 107, code: 'NumpadAdd', key: '+', location: 3 },
226
NumpadSubtract: {
227
keyCode: 109,
228
code: 'NumpadSubtract',
229
key: '-',
230
location: 3,
231
},
232
NumpadDivide: { keyCode: 111, code: 'NumpadDivide', key: '/', location: 3 },
233
F1: { keyCode: 112, code: 'F1', key: 'F1' },
234
F2: { keyCode: 113, code: 'F2', key: 'F2' },
235
F3: { keyCode: 114, code: 'F3', key: 'F3' },
236
F4: { keyCode: 115, code: 'F4', key: 'F4' },
237
F5: { keyCode: 116, code: 'F5', key: 'F5' },
238
F6: { keyCode: 117, code: 'F6', key: 'F6' },
239
F7: { keyCode: 118, code: 'F7', key: 'F7' },
240
F8: { keyCode: 119, code: 'F8', key: 'F8' },
241
F9: { keyCode: 120, code: 'F9', key: 'F9' },
242
F10: { keyCode: 121, code: 'F10', key: 'F10' },
243
F11: { keyCode: 122, code: 'F11', key: 'F11' },
244
F12: { keyCode: 123, code: 'F12', key: 'F12' },
245
F13: { keyCode: 124, code: 'F13', key: 'F13' },
246
F14: { keyCode: 125, code: 'F14', key: 'F14' },
247
F15: { keyCode: 126, code: 'F15', key: 'F15' },
248
F16: { keyCode: 127, code: 'F16', key: 'F16' },
249
F17: { keyCode: 128, code: 'F17', key: 'F17' },
250
F18: { keyCode: 129, code: 'F18', key: 'F18' },
251
F19: { keyCode: 130, code: 'F19', key: 'F19' },
252
F20: { keyCode: 131, code: 'F20', key: 'F20' },
253
F21: { keyCode: 132, code: 'F21', key: 'F21' },
254
F22: { keyCode: 133, code: 'F22', key: 'F22' },
255
F23: { keyCode: 134, code: 'F23', key: 'F23' },
256
F24: { keyCode: 135, code: 'F24', key: 'F24' },
257
NumLock: { keyCode: 144, code: 'NumLock', key: 'NumLock' },
258
ScrollLock: { keyCode: 145, code: 'ScrollLock', key: 'ScrollLock' },
259
AudioVolumeMute: {
260
keyCode: 173,
261
code: 'AudioVolumeMute',
262
key: 'AudioVolumeMute',
263
},
264
AudioVolumeDown: {
265
keyCode: 174,
266
code: 'AudioVolumeDown',
267
key: 'AudioVolumeDown',
268
},
269
AudioVolumeUp: { keyCode: 175, code: 'AudioVolumeUp', key: 'AudioVolumeUp' },
270
MediaTrackNext: {
271
keyCode: 176,
272
code: 'MediaTrackNext',
273
key: 'MediaTrackNext',
274
},
275
MediaTrackPrevious: {
276
keyCode: 177,
277
code: 'MediaTrackPrevious',
278
key: 'MediaTrackPrevious',
279
},
280
MediaStop: { keyCode: 178, code: 'MediaStop', key: 'MediaStop' },
281
MediaPlayPause: {
282
keyCode: 179,
283
code: 'MediaPlayPause',
284
key: 'MediaPlayPause',
285
},
286
Semicolon: { keyCode: 186, code: 'Semicolon', shiftKey: ':', key: ';' },
287
Equal: { keyCode: 187, code: 'Equal', shiftKey: '+', key: '=' },
288
NumpadEqual: { keyCode: 187, code: 'NumpadEqual', key: '=', location: 3 },
289
Comma: { keyCode: 188, code: 'Comma', shiftKey: '<', key: ',' },
290
Minus: { keyCode: 189, code: 'Minus', shiftKey: '_', key: '-' },
291
Period: { keyCode: 190, code: 'Period', shiftKey: '>', key: '.' },
292
Slash: { keyCode: 191, code: 'Slash', shiftKey: '?', key: '/' },
293
Backquote: { keyCode: 192, code: 'Backquote', shiftKey: '~', key: '`' },
294
BracketLeft: { keyCode: 219, code: 'BracketLeft', shiftKey: '{', key: '[' },
295
Backslash: { keyCode: 220, code: 'Backslash', shiftKey: '|', key: '\\' },
296
BracketRight: { keyCode: 221, code: 'BracketRight', shiftKey: '}', key: ']' },
297
Quote: { keyCode: 222, code: 'Quote', shiftKey: '"', key: "'" },
298
AltGraph: { keyCode: 225, code: 'AltGraph', key: 'AltGraph' },
299
Props: { keyCode: 247, code: 'Props', key: 'CrSel' },
300
Cancel: { keyCode: 3, key: 'Cancel', code: 'Abort' },
301
Clear: { keyCode: 12, key: 'Clear', code: 'Numpad5', location: 3 },
302
Shift: { keyCode: 16, key: 'Shift', code: 'ShiftLeft', location: 1 },
303
Control: { keyCode: 17, key: 'Control', code: 'ControlLeft', location: 1 },
304
Alt: { keyCode: 18, key: 'Alt', code: 'AltLeft', location: 1 },
305
Accept: { keyCode: 30, key: 'Accept' },
306
ModeChange: { keyCode: 31, key: 'ModeChange' },
307
' ': { keyCode: 32, key: ' ', code: 'Space' },
308
Print: { keyCode: 42, key: 'Print' },
309
Execute: { keyCode: 43, key: 'Execute', code: 'Open' },
310
'\u0000': { keyCode: 46, key: '\u0000', code: 'NumpadDecimal', location: 3 },
311
a: { keyCode: 65, key: 'a', code: 'KeyA' },
312
b: { keyCode: 66, key: 'b', code: 'KeyB' },
313
c: { keyCode: 67, key: 'c', code: 'KeyC' },
314
d: { keyCode: 68, key: 'd', code: 'KeyD' },
315
e: { keyCode: 69, key: 'e', code: 'KeyE' },
316
f: { keyCode: 70, key: 'f', code: 'KeyF' },
317
g: { keyCode: 71, key: 'g', code: 'KeyG' },
318
h: { keyCode: 72, key: 'h', code: 'KeyH' },
319
i: { keyCode: 73, key: 'i', code: 'KeyI' },
320
j: { keyCode: 74, key: 'j', code: 'KeyJ' },
321
k: { keyCode: 75, key: 'k', code: 'KeyK' },
322
l: { keyCode: 76, key: 'l', code: 'KeyL' },
323
m: { keyCode: 77, key: 'm', code: 'KeyM' },
324
n: { keyCode: 78, key: 'n', code: 'KeyN' },
325
o: { keyCode: 79, key: 'o', code: 'KeyO' },
326
p: { keyCode: 80, key: 'p', code: 'KeyP' },
327
q: { keyCode: 81, key: 'q', code: 'KeyQ' },
328
r: { keyCode: 82, key: 'r', code: 'KeyR' },
329
s: { keyCode: 83, key: 's', code: 'KeyS' },
330
t: { keyCode: 84, key: 't', code: 'KeyT' },
331
u: { keyCode: 85, key: 'u', code: 'KeyU' },
332
v: { keyCode: 86, key: 'v', code: 'KeyV' },
333
w: { keyCode: 87, key: 'w', code: 'KeyW' },
334
x: { keyCode: 88, key: 'x', code: 'KeyX' },
335
y: { keyCode: 89, key: 'y', code: 'KeyY' },
336
z: { keyCode: 90, key: 'z', code: 'KeyZ' },
337
Meta: { keyCode: 91, key: 'Meta', code: 'MetaLeft', location: 1 },
338
'*': { keyCode: 106, key: '*', code: 'NumpadMultiply', location: 3 },
339
'+': { keyCode: 107, key: '+', code: 'NumpadAdd', location: 3 },
340
'-': { keyCode: 109, key: '-', code: 'NumpadSubtract', location: 3 },
341
'/': { keyCode: 111, key: '/', code: 'NumpadDivide', location: 3 },
342
';': { keyCode: 186, key: ';', code: 'Semicolon' },
343
'=': { keyCode: 187, key: '=', code: 'Equal' },
344
',': { keyCode: 188, key: ',', code: 'Comma' },
345
'.': { keyCode: 190, key: '.', code: 'Period' },
346
'`': { keyCode: 192, key: '`', code: 'Backquote' },
347
'[': { keyCode: 219, key: '[', code: 'BracketLeft' },
348
'\\': { keyCode: 220, key: '\\', code: 'Backslash' },
349
']': { keyCode: 221, key: ']', code: 'BracketRight' },
350
"'": { keyCode: 222, key: "'", code: 'Quote' },
351
Attn: { keyCode: 246, key: 'Attn' },
352
CrSel: { keyCode: 247, key: 'CrSel', code: 'Props' },
353
ExSel: { keyCode: 248, key: 'ExSel' },
354
EraseEof: { keyCode: 249, key: 'EraseEof' },
355
Play: { keyCode: 250, key: 'Play' },
356
ZoomOut: { keyCode: 251, key: 'ZoomOut' },
357
')': { keyCode: 48, key: ')', code: 'Digit0' },
358
'!': { keyCode: 49, key: '!', code: 'Digit1' },
359
'@': { keyCode: 50, key: '@', code: 'Digit2' },
360
'#': { keyCode: 51, key: '#', code: 'Digit3' },
361
$: { keyCode: 52, key: '$', code: 'Digit4' },
362
'%': { keyCode: 53, key: '%', code: 'Digit5' },
363
'^': { keyCode: 54, key: '^', code: 'Digit6' },
364
'&': { keyCode: 55, key: '&', code: 'Digit7' },
365
'(': { keyCode: 57, key: '(', code: 'Digit9' },
366
A: { keyCode: 65, key: 'A', code: 'KeyA' },
367
B: { keyCode: 66, key: 'B', code: 'KeyB' },
368
C: { keyCode: 67, key: 'C', code: 'KeyC' },
369
D: { keyCode: 68, key: 'D', code: 'KeyD' },
370
E: { keyCode: 69, key: 'E', code: 'KeyE' },
371
F: { keyCode: 70, key: 'F', code: 'KeyF' },
372
G: { keyCode: 71, key: 'G', code: 'KeyG' },
373
H: { keyCode: 72, key: 'H', code: 'KeyH' },
374
I: { keyCode: 73, key: 'I', code: 'KeyI' },
375
J: { keyCode: 74, key: 'J', code: 'KeyJ' },
376
K: { keyCode: 75, key: 'K', code: 'KeyK' },
377
L: { keyCode: 76, key: 'L', code: 'KeyL' },
378
M: { keyCode: 77, key: 'M', code: 'KeyM' },
379
N: { keyCode: 78, key: 'N', code: 'KeyN' },
380
O: { keyCode: 79, key: 'O', code: 'KeyO' },
381
P: { keyCode: 80, key: 'P', code: 'KeyP' },
382
Q: { keyCode: 81, key: 'Q', code: 'KeyQ' },
383
R: { keyCode: 82, key: 'R', code: 'KeyR' },
384
S: { keyCode: 83, key: 'S', code: 'KeyS' },
385
T: { keyCode: 84, key: 'T', code: 'KeyT' },
386
U: { keyCode: 85, key: 'U', code: 'KeyU' },
387
V: { keyCode: 86, key: 'V', code: 'KeyV' },
388
W: { keyCode: 87, key: 'W', code: 'KeyW' },
389
X: { keyCode: 88, key: 'X', code: 'KeyX' },
390
Y: { keyCode: 89, key: 'Y', code: 'KeyY' },
391
Z: { keyCode: 90, key: 'Z', code: 'KeyZ' },
392
':': { keyCode: 186, key: ':', code: 'Semicolon' },
393
'<': { keyCode: 188, key: '<', code: 'Comma' },
394
_: { keyCode: 189, key: '_', code: 'Minus' },
395
'>': { keyCode: 190, key: '>', code: 'Period' },
396
'?': { keyCode: 191, key: '?', code: 'Slash' },
397
'~': { keyCode: 192, key: '~', code: 'Backquote' },
398
'{': { keyCode: 219, key: '{', code: 'BracketLeft' },
399
'|': { keyCode: 220, key: '|', code: 'Backslash' },
400
'}': { keyCode: 221, key: '}', code: 'BracketRight' },
401
'"': { keyCode: 222, key: '"', code: 'Quote' },
402
SoftLeft: { key: 'SoftLeft', code: 'SoftLeft', location: 4 },
403
SoftRight: { key: 'SoftRight', code: 'SoftRight', location: 4 },
404
Camera: { keyCode: 44, key: 'Camera', code: 'Camera', location: 4 },
405
Call: { key: 'Call', code: 'Call', location: 4 },
406
EndCall: { keyCode: 95, key: 'EndCall', code: 'EndCall', location: 4 },
407
VolumeDown: {
408
keyCode: 182,
409
key: 'VolumeDown',
410
code: 'VolumeDown',
411
location: 4,
412
},
413
VolumeUp: { keyCode: 183, key: 'VolumeUp', code: 'VolumeUp', location: 4 },
414
};
415
416