Unverified Commit e9905b6a authored by Francisco Magdaleno's avatar Francisco Magdaleno Committed by GitHub

[Keyboard] Collects windows key data (#52265)

parent bc43b41d
......@@ -17,7 +17,7 @@ import 'package:gen_keycodes/utils.dart';
/// Get contents of the file that contains the key code mapping in Chromium
/// source.
Future<String> getChromiumConversions() async {
final Uri keyCodeMapUri = Uri.parse('https://cs.chromium.org/codesearch/f/chromium/src/ui/events/keycodes/dom/keycode_converter_data.inc');
final Uri keyCodeMapUri = Uri.parse('https://cs.chromium.org/codesearch/f/chromium/src/ui/events/keycodes/dom/dom_code_data.inc');
return await http.read(keyCodeMapUri);
}
......@@ -27,6 +27,11 @@ Future<String> getAndroidKeyCodes() async {
return utf8.decode(base64.decode(await http.read(keyCodesUri)));
}
Future<String> getWindowsKeyCodes() async {
final Uri keyCodesUri = Uri.parse('https://raw.githubusercontent.com/tpn/winsdk-10/master/Include/10.0.10240.0/um/WinUser.h');
return await http.read(keyCodesUri);
}
/// Get contents of the file that contains the scan codes in Android source.
/// Yes, this is just the generic keyboard layout file for base Android distro
/// This is because there isn't any facility in Android to get the keyboard
......@@ -84,12 +89,23 @@ Future<void> main(List<String> rawArguments) async {
'If --glfw-keycodes is not specified, the input will be read from the '
'correct file in the GLFW github repository.',
);
argParser.addOption(
argParser.addOption(
'windows-keycodes',
defaultsTo: null,
help: 'The path to where the Windows keycodes header file should be read. '
'If --windows-keycodes is not specified, the input will be read from the '
'correct file in the Windows github repository.',
);
argParser.addOption(
'windows-domkey',
defaultsTo: path.join(flutterRoot.path, 'dev', 'tools', 'gen_keycodes', 'data', 'key_name_to_windows_name.json'),
help: 'The path to where the Windows keycode to DomKey mapping is.',
);
argParser.addOption(
'glfw-domkey',
defaultsTo: path.join(flutterRoot.path, 'dev', 'tools', 'gen_keycodes', 'data', 'key_name_to_glfw_name.json'),
help: 'The path to where the GLFW keycode to DomKey mapping is.',
);
argParser.addOption(
'data',
defaultsTo: path.join(flutterRoot.path, 'dev', 'tools', 'gen_keycodes', 'data', 'key_data.json'),
......@@ -170,10 +186,18 @@ Future<void> main(List<String> rawArguments) async {
glfwKeyCodes = File(parsedArguments['glfw-keycodes'] as String).readAsStringSync();
}
String windowsKeyCodes;
if (parsedArguments['windows-keycodes'] == null) {
windowsKeyCodes = await getWindowsKeyCodes();
} else {
windowsKeyCodes = File(parsedArguments['windows-keycodes'] as String).readAsStringSync();
}
final String windowsToDomKey = File(parsedArguments['windows-domkey'] as String).readAsStringSync();
final String glfwToDomKey = File(parsedArguments['glfw-domkey'] as String).readAsStringSync();
final String androidToDomKey = File(parsedArguments['android-domkey'] as String).readAsStringSync();
data = KeyData(hidCodes, androidScanCodes, androidKeyCodes, androidToDomKey, glfwKeyCodes, glfwToDomKey);
data = KeyData(hidCodes, androidScanCodes, androidKeyCodes, androidToDomKey, glfwKeyCodes, glfwToDomKey, windowsKeyCodes, windowsToDomKey);
const JsonEncoder encoder = JsonEncoder.withIndent(' ');
File(parsedArguments['data'] as String).writeAsStringSync(encoder.convert(data.toJson()));
......
......@@ -7,7 +7,8 @@
],
"english": "None",
"chromium": "none",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -21,7 +22,8 @@
"android": [
0
],
"glfw": null
"glfw": null,
"windows": null
}
},
"hyper": {
......@@ -30,7 +32,8 @@
"android": null,
"english": "Hyper",
"chromium": "hyper",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -42,7 +45,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"superKey": {
......@@ -51,7 +55,8 @@
"android": null,
"english": "Super Key",
"chromium": "super",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -63,7 +68,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"fnLock": {
......@@ -72,7 +78,8 @@
"android": null,
"english": "Fn Lock",
"chromium": "fnLock",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -84,7 +91,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"suspend": {
......@@ -95,7 +103,8 @@
],
"english": "Suspend",
"chromium": "suspend",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -109,7 +118,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"resume": {
......@@ -118,7 +128,8 @@
"android": null,
"english": "Resume",
"chromium": "resume",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -130,7 +141,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"turbo": {
......@@ -139,7 +151,8 @@
"android": null,
"english": "Turbo",
"chromium": "turbo",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -151,7 +164,31 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"privacyScreenToggle": {
"names": {
"domkey": "PrivacyScreenToggle",
"android": null,
"english": "Privacy Screen Toggle",
"chromium": "privacyScreenToggle",
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
"usb": 23,
"linux": 633,
"xkb": 641,
"windows": null,
"macos": null
},
"keyCodes": {
"android": null,
"glfw": null,
"windows": null
}
},
"sleep": {
......@@ -162,7 +199,10 @@
],
"english": "Sleep",
"chromium": "sleep",
"glfw": null
"glfw": null,
"windows": [
"SLEEP"
]
},
"scanCodes": {
"android": [
......@@ -178,7 +218,10 @@
"android": [
223
],
"glfw": null
"glfw": null,
"windows": [
95
]
}
},
"wakeUp": {
......@@ -189,7 +232,8 @@
],
"english": "Wake Up",
"chromium": "wakeUp",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -205,7 +249,8 @@
"android": [
224
],
"glfw": null
"glfw": null,
"windows": null
}
},
"displayToggleIntExt": {
......@@ -214,7 +259,8 @@
"android": null,
"english": "Display Toggle Int Ext",
"chromium": "displayToggleIntExt",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -226,7 +272,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"usbReserved": {
......@@ -235,7 +282,8 @@
"android": null,
"english": "Usb Reserved",
"chromium": "usbReserved",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -247,7 +295,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"usbErrorRollOver": {
......@@ -256,7 +305,8 @@
"android": null,
"english": "Usb Error Roll Over",
"chromium": "usbErrorRollOver",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -268,7 +318,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"usbPostFail": {
......@@ -277,7 +328,8 @@
"android": null,
"english": "Usb Post Fail",
"chromium": "usbPostFail",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -289,7 +341,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"usbErrorUndefined": {
......@@ -298,7 +351,8 @@
"android": null,
"english": "Usb Error Undefined",
"chromium": "usbErrorUndefined",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -310,7 +364,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"keyA": {
......@@ -323,6 +378,9 @@
"chromium": "usA",
"glfw": [
"A"
],
"windows": [
"A"
]
},
"scanCodes": {
......@@ -341,6 +399,9 @@
],
"glfw": [
65
],
"windows": [
65
]
}
},
......@@ -354,6 +415,9 @@
"chromium": "usB",
"glfw": [
"B"
],
"windows": [
"B"
]
},
"scanCodes": {
......@@ -372,6 +436,9 @@
],
"glfw": [
66
],
"windows": [
66
]
}
},
......@@ -385,6 +452,9 @@
"chromium": "usC",
"glfw": [
"C"
],
"windows": [
"C"
]
},
"scanCodes": {
......@@ -403,6 +473,9 @@
],
"glfw": [
67
],
"windows": [
67
]
}
},
......@@ -416,6 +489,9 @@
"chromium": "usD",
"glfw": [
"D"
],
"windows": [
"D"
]
},
"scanCodes": {
......@@ -434,6 +510,9 @@
],
"glfw": [
68
],
"windows": [
68
]
}
},
......@@ -447,6 +526,9 @@
"chromium": "usE",
"glfw": [
"E"
],
"windows": [
"E"
]
},
"scanCodes": {
......@@ -465,6 +547,9 @@
],
"glfw": [
69
],
"windows": [
69
]
}
},
......@@ -478,6 +563,9 @@
"chromium": "usF",
"glfw": [
"F"
],
"windows": [
"F"
]
},
"scanCodes": {
......@@ -496,6 +584,9 @@
],
"glfw": [
70
],
"windows": [
70
]
}
},
......@@ -509,6 +600,9 @@
"chromium": "usG",
"glfw": [
"G"
],
"windows": [
"G"
]
},
"scanCodes": {
......@@ -527,6 +621,9 @@
],
"glfw": [
71
],
"windows": [
71
]
}
},
......@@ -540,6 +637,9 @@
"chromium": "usH",
"glfw": [
"H"
],
"windows": [
"H"
]
},
"scanCodes": {
......@@ -558,6 +658,9 @@
],
"glfw": [
72
],
"windows": [
72
]
}
},
......@@ -571,6 +674,9 @@
"chromium": "usI",
"glfw": [
"I"
],
"windows": [
"I"
]
},
"scanCodes": {
......@@ -589,6 +695,9 @@
],
"glfw": [
73
],
"windows": [
73
]
}
},
......@@ -602,6 +711,9 @@
"chromium": "usJ",
"glfw": [
"J"
],
"windows": [
"J"
]
},
"scanCodes": {
......@@ -620,6 +732,9 @@
],
"glfw": [
74
],
"windows": [
74
]
}
},
......@@ -633,6 +748,9 @@
"chromium": "usK",
"glfw": [
"K"
],
"windows": [
"K"
]
},
"scanCodes": {
......@@ -651,6 +769,9 @@
],
"glfw": [
75
],
"windows": [
75
]
}
},
......@@ -664,6 +785,9 @@
"chromium": "usL",
"glfw": [
"L"
],
"windows": [
"L"
]
},
"scanCodes": {
......@@ -682,6 +806,9 @@
],
"glfw": [
76
],
"windows": [
76
]
}
},
......@@ -695,6 +822,9 @@
"chromium": "usM",
"glfw": [
"M"
],
"windows": [
"M"
]
},
"scanCodes": {
......@@ -713,6 +843,9 @@
],
"glfw": [
77
],
"windows": [
77
]
}
},
......@@ -726,6 +859,9 @@
"chromium": "usN",
"glfw": [
"N"
],
"windows": [
"N"
]
},
"scanCodes": {
......@@ -744,6 +880,9 @@
],
"glfw": [
78
],
"windows": [
78
]
}
},
......@@ -757,6 +896,9 @@
"chromium": "usO",
"glfw": [
"O"
],
"windows": [
"O"
]
},
"scanCodes": {
......@@ -775,6 +917,9 @@
],
"glfw": [
79
],
"windows": [
79
]
}
},
......@@ -788,6 +933,9 @@
"chromium": "usP",
"glfw": [
"P"
],
"windows": [
"P"
]
},
"scanCodes": {
......@@ -806,6 +954,9 @@
],
"glfw": [
80
],
"windows": [
80
]
}
},
......@@ -819,6 +970,9 @@
"chromium": "usQ",
"glfw": [
"Q"
],
"windows": [
"Q"
]
},
"scanCodes": {
......@@ -837,6 +991,9 @@
],
"glfw": [
81
],
"windows": [
81
]
}
},
......@@ -850,6 +1007,9 @@
"chromium": "usR",
"glfw": [
"R"
],
"windows": [
"R"
]
},
"scanCodes": {
......@@ -868,6 +1028,9 @@
],
"glfw": [
82
],
"windows": [
82
]
}
},
......@@ -881,6 +1044,9 @@
"chromium": "usS",
"glfw": [
"S"
],
"windows": [
"S"
]
},
"scanCodes": {
......@@ -899,6 +1065,9 @@
],
"glfw": [
83
],
"windows": [
83
]
}
},
......@@ -912,6 +1081,9 @@
"chromium": "usT",
"glfw": [
"T"
],
"windows": [
"T"
]
},
"scanCodes": {
......@@ -930,6 +1102,9 @@
],
"glfw": [
84
],
"windows": [
84
]
}
},
......@@ -943,6 +1118,9 @@
"chromium": "usU",
"glfw": [
"U"
],
"windows": [
"U"
]
},
"scanCodes": {
......@@ -961,6 +1139,9 @@
],
"glfw": [
85
],
"windows": [
85
]
}
},
......@@ -974,6 +1155,9 @@
"chromium": "usV",
"glfw": [
"V"
],
"windows": [
"V"
]
},
"scanCodes": {
......@@ -992,6 +1176,9 @@
],
"glfw": [
86
],
"windows": [
86
]
}
},
......@@ -1005,6 +1192,9 @@
"chromium": "usW",
"glfw": [
"W"
],
"windows": [
"W"
]
},
"scanCodes": {
......@@ -1023,6 +1213,9 @@
],
"glfw": [
87
],
"windows": [
87
]
}
},
......@@ -1036,6 +1229,9 @@
"chromium": "usX",
"glfw": [
"X"
],
"windows": [
"X"
]
},
"scanCodes": {
......@@ -1054,6 +1250,9 @@
],
"glfw": [
88
],
"windows": [
88
]
}
},
......@@ -1067,6 +1266,9 @@
"chromium": "usY",
"glfw": [
"Y"
],
"windows": [
"Y"
]
},
"scanCodes": {
......@@ -1085,6 +1287,9 @@
],
"glfw": [
89
],
"windows": [
89
]
}
},
......@@ -1098,6 +1303,9 @@
"chromium": "usZ",
"glfw": [
"Z"
],
"windows": [
"Z"
]
},
"scanCodes": {
......@@ -1116,6 +1324,9 @@
],
"glfw": [
90
],
"windows": [
90
]
}
},
......@@ -1129,7 +1340,8 @@
"chromium": "digit1",
"glfw": [
"1"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1147,7 +1359,8 @@
],
"glfw": [
49
]
],
"windows": null
}
},
"digit2": {
......@@ -1160,7 +1373,8 @@
"chromium": "digit2",
"glfw": [
"2"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1178,7 +1392,8 @@
],
"glfw": [
50
]
],
"windows": null
}
},
"digit3": {
......@@ -1191,7 +1406,8 @@
"chromium": "digit3",
"glfw": [
"3"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1209,7 +1425,8 @@
],
"glfw": [
51
]
],
"windows": null
}
},
"digit4": {
......@@ -1222,7 +1439,8 @@
"chromium": "digit4",
"glfw": [
"4"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1240,7 +1458,8 @@
],
"glfw": [
52
]
],
"windows": null
}
},
"digit5": {
......@@ -1253,7 +1472,8 @@
"chromium": "digit5",
"glfw": [
"5"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1271,7 +1491,8 @@
],
"glfw": [
53
]
],
"windows": null
}
},
"digit6": {
......@@ -1284,7 +1505,8 @@
"chromium": "digit6",
"glfw": [
"6"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1302,7 +1524,8 @@
],
"glfw": [
54
]
],
"windows": null
}
},
"digit7": {
......@@ -1315,7 +1538,8 @@
"chromium": "digit7",
"glfw": [
"7"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1333,7 +1557,8 @@
],
"glfw": [
55
]
],
"windows": null
}
},
"digit8": {
......@@ -1346,7 +1571,8 @@
"chromium": "digit8",
"glfw": [
"8"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1364,7 +1590,8 @@
],
"glfw": [
56
]
],
"windows": null
}
},
"digit9": {
......@@ -1377,7 +1604,8 @@
"chromium": "digit9",
"glfw": [
"9"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1395,7 +1623,8 @@
],
"glfw": [
57
]
],
"windows": null
}
},
"digit0": {
......@@ -1408,7 +1637,8 @@
"chromium": "digit0",
"glfw": [
"0"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1426,7 +1656,8 @@
],
"glfw": [
48
]
],
"windows": null
}
},
"enter": {
......@@ -1439,6 +1670,9 @@
"chromium": "enter",
"glfw": [
"ENTER"
],
"windows": [
"RETURN"
]
},
"scanCodes": {
......@@ -1457,6 +1691,9 @@
],
"glfw": [
257
],
"windows": [
13
]
}
},
......@@ -1470,6 +1707,9 @@
"chromium": "escape",
"glfw": [
"ESCAPE"
],
"windows": [
"ESCAPE"
]
},
"scanCodes": {
......@@ -1488,6 +1728,9 @@
],
"glfw": [
256
],
"windows": [
27
]
}
},
......@@ -1501,6 +1744,9 @@
"chromium": "backspace",
"glfw": [
"BACKSPACE"
],
"windows": [
"BACK"
]
},
"scanCodes": {
......@@ -1519,6 +1765,9 @@
],
"glfw": [
259
],
"windows": [
8
]
}
},
......@@ -1532,6 +1781,9 @@
"chromium": "tab",
"glfw": [
"TAB"
],
"windows": [
"TAB"
]
},
"scanCodes": {
......@@ -1550,6 +1802,9 @@
],
"glfw": [
258
],
"windows": [
9
]
}
},
......@@ -1563,6 +1818,9 @@
"chromium": "space",
"glfw": [
"SPACE"
],
"windows": [
"SPACE"
]
},
"scanCodes": {
......@@ -1581,6 +1839,9 @@
],
"glfw": [
32
],
"windows": [
32
]
}
},
......@@ -1594,6 +1855,9 @@
"chromium": "minus",
"glfw": [
"MINUS"
],
"windows": [
"OEM_MINUS"
]
},
"scanCodes": {
......@@ -1612,6 +1876,9 @@
],
"glfw": [
45
],
"windows": [
189
]
}
},
......@@ -1625,6 +1892,9 @@
"chromium": "equal",
"glfw": [
"EQUAL"
],
"windows": [
"OEM_PLUS"
]
},
"scanCodes": {
......@@ -1643,6 +1913,9 @@
],
"glfw": [
61
],
"windows": [
187
]
}
},
......@@ -1656,6 +1929,9 @@
"chromium": "bracketLeft",
"glfw": [
"LEFT_BRACKET"
],
"windows": [
"OEM_4"
]
},
"scanCodes": {
......@@ -1674,6 +1950,9 @@
],
"glfw": [
91
],
"windows": [
219
]
}
},
......@@ -1687,6 +1966,9 @@
"chromium": "bracketRight",
"glfw": [
"RIGHT_BRACKET"
],
"windows": [
"OEM_6"
]
},
"scanCodes": {
......@@ -1705,6 +1987,9 @@
],
"glfw": [
93
],
"windows": [
221
]
}
},
......@@ -1718,6 +2003,9 @@
"chromium": "backslash",
"glfw": [
"BACKSLASH"
],
"windows": [
"OEM_5"
]
},
"scanCodes": {
......@@ -1737,6 +2025,9 @@
],
"glfw": [
92
],
"windows": [
220
]
}
},
......@@ -1750,6 +2041,9 @@
"chromium": "semicolon",
"glfw": [
"SEMICOLON"
],
"windows": [
"OEM_1"
]
},
"scanCodes": {
......@@ -1768,6 +2062,9 @@
],
"glfw": [
59
],
"windows": [
186
]
}
},
......@@ -1781,6 +2078,9 @@
"chromium": "quote",
"glfw": [
"APOSTROPHE"
],
"windows": [
"OEM_7"
]
},
"scanCodes": {
......@@ -1799,6 +2099,9 @@
],
"glfw": [
39
],
"windows": [
222
]
}
},
......@@ -1812,7 +2115,8 @@
"chromium": "backquote",
"glfw": [
"GRAVE_ACCENT"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -1830,7 +2134,8 @@
],
"glfw": [
96
]
],
"windows": null
}
},
"comma": {
......@@ -1843,6 +2148,9 @@
"chromium": "comma",
"glfw": [
"COMMA"
],
"windows": [
"OEM_COMMA"
]
},
"scanCodes": {
......@@ -1861,6 +2169,9 @@
],
"glfw": [
44
],
"windows": [
188
]
}
},
......@@ -1874,6 +2185,9 @@
"chromium": "period",
"glfw": [
"PERIOD"
],
"windows": [
"OEM_PERIOD"
]
},
"scanCodes": {
......@@ -1892,6 +2206,9 @@
],
"glfw": [
46
],
"windows": [
190
]
}
},
......@@ -1905,6 +2222,9 @@
"chromium": "slash",
"glfw": [
"SLASH"
],
"windows": [
"OEM_2"
]
},
"scanCodes": {
......@@ -1923,6 +2243,9 @@
],
"glfw": [
47
],
"windows": [
191
]
}
},
......@@ -1936,6 +2259,9 @@
"chromium": "capsLock",
"glfw": [
"CAPS_LOCK"
],
"windows": [
"CAPITAL"
]
},
"scanCodes": {
......@@ -1954,6 +2280,9 @@
],
"glfw": [
280
],
"windows": [
20
]
}
},
......@@ -1967,6 +2296,9 @@
"chromium": "f1",
"glfw": [
"F1"
],
"windows": [
"F1"
]
},
"scanCodes": {
......@@ -1985,6 +2317,9 @@
],
"glfw": [
290
],
"windows": [
112
]
}
},
......@@ -1998,6 +2333,9 @@
"chromium": "f2",
"glfw": [
"F2"
],
"windows": [
"F2"
]
},
"scanCodes": {
......@@ -2016,6 +2354,9 @@
],
"glfw": [
291
],
"windows": [
113
]
}
},
......@@ -2029,6 +2370,9 @@
"chromium": "f3",
"glfw": [
"F3"
],
"windows": [
"F3"
]
},
"scanCodes": {
......@@ -2047,6 +2391,9 @@
],
"glfw": [
292
],
"windows": [
114
]
}
},
......@@ -2060,6 +2407,9 @@
"chromium": "f4",
"glfw": [
"F4"
],
"windows": [
"F4"
]
},
"scanCodes": {
......@@ -2078,6 +2428,9 @@
],
"glfw": [
293
],
"windows": [
115
]
}
},
......@@ -2091,6 +2444,9 @@
"chromium": "f5",
"glfw": [
"F5"
],
"windows": [
"F5"
]
},
"scanCodes": {
......@@ -2109,6 +2465,9 @@
],
"glfw": [
294
],
"windows": [
116
]
}
},
......@@ -2122,6 +2481,9 @@
"chromium": "f6",
"glfw": [
"F6"
],
"windows": [
"F6"
]
},
"scanCodes": {
......@@ -2140,6 +2502,9 @@
],
"glfw": [
295
],
"windows": [
117
]
}
},
......@@ -2153,6 +2518,9 @@
"chromium": "f7",
"glfw": [
"F7"
],
"windows": [
"F7"
]
},
"scanCodes": {
......@@ -2171,6 +2539,9 @@
],
"glfw": [
296
],
"windows": [
118
]
}
},
......@@ -2184,6 +2555,9 @@
"chromium": "f8",
"glfw": [
"F8"
],
"windows": [
"F8"
]
},
"scanCodes": {
......@@ -2202,6 +2576,9 @@
],
"glfw": [
297
],
"windows": [
119
]
}
},
......@@ -2215,6 +2592,9 @@
"chromium": "f9",
"glfw": [
"F9"
],
"windows": [
"F9"
]
},
"scanCodes": {
......@@ -2233,6 +2613,9 @@
],
"glfw": [
298
],
"windows": [
120
]
}
},
......@@ -2246,6 +2629,9 @@
"chromium": "f10",
"glfw": [
"F10"
],
"windows": [
"F10"
]
},
"scanCodes": {
......@@ -2264,6 +2650,9 @@
],
"glfw": [
299
],
"windows": [
121
]
}
},
......@@ -2277,6 +2666,9 @@
"chromium": "f11",
"glfw": [
"F11"
],
"windows": [
"F11"
]
},
"scanCodes": {
......@@ -2295,6 +2687,9 @@
],
"glfw": [
300
],
"windows": [
122
]
}
},
......@@ -2308,6 +2703,9 @@
"chromium": "f12",
"glfw": [
"F12"
],
"windows": [
"F12"
]
},
"scanCodes": {
......@@ -2326,6 +2724,9 @@
],
"glfw": [
301
],
"windows": [
123
]
}
},
......@@ -2339,7 +2740,8 @@
"chromium": "printScreen",
"glfw": [
"PRINT_SCREEN"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2357,7 +2759,8 @@
],
"glfw": [
283
]
],
"windows": null
}
},
"scrollLock": {
......@@ -2368,7 +2771,8 @@
],
"english": "Scroll Lock",
"chromium": "scrollLock",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -2384,7 +2788,8 @@
"android": [
116
],
"glfw": null
"glfw": null,
"windows": null
}
},
"pause": {
......@@ -2397,6 +2802,9 @@
"chromium": "pause",
"glfw": [
"PAUSE"
],
"windows": [
"PAUSE"
]
},
"scanCodes": {
......@@ -2416,6 +2824,9 @@
],
"glfw": [
284
],
"windows": [
19
]
}
},
......@@ -2429,6 +2840,9 @@
"chromium": "insert",
"glfw": [
"INSERT"
],
"windows": [
"INSERT"
]
},
"scanCodes": {
......@@ -2447,6 +2861,9 @@
],
"glfw": [
260
],
"windows": [
45
]
}
},
......@@ -2460,6 +2877,9 @@
"chromium": "home",
"glfw": [
"HOME"
],
"windows": [
"HOME"
]
},
"scanCodes": {
......@@ -2478,6 +2898,9 @@
],
"glfw": [
268
],
"windows": [
36
]
}
},
......@@ -2491,7 +2914,8 @@
"chromium": "pageUp",
"glfw": [
"PAGE_UP"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2510,7 +2934,8 @@
],
"glfw": [
266
]
],
"windows": null
}
},
"delete": {
......@@ -2523,6 +2948,9 @@
"chromium": "del",
"glfw": [
"DELETE"
],
"windows": [
"DELETE"
]
},
"scanCodes": {
......@@ -2541,6 +2969,9 @@
],
"glfw": [
261
],
"windows": [
46
]
}
},
......@@ -2554,6 +2985,9 @@
"chromium": "end",
"glfw": [
"END"
],
"windows": [
"END"
]
},
"scanCodes": {
......@@ -2572,6 +3006,9 @@
],
"glfw": [
269
],
"windows": [
35
]
}
},
......@@ -2585,7 +3022,8 @@
"chromium": "pageDown",
"glfw": [
"PAGE_DOWN"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2604,7 +3042,8 @@
],
"glfw": [
267
]
],
"windows": null
}
},
"arrowRight": {
......@@ -2617,7 +3056,8 @@
"chromium": "arrowRight",
"glfw": [
"RIGHT"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2635,7 +3075,8 @@
],
"glfw": [
262
]
],
"windows": null
}
},
"arrowLeft": {
......@@ -2648,7 +3089,8 @@
"chromium": "arrowLeft",
"glfw": [
"LEFT"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2666,7 +3108,8 @@
],
"glfw": [
263
]
],
"windows": null
}
},
"arrowDown": {
......@@ -2679,7 +3122,8 @@
"chromium": "arrowDown",
"glfw": [
"DOWN"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2697,7 +3141,8 @@
],
"glfw": [
264
]
],
"windows": null
}
},
"arrowUp": {
......@@ -2710,7 +3155,8 @@
"chromium": "arrowUp",
"glfw": [
"UP"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2728,7 +3174,8 @@
],
"glfw": [
265
]
],
"windows": null
}
},
"numLock": {
......@@ -2741,7 +3188,8 @@
"chromium": "numLock",
"glfw": [
"NUM_LOCK"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2759,7 +3207,8 @@
],
"glfw": [
282
]
],
"windows": null
}
},
"numpadDivide": {
......@@ -2772,6 +3221,9 @@
"chromium": "numpadDivide",
"glfw": [
"KP_DIVIDE"
],
"windows": [
"DIVIDE"
]
},
"scanCodes": {
......@@ -2790,6 +3242,9 @@
],
"glfw": [
331
],
"windows": [
111
]
}
},
......@@ -2803,6 +3258,9 @@
"chromium": "numpadMultiply",
"glfw": [
"KP_MULTIPLY"
],
"windows": [
"MULTIPLY"
]
},
"scanCodes": {
......@@ -2821,6 +3279,9 @@
],
"glfw": [
332
],
"windows": [
106
]
}
},
......@@ -2834,6 +3295,9 @@
"chromium": "numpadSubtract",
"glfw": [
"NUMPAD_SUBTRACT"
],
"windows": [
"SUBTRACT"
]
},
"scanCodes": {
......@@ -2850,7 +3314,10 @@
"android": [
156
],
"glfw": null
"glfw": null,
"windows": [
109
]
}
},
"numpadAdd": {
......@@ -2863,6 +3330,9 @@
"chromium": "numpadAdd",
"glfw": [
"KP_ADD"
],
"windows": [
"ADD"
]
},
"scanCodes": {
......@@ -2881,6 +3351,9 @@
],
"glfw": [
334
],
"windows": [
107
]
}
},
......@@ -2894,7 +3367,8 @@
"chromium": "numpadEnter",
"glfw": [
"KP_ENTER"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -2912,7 +3386,8 @@
],
"glfw": [
335
]
],
"windows": null
}
},
"numpad1": {
......@@ -2925,6 +3400,9 @@
"chromium": "numpad1",
"glfw": [
"KP_1"
],
"windows": [
"NUMPAD1"
]
},
"scanCodes": {
......@@ -2943,6 +3421,9 @@
],
"glfw": [
321
],
"windows": [
97
]
}
},
......@@ -2956,6 +3437,9 @@
"chromium": "numpad2",
"glfw": [
"KP_2"
],
"windows": [
"NUMPAD2"
]
},
"scanCodes": {
......@@ -2974,6 +3458,9 @@
],
"glfw": [
322
],
"windows": [
98
]
}
},
......@@ -2987,6 +3474,9 @@
"chromium": "numpad3",
"glfw": [
"KP_3"
],
"windows": [
"NUMPAD3"
]
},
"scanCodes": {
......@@ -3005,6 +3495,9 @@
],
"glfw": [
323
],
"windows": [
99
]
}
},
......@@ -3018,6 +3511,9 @@
"chromium": "numpad4",
"glfw": [
"KP_4"
],
"windows": [
"NUMPAD4"
]
},
"scanCodes": {
......@@ -3036,6 +3532,9 @@
],
"glfw": [
324
],
"windows": [
100
]
}
},
......@@ -3049,6 +3548,9 @@
"chromium": "numpad5",
"glfw": [
"KP_5"
],
"windows": [
"NUMPAD5"
]
},
"scanCodes": {
......@@ -3067,6 +3569,9 @@
],
"glfw": [
325
],
"windows": [
101
]
}
},
......@@ -3080,6 +3585,9 @@
"chromium": "numpad6",
"glfw": [
"KP_6"
],
"windows": [
"NUMPAD6"
]
},
"scanCodes": {
......@@ -3098,6 +3606,9 @@
],
"glfw": [
326
],
"windows": [
102
]
}
},
......@@ -3111,6 +3622,9 @@
"chromium": "numpad7",
"glfw": [
"KP_7"
],
"windows": [
"NUMPAD7"
]
},
"scanCodes": {
......@@ -3129,6 +3643,9 @@
],
"glfw": [
327
],
"windows": [
103
]
}
},
......@@ -3142,6 +3659,9 @@
"chromium": "numpad8",
"glfw": [
"KP_8"
],
"windows": [
"NUMPAD8"
]
},
"scanCodes": {
......@@ -3160,6 +3680,9 @@
],
"glfw": [
328
],
"windows": [
104
]
}
},
......@@ -3173,6 +3696,9 @@
"chromium": "numpad9",
"glfw": [
"KP_9"
],
"windows": [
"NUMPAD9"
]
},
"scanCodes": {
......@@ -3191,6 +3717,9 @@
],
"glfw": [
329
],
"windows": [
105
]
}
},
......@@ -3204,6 +3733,9 @@
"chromium": "numpad0",
"glfw": [
"KP_0"
],
"windows": [
"NUMPAD0"
]
},
"scanCodes": {
......@@ -3222,6 +3754,9 @@
],
"glfw": [
320
],
"windows": [
96
]
}
},
......@@ -3235,6 +3770,9 @@
"chromium": "numpadDecimal",
"glfw": [
"KP_DECIMAL"
],
"windows": [
"DECIMAL"
]
},
"scanCodes": {
......@@ -3253,6 +3791,9 @@
],
"glfw": [
330
],
"windows": [
110
]
}
},
......@@ -3262,7 +3803,8 @@
"android": null,
"english": "Intl Backslash",
"chromium": "intlBackslash",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -3274,7 +3816,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"contextMenu": {
......@@ -3287,7 +3830,8 @@
"chromium": "contextMenu",
"glfw": [
"MENU"
]
],
"windows": null
},
"scanCodes": {
"android": [
......@@ -3306,7 +3850,8 @@
],
"glfw": [
348
]
],
"windows": null
}
},
"power": {
......@@ -3317,7 +3862,8 @@
],
"english": "Power",
"chromium": "power",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3334,7 +3880,8 @@
"android": [
26
],
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadEqual": {
......@@ -3347,6 +3894,9 @@
"chromium": "numpadEqual",
"glfw": [
"KP_EQUAL"
],
"windows": [
"OEM_NEC_EQUAL"
]
},
"scanCodes": {
......@@ -3365,6 +3915,9 @@
],
"glfw": [
336
],
"windows": [
146
]
}
},
......@@ -3378,6 +3931,9 @@
"chromium": "f13",
"glfw": [
"F13"
],
"windows": [
"F13"
]
},
"scanCodes": {
......@@ -3394,6 +3950,9 @@
"android": null,
"glfw": [
302
],
"windows": [
124
]
}
},
......@@ -3407,6 +3966,9 @@
"chromium": "f14",
"glfw": [
"F14"
],
"windows": [
"F14"
]
},
"scanCodes": {
......@@ -3423,6 +3985,9 @@
"android": null,
"glfw": [
303
],
"windows": [
125
]
}
},
......@@ -3436,6 +4001,9 @@
"chromium": "f15",
"glfw": [
"F15"
],
"windows": [
"F15"
]
},
"scanCodes": {
......@@ -3452,6 +4020,9 @@
"android": null,
"glfw": [
304
],
"windows": [
126
]
}
},
......@@ -3465,6 +4036,9 @@
"chromium": "f16",
"glfw": [
"F16"
],
"windows": [
"F16"
]
},
"scanCodes": {
......@@ -3481,6 +4055,9 @@
"android": null,
"glfw": [
305
],
"windows": [
127
]
}
},
......@@ -3494,6 +4071,9 @@
"chromium": "f17",
"glfw": [
"F17"
],
"windows": [
"F17"
]
},
"scanCodes": {
......@@ -3510,6 +4090,9 @@
"android": null,
"glfw": [
306
],
"windows": [
128
]
}
},
......@@ -3523,6 +4106,9 @@
"chromium": "f18",
"glfw": [
"F18"
],
"windows": [
"F18"
]
},
"scanCodes": {
......@@ -3539,6 +4125,9 @@
"android": null,
"glfw": [
307
],
"windows": [
129
]
}
},
......@@ -3552,6 +4141,9 @@
"chromium": "f19",
"glfw": [
"F19"
],
"windows": [
"F19"
]
},
"scanCodes": {
......@@ -3568,6 +4160,9 @@
"android": null,
"glfw": [
308
],
"windows": [
130
]
}
},
......@@ -3581,6 +4176,9 @@
"chromium": "f20",
"glfw": [
"F20"
],
"windows": [
"F20"
]
},
"scanCodes": {
......@@ -3597,6 +4195,9 @@
"android": null,
"glfw": [
309
],
"windows": [
131
]
}
},
......@@ -3610,6 +4211,9 @@
"chromium": "f21",
"glfw": [
"F21"
],
"windows": [
"F21"
]
},
"scanCodes": {
......@@ -3626,6 +4230,9 @@
"android": null,
"glfw": [
310
],
"windows": [
132
]
}
},
......@@ -3639,6 +4246,9 @@
"chromium": "f22",
"glfw": [
"F22"
],
"windows": [
"F22"
]
},
"scanCodes": {
......@@ -3655,6 +4265,9 @@
"android": null,
"glfw": [
311
],
"windows": [
133
]
}
},
......@@ -3668,6 +4281,9 @@
"chromium": "f23",
"glfw": [
"F23"
],
"windows": [
"F23"
]
},
"scanCodes": {
......@@ -3684,6 +4300,9 @@
"android": null,
"glfw": [
312
],
"windows": [
134
]
}
},
......@@ -3695,7 +4314,10 @@
],
"english": "F24",
"chromium": "f24",
"glfw": null
"glfw": null,
"windows": [
"F24"
]
},
"scanCodes": {
"android": [
......@@ -3709,7 +4331,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
135
]
}
},
"open": {
......@@ -3720,7 +4345,8 @@
],
"english": "Open",
"chromium": "open",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3734,7 +4360,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"help": {
......@@ -3745,7 +4372,10 @@
],
"english": "Help",
"chromium": "help",
"glfw": null
"glfw": null,
"windows": [
"HELP"
]
},
"scanCodes": {
"android": [
......@@ -3761,7 +4391,10 @@
"android": [
259
],
"glfw": null
"glfw": null,
"windows": [
47
]
}
},
"select": {
......@@ -3772,7 +4405,10 @@
],
"english": "Select",
"chromium": "select",
"glfw": null
"glfw": null,
"windows": [
"SELECT"
]
},
"scanCodes": {
"android": [
......@@ -3788,7 +4424,10 @@
"android": [
23
],
"glfw": null
"glfw": null,
"windows": [
41
]
}
},
"again": {
......@@ -3799,7 +4438,8 @@
],
"english": "Again",
"chromium": "again",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3813,7 +4453,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"undo": {
......@@ -3824,7 +4465,8 @@
],
"english": "Undo",
"chromium": "undo",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3838,7 +4480,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"cut": {
......@@ -3849,7 +4492,8 @@
],
"english": "Cut",
"chromium": "cut",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3865,7 +4509,8 @@
"android": [
277
],
"glfw": null
"glfw": null,
"windows": null
}
},
"copy": {
......@@ -3876,7 +4521,8 @@
],
"english": "Copy",
"chromium": "copy",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3892,7 +4538,8 @@
"android": [
278
],
"glfw": null
"glfw": null,
"windows": null
}
},
"paste": {
......@@ -3903,7 +4550,8 @@
],
"english": "Paste",
"chromium": "paste",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3919,7 +4567,8 @@
"android": [
279
],
"glfw": null
"glfw": null,
"windows": null
}
},
"find": {
......@@ -3930,7 +4579,8 @@
],
"english": "Find",
"chromium": "find",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3944,7 +4594,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"audioVolumeMute": {
......@@ -3955,7 +4606,8 @@
],
"english": "Audio Volume Mute",
"chromium": "volumeMute",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3971,7 +4623,8 @@
"android": [
164
],
"glfw": null
"glfw": null,
"windows": null
}
},
"audioVolumeUp": {
......@@ -3982,7 +4635,8 @@
],
"english": "Audio Volume Up",
"chromium": "volumeUp",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -3998,7 +4652,8 @@
"android": [
24
],
"glfw": null
"glfw": null,
"windows": null
}
},
"audioVolumeDown": {
......@@ -4009,7 +4664,8 @@
],
"english": "Audio Volume Down",
"chromium": "volumeDown",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4025,7 +4681,8 @@
"android": [
25
],
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadComma": {
......@@ -4036,7 +4693,8 @@
],
"english": "Numpad Comma",
"chromium": "numpadComma",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4053,7 +4711,8 @@
"android": [
159
],
"glfw": null
"glfw": null,
"windows": null
}
},
"intlRo": {
......@@ -4062,7 +4721,8 @@
"android": null,
"english": "Intl Ro",
"chromium": "intlRo",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4074,7 +4734,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"kanaMode": {
......@@ -4083,7 +4744,8 @@
"android": null,
"english": "Kana Mode",
"chromium": "kanaMode",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4091,11 +4753,12 @@
"linux": 93,
"xkb": 101,
"windows": 112,
"macos": 104
"macos": null
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"intlYen": {
......@@ -4104,7 +4767,8 @@
"android": null,
"english": "Intl Yen",
"chromium": "intlYen",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4116,7 +4780,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"convert": {
......@@ -4127,7 +4792,10 @@
],
"english": "Convert",
"chromium": "convert",
"glfw": null
"glfw": null,
"windows": [
"CONVERT"
]
},
"scanCodes": {
"android": [
......@@ -4143,7 +4811,10 @@
"android": [
214
],
"glfw": null
"glfw": null,
"windows": [
28
]
}
},
"nonConvert": {
......@@ -4154,7 +4825,8 @@
],
"english": "Non Convert",
"chromium": "nonConvert",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4170,7 +4842,8 @@
"android": [
213
],
"glfw": null
"glfw": null,
"windows": null
}
},
"lang1": {
......@@ -4179,7 +4852,8 @@
"android": null,
"english": "Lang 1",
"chromium": "lang1",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4187,11 +4861,12 @@
"linux": 122,
"xkb": 130,
"windows": 114,
"macos": null
"macos": 104
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"lang2": {
......@@ -4200,7 +4875,8 @@
"android": null,
"english": "Lang 2",
"chromium": "lang2",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4208,11 +4884,12 @@
"linux": 123,
"xkb": 131,
"windows": 113,
"macos": null
"macos": 102
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"lang3": {
......@@ -4223,7 +4900,8 @@
],
"english": "Lang 3",
"chromium": "lang3",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4237,7 +4915,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"lang4": {
......@@ -4248,7 +4927,8 @@
],
"english": "Lang 4",
"chromium": "lang4",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4262,7 +4942,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"lang5": {
......@@ -4271,7 +4952,8 @@
"android": null,
"english": "Lang 5",
"chromium": "lang5",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4283,7 +4965,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"abort": {
......@@ -4292,7 +4975,8 @@
"android": null,
"english": "Abort",
"chromium": "abort",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4304,7 +4988,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"props": {
......@@ -4315,7 +5000,8 @@
],
"english": "Props",
"chromium": "props",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4329,7 +5015,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadParenLeft": {
......@@ -4340,7 +5027,8 @@
],
"english": "Numpad Paren Left",
"chromium": "numpadParenLeft",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4356,7 +5044,8 @@
"android": [
162
],
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadParenRight": {
......@@ -4367,7 +5056,8 @@
],
"english": "Numpad Paren Right",
"chromium": "numpadParenRight",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4383,7 +5073,8 @@
"android": [
163
],
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadBackspace": {
......@@ -4392,7 +5083,8 @@
"android": null,
"english": "Numpad Backspace",
"chromium": "numpadBackspace",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4404,7 +5096,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadMemoryStore": {
......@@ -4413,7 +5106,8 @@
"android": null,
"english": "Numpad Memory Store",
"chromium": "numpadMemoryStore",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4425,7 +5119,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadMemoryRecall": {
......@@ -4434,7 +5129,8 @@
"android": null,
"english": "Numpad Memory Recall",
"chromium": "numpadMemoryRecall",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4446,7 +5142,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadMemoryClear": {
......@@ -4455,7 +5152,8 @@
"android": null,
"english": "Numpad Memory Clear",
"chromium": "numpadMemoryClear",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4467,7 +5165,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadMemoryAdd": {
......@@ -4476,7 +5175,8 @@
"android": null,
"english": "Numpad Memory Add",
"chromium": "numpadMemoryAdd",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4488,7 +5188,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadMemorySubtract": {
......@@ -4497,7 +5198,8 @@
"android": null,
"english": "Numpad Memory Subtract",
"chromium": "numpadMemorySubtract",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4509,7 +5211,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadSignChange": {
......@@ -4518,7 +5221,8 @@
"android": null,
"english": "Numpad Sign Change",
"chromium": "numpadSignChange",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4530,7 +5234,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadClear": {
......@@ -4539,7 +5244,8 @@
"android": null,
"english": "Numpad Clear",
"chromium": "numpadClear",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4551,7 +5257,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"numpadClearEntry": {
......@@ -4560,7 +5267,8 @@
"android": null,
"english": "Numpad Clear Entry",
"chromium": "numpadClearEntry",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4572,7 +5280,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"controlLeft": {
......@@ -4585,6 +5294,9 @@
"chromium": "controlLeft",
"glfw": [
"LEFT_CONTROL"
],
"windows": [
"LCONTROL"
]
},
"scanCodes": {
......@@ -4603,6 +5315,9 @@
],
"glfw": [
341
],
"windows": [
162
]
}
},
......@@ -4616,6 +5331,9 @@
"chromium": "shiftLeft",
"glfw": [
"LEFT_SHIFT"
],
"windows": [
"LSHIFT"
]
},
"scanCodes": {
......@@ -4634,6 +5352,9 @@
],
"glfw": [
340
],
"windows": [
160
]
}
},
......@@ -4647,6 +5368,9 @@
"chromium": "altLeft",
"glfw": [
"LEFT_ALT"
],
"windows": [
"LMENU"
]
},
"scanCodes": {
......@@ -4665,6 +5389,9 @@
],
"glfw": [
342
],
"windows": [
164
]
}
},
......@@ -4678,6 +5405,9 @@
"chromium": "metaLeft",
"glfw": [
"LEFT_SUPER"
],
"windows": [
"LWIN"
]
},
"scanCodes": {
......@@ -4696,6 +5426,9 @@
],
"glfw": [
343
],
"windows": [
91
]
}
},
......@@ -4709,6 +5442,9 @@
"chromium": "controlRight",
"glfw": [
"RIGHT_CONTROL"
],
"windows": [
"RCONTROL"
]
},
"scanCodes": {
......@@ -4727,6 +5463,9 @@
],
"glfw": [
345
],
"windows": [
163
]
}
},
......@@ -4740,6 +5479,9 @@
"chromium": "shiftRight",
"glfw": [
"RIGHT_SHIFT"
],
"windows": [
"RSHIFT"
]
},
"scanCodes": {
......@@ -4758,6 +5500,9 @@
],
"glfw": [
344
],
"windows": [
161
]
}
},
......@@ -4771,6 +5516,9 @@
"chromium": "altRight",
"glfw": [
"RIGHT_ALT"
],
"windows": [
"RMENU"
]
},
"scanCodes": {
......@@ -4789,6 +5537,9 @@
],
"glfw": [
346
],
"windows": [
165
]
}
},
......@@ -4802,6 +5553,9 @@
"chromium": "metaRight",
"glfw": [
"RIGHT_SUPER"
],
"windows": [
"RWIN"
]
},
"scanCodes": {
......@@ -4820,6 +5574,9 @@
],
"glfw": [
347
],
"windows": [
92
]
}
},
......@@ -4831,7 +5588,8 @@
],
"english": "Info",
"chromium": "info",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4847,7 +5605,8 @@
"android": [
165
],
"glfw": null
"glfw": null,
"windows": null
}
},
"closedCaptionToggle": {
......@@ -4858,7 +5617,8 @@
],
"english": "Closed Caption Toggle",
"chromium": "closedCaptionToggle",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4872,7 +5632,8 @@
"android": [
175
],
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessUp": {
......@@ -4883,7 +5644,8 @@
],
"english": "Brightness Up",
"chromium": "brightnessUp",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4899,7 +5661,8 @@
"android": [
221
],
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessDown": {
......@@ -4910,7 +5673,8 @@
],
"english": "Brightness Down",
"chromium": "brightnessDown",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -4926,7 +5690,8 @@
"android": [
220
],
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessToggle": {
......@@ -4935,7 +5700,8 @@
"android": null,
"english": "Brightness Toggle",
"chromium": "brightnessToggle",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4947,7 +5713,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessMinimum": {
......@@ -4956,7 +5723,8 @@
"android": null,
"english": "Brightness Minimum",
"chromium": "brightnessMinimum",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4968,7 +5736,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessMaximum": {
......@@ -4977,7 +5746,8 @@
"android": null,
"english": "Brightness Maximum",
"chromium": "brightnessMaximum",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -4989,7 +5759,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"brightnessAuto": {
......@@ -4998,7 +5769,8 @@
"android": null,
"english": "Brightness Auto",
"chromium": "brightnessAuto",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5010,7 +5782,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaLast": {
......@@ -5021,7 +5794,8 @@
],
"english": "Media Last",
"chromium": "mediaLast",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5035,7 +5809,8 @@
"android": [
229
],
"glfw": null
"glfw": null,
"windows": null
}
},
"launchPhone": {
......@@ -5044,7 +5819,8 @@
"android": null,
"english": "Launch Phone",
"chromium": "launchPhone",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5056,7 +5832,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"programGuide": {
......@@ -5065,7 +5842,8 @@
"android": null,
"english": "Program Guide",
"chromium": "programGuide",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5077,7 +5855,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"exit": {
......@@ -5088,7 +5867,8 @@
],
"english": "Exit",
"chromium": "exit",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5102,7 +5882,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"channelUp": {
......@@ -5113,7 +5894,8 @@
],
"english": "Channel Up",
"chromium": "channelUp",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5129,7 +5911,8 @@
"android": [
166
],
"glfw": null
"glfw": null,
"windows": null
}
},
"channelDown": {
......@@ -5140,7 +5923,8 @@
],
"english": "Channel Down",
"chromium": "channelDown",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5156,7 +5940,8 @@
"android": [
167
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaPlay": {
......@@ -5167,7 +5952,8 @@
],
"english": "Media Play",
"chromium": "mediaPlay",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5184,7 +5970,37 @@
"android": [
126
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaPause": {
"names": {
"domkey": "MediaPause",
"android": [
"MEDIA_PAUSE"
],
"english": "Media Pause",
"chromium": "mediaPause",
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
201
],
"usb": 786609,
"linux": 201,
"xkb": 209,
"windows": null,
"macos": null
},
"keyCodes": {
"android": [
127
],
"glfw": null,
"windows": null
}
},
"mediaRecord": {
......@@ -5195,7 +6011,8 @@
],
"english": "Media Record",
"chromium": "mediaRecord",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5211,7 +6028,8 @@
"android": [
130
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaFastForward": {
......@@ -5222,7 +6040,8 @@
],
"english": "Media Fast Forward",
"chromium": "mediaFastForward",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5238,7 +6057,8 @@
"android": [
90
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaRewind": {
......@@ -5249,7 +6069,8 @@
],
"english": "Media Rewind",
"chromium": "mediaRewind",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5265,7 +6086,8 @@
"android": [
89
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaTrackNext": {
......@@ -5276,7 +6098,8 @@
],
"english": "Media Track Next",
"chromium": "mediaTrackNext",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5292,7 +6115,8 @@
"android": [
87
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaTrackPrevious": {
......@@ -5303,7 +6127,8 @@
],
"english": "Media Track Previous",
"chromium": "mediaTrackPrevious",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5319,7 +6144,8 @@
"android": [
88
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaStop": {
......@@ -5330,7 +6156,10 @@
],
"english": "Media Stop",
"chromium": "mediaStop",
"glfw": null
"glfw": null,
"windows": [
"MEDIA_STOP"
]
},
"scanCodes": {
"android": [
......@@ -5347,7 +6176,10 @@
"android": [
86
],
"glfw": null
"glfw": null,
"windows": [
178
]
}
},
"eject": {
......@@ -5358,7 +6190,8 @@
],
"english": "Eject",
"chromium": "eject",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5375,7 +6208,8 @@
"android": [
129
],
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaPlayPause": {
......@@ -5386,7 +6220,10 @@
],
"english": "Media Play Pause",
"chromium": "mediaPlayPause",
"glfw": null
"glfw": null,
"windows": [
"MEDIA_PLAY_PAUSE"
]
},
"scanCodes": {
"android": [
......@@ -5402,7 +6239,10 @@
"android": [
85
],
"glfw": null
"glfw": null,
"windows": [
179
]
}
},
"speechInputToggle": {
......@@ -5411,7 +6251,8 @@
"android": null,
"english": "Speech Input Toggle",
"chromium": "speechInputToggle",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5423,7 +6264,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"bassBoost": {
......@@ -5434,7 +6276,8 @@
],
"english": "Bass Boost",
"chromium": "bassBoost",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5448,7 +6291,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"mediaSelect": {
......@@ -5457,7 +6301,8 @@
"android": null,
"english": "Media Select",
"chromium": "mediaSelect",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5469,7 +6314,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchWordProcessor": {
......@@ -5478,7 +6324,8 @@
"android": null,
"english": "Launch Word Processor",
"chromium": "launchWordProcessor",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5490,7 +6337,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchSpreadsheet": {
......@@ -5499,7 +6347,8 @@
"android": null,
"english": "Launch Spreadsheet",
"chromium": "launchSpreadsheet",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5511,7 +6360,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchMail": {
......@@ -5522,7 +6372,10 @@
],
"english": "Launch Mail",
"chromium": "launchMail",
"glfw": null
"glfw": null,
"windows": [
"LAUNCH_MAIL"
]
},
"scanCodes": {
"android": [
......@@ -5539,7 +6392,10 @@
"android": [
65
],
"glfw": null
"glfw": null,
"windows": [
180
]
}
},
"launchContacts": {
......@@ -5550,7 +6406,8 @@
],
"english": "Launch Contacts",
"chromium": "launchContacts",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5566,7 +6423,8 @@
"android": [
207
],
"glfw": null
"glfw": null,
"windows": null
}
},
"launchCalendar": {
......@@ -5577,7 +6435,8 @@
],
"english": "Launch Calendar",
"chromium": "launchCalendar",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5593,7 +6452,8 @@
"android": [
208
],
"glfw": null
"glfw": null,
"windows": null
}
},
"launchApp2": {
......@@ -5602,7 +6462,10 @@
"android": null,
"english": "Launch App2",
"chromium": "launchApp2",
"glfw": null
"glfw": null,
"windows": [
"LAUNCH_APP2"
]
},
"scanCodes": {
"android": null,
......@@ -5614,7 +6477,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
183
]
}
},
"launchApp1": {
......@@ -5623,7 +6489,10 @@
"android": null,
"english": "Launch App1",
"chromium": "launchApp1",
"glfw": null
"glfw": null,
"windows": [
"LAUNCH_APP1"
]
},
"scanCodes": {
"android": null,
......@@ -5635,7 +6504,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
182
]
}
},
"launchInternetBrowser": {
......@@ -5644,7 +6516,8 @@
"android": null,
"english": "Launch Internet Browser",
"chromium": "launchInternetBrowser",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5656,7 +6529,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"logOff": {
......@@ -5665,7 +6539,8 @@
"android": null,
"english": "Log Off",
"chromium": "logOff",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5677,7 +6552,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"lockScreen": {
......@@ -5686,7 +6562,8 @@
"android": null,
"english": "Lock Screen",
"chromium": "lockScreen",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5698,7 +6575,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchControlPanel": {
......@@ -5707,7 +6585,8 @@
"android": null,
"english": "Launch Control Panel",
"chromium": "launchControlPanel",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5719,7 +6598,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"selectTask": {
......@@ -5728,7 +6608,8 @@
"android": null,
"english": "Select Task",
"chromium": "selectTask",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5740,7 +6621,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchDocuments": {
......@@ -5749,7 +6631,8 @@
"android": null,
"english": "Launch Documents",
"chromium": "launchDocuments",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5761,7 +6644,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"spellCheck": {
......@@ -5770,7 +6654,8 @@
"android": null,
"english": "Spell Check",
"chromium": "spellCheck",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5782,7 +6667,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchKeyboardLayout": {
......@@ -5791,7 +6677,8 @@
"android": null,
"english": "Launch Keyboard Layout",
"chromium": "launchKeyboardLayout",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5803,7 +6690,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchScreenSaver": {
......@@ -5812,7 +6700,8 @@
"android": null,
"english": "Launch Screen Saver",
"chromium": "launchScreenSaver",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5824,7 +6713,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"launchAssistant": {
......@@ -5835,7 +6725,8 @@
],
"english": "Launch Assistant",
"chromium": "launchAssistant",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5849,7 +6740,8 @@
"android": [
219
],
"glfw": null
"glfw": null,
"windows": null
}
},
"launchAudioBrowser": {
......@@ -5858,7 +6750,8 @@
"android": null,
"english": "Launch Audio Browser",
"chromium": "launchAudioBrowser",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5870,7 +6763,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"newKey": {
......@@ -5881,7 +6775,8 @@
],
"english": "New Key",
"chromium": "new",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5895,7 +6790,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"close": {
......@@ -5907,7 +6803,8 @@
],
"english": "Close",
"chromium": "close",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -5924,7 +6821,8 @@
"android": [
128
],
"glfw": null
"glfw": null,
"windows": null
}
},
"save": {
......@@ -5933,7 +6831,8 @@
"android": null,
"english": "Save",
"chromium": "save",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -5945,7 +6844,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"print": {
......@@ -5956,7 +6856,10 @@
],
"english": "Print",
"chromium": "print",
"glfw": null
"glfw": null,
"windows": [
"PRINT"
]
},
"scanCodes": {
"android": [
......@@ -5970,7 +6873,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
42
]
}
},
"browserSearch": {
......@@ -5981,7 +6887,10 @@
],
"english": "Browser Search",
"chromium": "browserSearch",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_SEARCH"
]
},
"scanCodes": {
"android": [
......@@ -5997,7 +6906,10 @@
"android": [
84
],
"glfw": null
"glfw": null,
"windows": [
170
]
}
},
"browserHome": {
......@@ -6006,7 +6918,10 @@
"android": null,
"english": "Browser Home",
"chromium": "browserHome",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_HOME"
]
},
"scanCodes": {
"android": null,
......@@ -6018,7 +6933,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
172
]
}
},
"browserBack": {
......@@ -6027,7 +6945,10 @@
"android": null,
"english": "Browser Back",
"chromium": "browserBack",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_BACK"
]
},
"scanCodes": {
"android": null,
......@@ -6039,7 +6960,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
166
]
}
},
"browserForward": {
......@@ -6050,7 +6974,10 @@
],
"english": "Browser Forward",
"chromium": "browserForward",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_FORWARD"
]
},
"scanCodes": {
"android": [
......@@ -6066,7 +6993,10 @@
"android": [
125
],
"glfw": null
"glfw": null,
"windows": [
167
]
}
},
"browserStop": {
......@@ -6075,7 +7005,10 @@
"android": null,
"english": "Browser Stop",
"chromium": "browserStop",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_STOP"
]
},
"scanCodes": {
"android": null,
......@@ -6087,7 +7020,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
169
]
}
},
"browserRefresh": {
......@@ -6096,7 +7032,10 @@
"android": null,
"english": "Browser Refresh",
"chromium": "browserRefresh",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_REFRESH"
]
},
"scanCodes": {
"android": null,
......@@ -6108,7 +7047,10 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": [
168
]
}
},
"browserFavorites": {
......@@ -6119,7 +7061,10 @@
],
"english": "Browser Favorites",
"chromium": "browserFavorites",
"glfw": null
"glfw": null,
"windows": [
"BROWSER_FAVORITES"
]
},
"scanCodes": {
"android": [
......@@ -6135,7 +7080,10 @@
"android": [
174
],
"glfw": null
"glfw": null,
"windows": [
171
]
}
},
"zoomIn": {
......@@ -6146,7 +7094,8 @@
],
"english": "Zoom In",
"chromium": "zoomIn",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6160,7 +7109,8 @@
"android": [
168
],
"glfw": null
"glfw": null,
"windows": null
}
},
"zoomOut": {
......@@ -6171,7 +7121,8 @@
],
"english": "Zoom Out",
"chromium": "zoomOut",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6185,7 +7136,8 @@
"android": [
169
],
"glfw": null
"glfw": null,
"windows": null
}
},
"zoomToggle": {
......@@ -6196,7 +7148,8 @@
],
"english": "Zoom Toggle",
"chromium": "zoomToggle",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6210,7 +7163,8 @@
"android": [
255
],
"glfw": null
"glfw": null,
"windows": null
}
},
"redo": {
......@@ -6221,7 +7175,8 @@
],
"english": "Redo",
"chromium": "redo",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6235,7 +7190,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"mailReply": {
......@@ -6244,7 +7200,8 @@
"android": null,
"english": "Mail Reply",
"chromium": "mailReply",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6256,7 +7213,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"mailForward": {
......@@ -6265,7 +7223,8 @@
"android": null,
"english": "Mail Forward",
"chromium": "mailForward",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6277,7 +7236,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"mailSend": {
......@@ -6286,7 +7246,8 @@
"android": null,
"english": "Mail Send",
"chromium": "mailSend",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6298,7 +7259,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"keyboardLayoutSelect": {
......@@ -6307,7 +7269,8 @@
"android": null,
"english": "Keyboard Layout Select",
"chromium": "keyboardLayoutSelect",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6319,7 +7282,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"showAllWindows": {
......@@ -6328,7 +7292,8 @@
"android": null,
"english": "Show All Windows",
"chromium": "showAllWindows",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": null,
......@@ -6340,7 +7305,8 @@
},
"keyCodes": {
"android": null,
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton1": {
......@@ -6351,7 +7317,8 @@
],
"english": "Game Button 1",
"chromium": "button1",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6368,7 +7335,8 @@
"android": [
188
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton2": {
......@@ -6379,7 +7347,8 @@
],
"english": "Game Button 2",
"chromium": "button2",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6396,7 +7365,8 @@
"android": [
189
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton3": {
......@@ -6407,7 +7377,8 @@
],
"english": "Game Button 3",
"chromium": "button3",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6424,7 +7395,8 @@
"android": [
190
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton4": {
......@@ -6435,7 +7407,8 @@
],
"english": "Game Button 4",
"chromium": "button4",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6452,7 +7425,8 @@
"android": [
191
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton5": {
......@@ -6463,7 +7437,8 @@
],
"english": "Game Button 5",
"chromium": "button5",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6480,7 +7455,8 @@
"android": [
192
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton6": {
......@@ -6491,7 +7467,8 @@
],
"english": "Game Button 6",
"chromium": "button6",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6508,7 +7485,8 @@
"android": [
193
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton7": {
......@@ -6519,7 +7497,8 @@
],
"english": "Game Button 7",
"chromium": "button7",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6536,7 +7515,8 @@
"android": [
194
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton8": {
......@@ -6547,7 +7527,8 @@
],
"english": "Game Button 8",
"chromium": "button8",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6564,7 +7545,8 @@
"android": [
195
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton9": {
......@@ -6575,7 +7557,8 @@
],
"english": "Game Button 9",
"chromium": "button9",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6592,7 +7575,8 @@
"android": [
196
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton10": {
......@@ -6603,7 +7587,8 @@
],
"english": "Game Button 10",
"chromium": "button10",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6620,7 +7605,8 @@
"android": [
197
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton11": {
......@@ -6631,7 +7617,8 @@
],
"english": "Game Button 11",
"chromium": "button11",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6648,7 +7635,8 @@
"android": [
198
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton12": {
......@@ -6659,7 +7647,8 @@
],
"english": "Game Button 12",
"chromium": "button12",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6676,7 +7665,8 @@
"android": [
199
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton13": {
......@@ -6687,7 +7677,8 @@
],
"english": "Game Button 13",
"chromium": "button13",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6704,7 +7695,8 @@
"android": [
200
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton14": {
......@@ -6715,7 +7707,8 @@
],
"english": "Game Button 14",
"chromium": "button14",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6732,7 +7725,8 @@
"android": [
201
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton15": {
......@@ -6743,7 +7737,8 @@
],
"english": "Game Button 15",
"chromium": "button15",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6760,7 +7755,8 @@
"android": [
202
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButton16": {
......@@ -6771,7 +7767,8 @@
],
"english": "Game Button 16",
"chromium": "button16",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6788,7 +7785,8 @@
"android": [
203
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonA": {
......@@ -6799,7 +7797,8 @@
],
"english": "Game Button A",
"chromium": "buttonA",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6815,7 +7814,8 @@
"android": [
96
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonB": {
......@@ -6826,7 +7826,8 @@
],
"english": "Game Button B",
"chromium": "buttonB",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6842,7 +7843,8 @@
"android": [
97
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonC": {
......@@ -6853,7 +7855,8 @@
],
"english": "Game Button C",
"chromium": "buttonC",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6869,7 +7872,8 @@
"android": [
98
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonLeft1": {
......@@ -6880,7 +7884,8 @@
],
"english": "Game Button Left 1",
"chromium": "buttonL1",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6896,7 +7901,8 @@
"android": [
102
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonLeft2": {
......@@ -6907,7 +7913,8 @@
],
"english": "Game Button Left 2",
"chromium": "buttonL2",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6923,7 +7930,8 @@
"android": [
104
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonMode": {
......@@ -6934,7 +7942,8 @@
],
"english": "Game Button Mode",
"chromium": "buttonMode",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6950,7 +7959,8 @@
"android": [
110
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonRight1": {
......@@ -6961,7 +7971,8 @@
],
"english": "Game Button Right 1",
"chromium": "buttonR1",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -6977,7 +7988,8 @@
"android": [
103
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonRight2": {
......@@ -6988,7 +8000,8 @@
],
"english": "Game Button Right 2",
"chromium": "buttonR2",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7004,7 +8017,8 @@
"android": [
105
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonSelect": {
......@@ -7015,7 +8029,8 @@
],
"english": "Game Button Select",
"chromium": "buttonSelect",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7031,7 +8046,8 @@
"android": [
109
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonStart": {
......@@ -7042,7 +8058,8 @@
],
"english": "Game Button Start",
"chromium": "buttonStart",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7058,7 +8075,8 @@
"android": [
108
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonThumbLeft": {
......@@ -7069,7 +8087,8 @@
],
"english": "Game Button Thumb Left",
"chromium": "buttonThumbl",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7085,7 +8104,8 @@
"android": [
106
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonThumbRight": {
......@@ -7096,7 +8116,8 @@
],
"english": "Game Button Thumb Right",
"chromium": "buttonThumbr",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7112,7 +8133,8 @@
"android": [
107
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonX": {
......@@ -7123,7 +8145,8 @@
],
"english": "Game Button X",
"chromium": "buttonX",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7139,7 +8162,8 @@
"android": [
99
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonY": {
......@@ -7150,7 +8174,8 @@
],
"english": "Game Button Y",
"chromium": "buttonY",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7166,7 +8191,8 @@
"android": [
100
],
"glfw": null
"glfw": null,
"windows": null
}
},
"gameButtonZ": {
......@@ -7177,7 +8203,8 @@
],
"english": "Game Button Z",
"chromium": "buttonZ",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7193,7 +8220,8 @@
"android": [
101
],
"glfw": null
"glfw": null,
"windows": null
}
},
"fn": {
......@@ -7204,7 +8232,8 @@
],
"english": "Fn",
"chromium": "fn",
"glfw": null
"glfw": null,
"windows": null
},
"scanCodes": {
"android": [
......@@ -7220,7 +8249,8 @@
"android": [
119
],
"glfw": null
"glfw": null,
"windows": null
}
}
}
\ No newline at end of file
{
"leftMouseButton": ["LBUTTON"],
"rightMouseButton": ["RBUTTON"],
"cancel": ["CANCEL"],
"middleMouseButton": ["MBUTTON"],
"xMouseButton1": ["XBUTTON1"],
"xMouseButton2": ["XBUTTON2"],
"backspace": ["BACK"],
"tab": ["TAB"],
"clear": ["CLEAR"],
"enter": ["RETURN"],
"shift": ["SHIFT"],
"control": ["CONTROL"],
"menu": ["MENU"],
"pause": ["PAUSE"],
"capsLock": ["CAPITAL"],
"kana": ["KANA"],
"hangeul": ["HANGEUL"],
"hangul": ["HANGUL"],
"junja": ["JUNJA"],
"final": ["FINAL"],
"hanja": ["HANJA"],
"kanji": ["KANJI"],
"escape": ["ESCAPE"],
"convert": ["CONVERT"],
"nonconvert": ["NONCONVERT"],
"accept": ["ACCEPT"],
"modeChange": ["MODECHANGE"],
"space": ["SPACE"],
"prior": ["PRIOR"],
"next": ["NEXT"],
"end": ["END"],
"home": ["HOME"],
"leftArrow": ["LEFT"],
"upArrow": ["UP"],
"rightArrow": ["RIGHT"],
"downArrow": ["DOWN"],
"select": ["SELECT"],
"print": ["PRINT"],
"execute": ["EXECUTE"],
"snapshot": ["SNAPSHOT"],
"insert": ["INSERT"],
"delete": ["DELETE"],
"help": ["HELP"],
"metaLeft": ["LWIN"],
"metaRight": ["RWIN"],
"apps": ["APPS"],
"sleep": ["SLEEP"],
"numpad0": ["NUMPAD0"],
"numpad1": ["NUMPAD1"],
"numpad2": ["NUMPAD2"],
"numpad3": ["NUMPAD3"],
"numpad4": ["NUMPAD4"],
"numpad5": ["NUMPAD5"],
"numpad6": ["NUMPAD6"],
"numpad7": ["NUMPAD7"],
"numpad8": ["NUMPAD8"],
"numpad9": ["NUMPAD9"],
"numpadMultiply": ["MULTIPLY"],
"numpadAdd": ["ADD"],
"numpadSeparator": ["SEPARATOR"],
"numpadSubtract": ["SUBTRACT"],
"numpadDecimal": ["DECIMAL"],
"numpadDivide": ["DIVIDE"],
"f1": ["F1"],
"f2": ["F2"],
"f3": ["F3"],
"f4": ["F4"],
"f5": ["F5"],
"f6": ["F6"],
"f7": ["F7"],
"f8": ["F8"],
"f9": ["F9"],
"f10": ["F10"],
"f11": ["F11"],
"f12": ["F12"],
"f13": ["F13"],
"f14": ["F14"],
"f15": ["F15"],
"f16": ["F16"],
"f17": ["F17"],
"f18": ["F18"],
"f19": ["F19"],
"f20": ["F20"],
"f21": ["F21"],
"f22": ["F22"],
"f23": ["F23"],
"f24": ["F24"],
"navigationView": ["NAVIGATION_VIEW"],
"navigationMenu": ["NAVIGATION_MENU"],
"navigationUp": ["NAVIGATION_UP"],
"navigationDown": ["NAVIGATION_DOWN"],
"navigationLeft": ["NAVIGATION_LEFT"],
"navigationRight": ["NAVIGATION_RIGHT"],
"navigationAccept": ["NAVIGATION_ACCEPT"],
"navigationCancel": ["NAVIGATION_CANCEL"],
"numlock": ["NUMLOCK"],
"scroll": ["SCROLL"],
"numpadEqual": ["OEM_NEC_EQUAL"],
"oemFjJisho": ["OEM_FJ_JISHO"],
"oemFjMasshou": ["OEM_FJ_MASSHOU"],
"oemFjTouroku": ["OEM_FJ_TOUROKU"],
"oemFjLoya": ["OEM_FJ_LOYA"],
"oemFjRoya": ["OEM_FJ_ROYA"],
"shiftLeft": ["LSHIFT"],
"shiftRight": ["RSHIFT"],
"controlLeft": ["LCONTROL"],
"controlRight": ["RCONTROL"],
"altLeft": ["LMENU"],
"altRight": ["RMENU"],
"browserBack": ["BROWSER_BACK"],
"browserForward": ["BROWSER_FORWARD"],
"browserRefresh": ["BROWSER_REFRESH"],
"browserStop": ["BROWSER_STOP"],
"browserSearch": ["BROWSER_SEARCH"],
"browserFavorites": ["BROWSER_FAVORITES"],
"browserHome": ["BROWSER_HOME"],
"volumeMute": ["VOLUME_MUTE"],
"volumeDown": ["VOLUME_DOWN"],
"volumeUp": ["VOLUME_UP"],
"mediaNextTrack": ["MEDIA_NEXT_TRACK"],
"mediaPrevTrack": ["MEDIA_PREV_TRACK"],
"mediaStop": ["MEDIA_STOP"],
"mediaPlayPause": ["MEDIA_PLAY_PAUSE"],
"launchMail": ["LAUNCH_MAIL"],
"launchMediaSelect": ["LAUNCH_MEDIA_SELECT"],
"launchApp1": ["LAUNCH_APP1"],
"launchApp2": ["LAUNCH_APP2"],
"semicolon": ["OEM_1"],
"equal": ["OEM_PLUS"],
"comma": ["OEM_COMMA"],
"minus": ["OEM_MINUS"],
"period": ["OEM_PERIOD"],
"slash": ["OEM_2"],
"backQuote": ["OEM_3"],
"gamepadA": ["GAMEPAD_A"],
"gamepadB": ["GAMEPAD_B"],
"gamepadX": ["GAMEPAD_X"],
"gamepadY": ["GAMEPAD_Y"],
"gamepadRightShoulder": ["GAMEPAD_RIGHT_SHOULDER"],
"gamepadLeftShoulder": ["GAMEPAD_LEFT_SHOULDER"],
"gamepadLeftTrigger": ["GAMEPAD_LEFT_TRIGGER"],
"gamepadRightTrigger": ["GAMEPAD_RIGHT_TRIGGER"],
"gamepadDpadUp": ["GAMEPAD_DPAD_UP"],
"gamepadDpadDown": ["GAMEPAD_DPAD_DOWN"],
"gamepadDpadLeft": ["GAMEPAD_DPAD_LEFT"],
"gamepadDpadRight": ["GAMEPAD_DPAD_RIGHT"],
"gamepadMenu": ["GAMEPAD_MENU"],
"gamepadView": ["GAMEPAD_VIEW"],
"gamepadLeftThumbstickButton": ["GAMEPAD_LEFT_THUMBSTICK_BUTTON"],
"gamepadRightThumbstickButton": ["GAMEPAD_RIGHT_THUMBSTICK_BUTTON"],
"gamepadLeftThumbstickUp": ["GAMEPAD_LEFT_THUMBSTICK_UP"],
"gamepadLeftThumbstickDown": ["GAMEPAD_LEFT_THUMBSTICK_DOWN"],
"gamepadLeftThumbstickRight": ["GAMEPAD_LEFT_THUMBSTICK_RIGHT"],
"gamepadLeftThumbstickLeft": ["GAMEPAD_LEFT_THUMBSTICK_LEFT"],
"gamepadRightThumbstickUp": ["GAMEPAD_RIGHT_THUMBSTICK_UP"],
"gamepadRightThumbstickDown": ["GAMEPAD_RIGHT_THUMBSTICK_DOWN"],
"gamepadRightThumbstickRight": ["GAMEPAD_RIGHT_THUMBSTICK_RIGHT"],
"gamepadRightThumbstickLeft": ["GAMEPAD_RIGHT_THUMBSTICK_LEFT"],
"bracketLeft": ["OEM_4"],
"backslash": ["OEM_5"],
"bracketRight": ["OEM_6"],
"quote": ["OEM_7"],
"oem8": ["OEM_8"],
"oemAx": ["OEM_AX"],
"oem102": ["OEM_102"],
"icoHelp": ["ICO_HELP"],
"ico00": ["ICO_00"],
"processkey": ["PROCESSKEY"],
"icoClear": ["ICO_CLEAR"],
"packet": ["PACKET"],
"oemReset": ["OEM_RESET"],
"oemJump": ["OEM_JUMP"],
"oemPa1": ["OEM_PA1"],
"oemPa2": ["OEM_PA2"],
"oemPa3": ["OEM_PA3"],
"oemWsctrl": ["OEM_WSCTRL"],
"oemCusel": ["OEM_CUSEL"],
"oemAttn": ["OEM_ATTN"],
"oemFinish": ["OEM_FINISH"],
"oemCopy": ["OEM_COPY"],
"oemAuto": ["OEM_AUTO"],
"oemEnlw": ["OEM_ENLW"],
"oemBacktab": ["OEM_BACKTAB"],
"attn": ["ATTN"],
"crsel": ["CRSEL"],
"exsel": ["EXSEL"],
"ereof": ["EREOF"],
"play": ["PLAY"],
"zoom": ["ZOOM"],
"noname": ["NONAME"],
"pa1": ["PA1"],
"oemClear": ["OEM_CLEAR"],
"0": ["0"],
"1": ["1"],
"2": ["2"],
"3": ["3"],
"4": ["4"],
"5": ["5"],
"6": ["6"],
"7": ["7"],
"8": ["8"],
"9": ["9"],
"keyA": ["A"],
"keyB": ["B"],
"keyC": ["C"],
"keyD": ["D"],
"keyE": ["E"],
"keyF": ["F"],
"keyG": ["G"],
"keyH": ["H"],
"keyI": ["I"],
"keyJ": ["J"],
"keyK": ["K"],
"keyL": ["L"],
"keyM": ["M"],
"keyN": ["N"],
"keyO": ["O"],
"keyP": ["P"],
"keyQ": ["Q"],
"keyR": ["R"],
"keyS": ["S"],
"keyT": ["T"],
"keyU": ["U"],
"keyV": ["V"],
"keyW": ["W"],
"keyX": ["X"],
"keyY": ["Y"],
"keyZ": ["Z"]
}
......@@ -45,7 +45,7 @@ abstract class KeyboardKey extends Diagnosticable {
/// look at the physical key to make sure that regardless of the character the
/// key produces, you got the key that is in that location on the keyboard.
///
/// {@tool sample --template=stateful_widget_scaffold}
/// {@tool dartpad --template=stateful_widget_scaffold}
/// This example shows how to detect if the user has selected the logical "Q"
/// key.
///
......@@ -331,7 +331,7 @@ class LogicalKeyboardKey extends KeyboardKey {
/// looking for "the key next next to the TAB key", since on a French keyboard,
/// the key next to the TAB key has an "A" on it.
///
/// {@tool sample --template=stateful_widget_scaffold}
/// {@tool dartpad --template=stateful_widget_scaffold}
/// This example shows how to detect if the user has selected the physical key
/// to the right of the CAPS LOCK key.
///
......
......@@ -12,40 +12,40 @@
// collide with any currently defined HID codes.
//
// USB HID evdev XKB Win Mac DOMKey Code
USB_KEYMAP(0x05ff01, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton1", BUTTON_1),
USB_KEYMAP(0x05ff02, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton2", BUTTON_2),
USB_KEYMAP(0x05ff03, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton3", BUTTON_3),
USB_KEYMAP(0x05ff04, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton4", BUTTON_4),
USB_KEYMAP(0x05ff05, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton5", BUTTON_5),
USB_KEYMAP(0x05ff06, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton6", BUTTON_6),
USB_KEYMAP(0x05ff07, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton7", BUTTON_7),
USB_KEYMAP(0x05ff08, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton8", BUTTON_8),
USB_KEYMAP(0x05ff09, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton9", BUTTON_9),
USB_KEYMAP(0x05ff0a, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton10", BUTTON_10),
USB_KEYMAP(0x05ff0b, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton11", BUTTON_11),
USB_KEYMAP(0x05ff0c, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton12", BUTTON_12),
USB_KEYMAP(0x05ff0d, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton13", BUTTON_13),
USB_KEYMAP(0x05ff0e, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton14", BUTTON_14),
USB_KEYMAP(0x05ff0f, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton15", BUTTON_15),
USB_KEYMAP(0x05ff10, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton16", BUTTON_16),
USB_KEYMAP(0x05ff11, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonA", BUTTON_A),
USB_KEYMAP(0x05ff12, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonB", BUTTON_B),
USB_KEYMAP(0x05ff13, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonC", BUTTON_C),
USB_KEYMAP(0x05ff14, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonLeft1", BUTTON_L1),
USB_KEYMAP(0x05ff15, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonLeft2", BUTTON_L2),
USB_KEYMAP(0x05ff16, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonMode", BUTTON_MODE),
USB_KEYMAP(0x05ff17, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonRight1", BUTTON_R1),
USB_KEYMAP(0x05ff18, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonRight2", BUTTON_R2),
USB_KEYMAP(0x05ff19, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonSelect", BUTTON_SELECT),
USB_KEYMAP(0x05ff1a, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonStart", BUTTON_START),
USB_KEYMAP(0x05ff1b, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonThumbLeft", BUTTON_THUMBL),
USB_KEYMAP(0x05ff1c, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonThumbRight", BUTTON_THUMBR),
USB_KEYMAP(0x05ff1d, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonX", BUTTON_X),
USB_KEYMAP(0x05ff1e, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonY", BUTTON_Y),
USB_KEYMAP(0x05ff1f, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonZ", BUTTON_Z),
DOM_CODE(0x05ff01, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton1", BUTTON_1),
DOM_CODE(0x05ff02, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton2", BUTTON_2),
DOM_CODE(0x05ff03, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton3", BUTTON_3),
DOM_CODE(0x05ff04, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton4", BUTTON_4),
DOM_CODE(0x05ff05, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton5", BUTTON_5),
DOM_CODE(0x05ff06, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton6", BUTTON_6),
DOM_CODE(0x05ff07, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton7", BUTTON_7),
DOM_CODE(0x05ff08, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton8", BUTTON_8),
DOM_CODE(0x05ff09, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton9", BUTTON_9),
DOM_CODE(0x05ff0a, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton10", BUTTON_10),
DOM_CODE(0x05ff0b, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton11", BUTTON_11),
DOM_CODE(0x05ff0c, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton12", BUTTON_12),
DOM_CODE(0x05ff0d, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton13", BUTTON_13),
DOM_CODE(0x05ff0e, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton14", BUTTON_14),
DOM_CODE(0x05ff0f, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton15", BUTTON_15),
DOM_CODE(0x05ff10, 0x0000, 0x0000, 0x0000, 0xffff, "GameButton16", BUTTON_16),
DOM_CODE(0x05ff11, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonA", BUTTON_A),
DOM_CODE(0x05ff12, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonB", BUTTON_B),
DOM_CODE(0x05ff13, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonC", BUTTON_C),
DOM_CODE(0x05ff14, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonLeft1", BUTTON_L1),
DOM_CODE(0x05ff15, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonLeft2", BUTTON_L2),
DOM_CODE(0x05ff16, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonMode", BUTTON_MODE),
DOM_CODE(0x05ff17, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonRight1", BUTTON_R1),
DOM_CODE(0x05ff18, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonRight2", BUTTON_R2),
DOM_CODE(0x05ff19, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonSelect", BUTTON_SELECT),
DOM_CODE(0x05ff1a, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonStart", BUTTON_START),
DOM_CODE(0x05ff1b, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonThumbLeft", BUTTON_THUMBL),
DOM_CODE(0x05ff1c, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonThumbRight", BUTTON_THUMBR),
DOM_CODE(0x05ff1d, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonX", BUTTON_X),
DOM_CODE(0x05ff1e, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonY", BUTTON_Y),
DOM_CODE(0x05ff1f, 0x0000, 0x0000, 0x0000, 0xffff, "GameButtonZ", BUTTON_Z),
// The Mac defines a key code for the Fn key on Mac keyboards, but it's not
// defined on other platforms. Chromium does define an "Fn" row, but doesn't
// give it a Mac keycode. This overrides their definition.
// USB HID evdev XKB Win Mac DOMKey Code
USB_KEYMAP(0x000012, 0x0000, 0x0000, 0x0000, 0x003f, "Fn", FN),
DOM_CODE(0x000012, 0x0000, 0x0000, 0x0000, 0x003f, "Fn", FN),
......@@ -28,32 +28,42 @@ class KeyData {
String androidNameMap,
String glfwKeyCodeHeader,
String glfwNameMap,
String windowsKeyCodeHeader,
String windowsNameMap,
) : assert(chromiumHidCodes != null),
assert(androidKeyboardLayout != null),
assert(androidKeyCodeHeader != null),
assert(androidNameMap != null),
assert(glfwKeyCodeHeader != null),
assert(glfwNameMap != null) {
assert(glfwNameMap != null),
assert(windowsKeyCodeHeader != null),
assert(windowsNameMap != null) {
_nameToAndroidScanCodes = _readAndroidScanCodes(androidKeyboardLayout);
_nameToAndroidKeyCode = _readAndroidKeyCodes(androidKeyCodeHeader);
_nameToGlfwKeyCode = _readGlfwKeyCodes(glfwKeyCodeHeader);
_nameToWindowsKeyCode = _readWindowsKeyCodes(windowsKeyCodeHeader);
// Cast Android dom map
final Map<String, List<dynamic>> dynamicAndroidNames = (json.decode(androidNameMap) as Map<String, List<dynamic>>).cast<String, List<dynamic>>();
final Map<String, List<dynamic>> dynamicAndroidNames = (json.decode(androidNameMap) as Map<String, dynamic>).cast<String, List<dynamic>>();
_nameToAndroidName = dynamicAndroidNames.map<String, List<String>>((String key, List<dynamic> value) {
return MapEntry<String, List<String>>(key, value.cast<String>());
});
// Cast GLFW dom map
final Map<String, List<dynamic>> dynamicGlfwNames = (json.decode(glfwNameMap) as Map<String, List<dynamic>>).cast<String, List<dynamic>>();
final Map<String, List<dynamic>> dynamicGlfwNames = (json.decode(glfwNameMap) as Map<String, dynamic>).cast<String, List<dynamic>>();
_nameToGlfwName = dynamicGlfwNames.map<String, List<String>>((String key, List<dynamic> value) {
return MapEntry<String, List<String>>(key, value.cast<String>());
});
// Cast Windows dom map
final Map<String, List<dynamic>> dynamicWindowsNames = (json.decode(windowsNameMap) as Map<String, dynamic>).cast<String, List<dynamic>>();
_nameToWindowsName = dynamicWindowsNames.map<String, List<String>>((String key, List<dynamic> value) {
return MapEntry<String, List<String>>(key, value.cast<String>());
});
data = _readHidEntries(chromiumHidCodes);
}
/// Parses the given JSON data and populates the data structure from it.
KeyData.fromJson(Map<String, dynamic> contentMap) {
data = <Key>[
for (final String key in contentMap.keys) Key.fromJsonMapEntry(key, contentMap[key] as Map<String, List<dynamic>>),
for (final String key in contentMap.keys) Key.fromJsonMapEntry(key, contentMap[key] as Map<String, dynamic>),
];
}
......@@ -86,6 +96,17 @@ class KeyData {
}
}
}
// Windows key names
entry.windowsKeyNames = _nameToWindowsName[entry.constantName]?.cast<String>();
if (entry.windowsKeyNames != null && entry.windowsKeyNames.isNotEmpty) {
for (final String windowsKeyName in entry.windowsKeyNames) {
if (_nameToWindowsKeyCode[windowsKeyName] != null) {
entry.windowsKeyCodes ??= <int>[];
entry.windowsKeyCodes.add(_nameToWindowsKeyCode[windowsKeyName]);
}
}
}
}
final Map<String, dynamic> outputMap = <String, dynamic>{};
......@@ -133,6 +154,21 @@ class KeyData {
/// JSON.
Map<String, int> _nameToGlfwKeyCode;
/// The mapping from Widows name (e.g. "RETURN") to the integer key code
/// (logical meaning) of the key.
///
/// Only populated if data is parsed from the source files, not if parsed from
/// JSON.
Map<String, int> _nameToWindowsKeyCode;
/// The mapping from the Flutter name (e.g. "enter") to the Windows name (e.g.
/// "RETURN").
///
/// Only populated if data is parsed from the source files, not if parsed from
/// JSON.
Map<String, List<String>> _nameToWindowsName;
/// Parses entries from Androids Generic.kl scan code data file.
///
/// Lines in this file look like this (without the ///):
......@@ -191,9 +227,9 @@ class KeyData {
/// #define GLFW_KEY_SPACE 32,
Map<String, int> _readGlfwKeyCodes(String headerFile) {
// Only get the KEY definitions, ignore the rest (mouse, joystick, etc).
final RegExp enumEntry = RegExp(r'define GLFW_KEY_([A-Z0-9_]+)\s*([A-Z0-9_]+),?');
final RegExp definedCodes = RegExp(r'define GLFW_KEY_([A-Z0-9_]+)\s*([A-Z0-9_]+),?');
final Map<String, dynamic> replaced = <String, dynamic>{};
for (final Match match in enumEntry.allMatches(headerFile)) {
for (final Match match in definedCodes.allMatches(headerFile)) {
replaced[match.group(1)] = int.tryParse(match.group(2)) ?? match.group(2).replaceAll('GLFW_KEY_', '');
}
final Map<String, int> result = <String, int>{};
......@@ -208,15 +244,32 @@ class KeyData {
return result;
}
Map<String, int> _readWindowsKeyCodes(String headerFile) {
final RegExp definedCodes = RegExp(r'define VK_([A-Z0-9_]+)\s*([A-Z0-9_x]+),?');
final Map<String, int> replaced = <String, int>{};
for (final Match match in definedCodes.allMatches(headerFile)) {
replaced[match.group(1)] = int.tryParse(match.group(2));
}
// The header doesn't explicitly define the [0-9] and [A-Z], but they mention that the range
// is equivalent to the ASCII value.
for (int i = 0x30; i <= 0x39; i++) {
replaced[String.fromCharCode(i)] = i;
}
for (int i = 0x41; i <= 0x5A; i++) {
replaced[String.fromCharCode(i)] = i;
}
return replaced;
}
/// Parses entries from Chromium's HID code mapping header file.
///
/// Lines in this file look like this (without the ///):
/// USB evdev XKB Win Mac Code Enum
/// USB_KEYMAP(0x000010, 0x0000, 0x0000, 0x0000, 0xffff, "Hyper", HYPER),
/// DOM_CODE(0x000010, 0x0000, 0x0000, 0x0000, 0xffff, "Hyper", HYPER),
List<Key> _readHidEntries(String input) {
final List<Key> entries = <Key>[];
final RegExp usbMapRegExp = RegExp(
r'USB_KEYMAP\s*\(\s*0x([a-fA-F0-9]+),\s*0x([a-fA-F0-9]+),'
r'DOM_CODE\s*\(\s*0x([a-fA-F0-9]+),\s*0x([a-fA-F0-9]+),'
r'\s*0x([a-fA-F0-9]+),\s*0x([a-fA-F0-9]+),\s*0x([a-fA-F0-9]+),\s*"?([^\s]+?)"?,\s*([^\s]+?)\s*\)',
multiLine: true);
final RegExp commentRegExp = RegExp(r'//.*$', multiLine: true);
......@@ -270,6 +323,8 @@ class Key {
this.linuxScanCode,
this.xKbScanCode,
this.windowsScanCode,
this.windowsKeyNames,
this.windowsKeyCodes,
this.macOsScanCode,
@required this.chromiumName,
this.androidKeyNames,
......@@ -294,6 +349,8 @@ class Key {
linuxScanCode: map['scanCodes']['linux'] as int,
xKbScanCode: map['scanCodes']['xkb'] as int,
windowsScanCode: map['scanCodes']['windows'] as int,
windowsKeyCodes: (map['keyCodes']['windows'] as List<dynamic>)?.cast<int>(),
windowsKeyNames: (map['names']['windows'] as List<dynamic>)?.cast<String>(),
macOsScanCode: map['scanCodes']['macos'] as int,
glfwKeyNames: (map['names']['glfw'] as List<dynamic>)?.cast<String>(),
glfwKeyCodes: (map['keyCodes']['glfw'] as List<dynamic>)?.cast<int>(),
......@@ -309,6 +366,13 @@ class Key {
int xKbScanCode;
/// The Windows scan code of the key from Chromium's header file.
int windowsScanCode;
/// The list of Windows key codes matching this key, created by looking up the
/// Windows name in the Chromium data, and substituting the Windows key code
/// value.
List<int> windowsKeyCodes;
/// The list of names that Windows gives to this key (symbol names minus the
/// prefix).
List<String> windowsKeyNames;
/// The macOS scan code of the key from Chromium's header file.
int macOsScanCode;
/// The name of the key, mostly derived from the DomKey name in Chromium,
......@@ -347,6 +411,7 @@ class Key {
'english': commentName,
'chromium': chromiumName,
'glfw': glfwKeyNames,
'windows': windowsKeyNames,
},
'scanCodes': <String, dynamic>{
'android': androidScanCodes,
......@@ -359,6 +424,7 @@ class Key {
'keyCodes': <String, List<int>>{
'android': androidKeyCodes,
'glfw': glfwKeyCodes,
'windows': windowsKeyCodes,
},
};
}
......@@ -420,7 +486,7 @@ class Key {
return """'$constantName': (name: "$name", usbHidCode: ${toHex(usbHidCode)}, """
'linuxScanCode: ${toHex(linuxScanCode)}, xKbScanCode: ${toHex(xKbScanCode)}, '
'windowsKeyCode: ${toHex(windowsScanCode)}, macOsScanCode: ${toHex(macOsScanCode)}, '
'chromiumSymbolName: $chromiumName';
'windowsScanCode: ${toHex(windowsScanCode)}, chromiumSymbolName: $chromiumName';
}
/// Returns the static map of printable representations.
......
......@@ -335,6 +335,11 @@ class LogicalKeyboardKey extends KeyboardKey {
/// See the function [RawKeyEvent.logicalKey] for more information.
static const LogicalKeyboardKey turbo = LogicalKeyboardKey(0x00100000016, debugName: kReleaseMode ? null : 'Turbo');
/// Represents the logical "Privacy Screen Toggle" key on the keyboard.
///
/// See the function [RawKeyEvent.logicalKey] for more information.
static const LogicalKeyboardKey privacyScreenToggle = LogicalKeyboardKey(0x00100000017, debugName: kReleaseMode ? null : 'Privacy Screen Toggle');
/// Represents the logical "Sleep" key on the keyboard.
///
/// See the function [RawKeyEvent.logicalKey] for more information.
......@@ -1220,6 +1225,11 @@ class LogicalKeyboardKey extends KeyboardKey {
/// See the function [RawKeyEvent.logicalKey] for more information.
static const LogicalKeyboardKey mediaPlay = LogicalKeyboardKey(0x001000c00b0, debugName: kReleaseMode ? null : 'Media Play');
/// Represents the logical "Media Pause" key on the keyboard.
///
/// See the function [RawKeyEvent.logicalKey] for more information.
static const LogicalKeyboardKey mediaPause = LogicalKeyboardKey(0x001000c00b1, debugName: kReleaseMode ? null : 'Media Pause');
/// Represents the logical "Media Record" key on the keyboard.
///
/// See the function [RawKeyEvent.logicalKey] for more information.
......@@ -1663,6 +1673,7 @@ class LogicalKeyboardKey extends KeyboardKey {
0x0100000014: suspend,
0x0100000015: resume,
0x0100000016: turbo,
0x0100000017: privacyScreenToggle,
0x0100010082: sleep,
0x0100010083: wakeUp,
0x01000100b5: displayToggleIntExt,
......@@ -1840,6 +1851,7 @@ class LogicalKeyboardKey extends KeyboardKey {
0x01000c009c: channelUp,
0x01000c009d: channelDown,
0x01000c00b0: mediaPlay,
0x01000c00b1: mediaPause,
0x01000c00b2: mediaRecord,
0x01000c00b3: mediaFastForward,
0x01000c00b4: mediaRewind,
......@@ -2122,6 +2134,12 @@ class PhysicalKeyboardKey extends KeyboardKey {
/// See the function [RawKeyEvent.physicalKey] for more information.
static const PhysicalKeyboardKey turbo = PhysicalKeyboardKey(0x00000016, debugName: kReleaseMode ? null : 'Turbo');
/// Represents the location of the "Privacy Screen Toggle" key on a
/// generalized keyboard.
///
/// See the function [RawKeyEvent.physicalKey] for more information.
static const PhysicalKeyboardKey privacyScreenToggle = PhysicalKeyboardKey(0x00000017, debugName: kReleaseMode ? null : 'Privacy Screen Toggle');
/// Represents the location of the "Sleep" key on a generalized keyboard.
///
/// See the function [RawKeyEvent.physicalKey] for more information.
......@@ -3054,6 +3072,12 @@ class PhysicalKeyboardKey extends KeyboardKey {
/// See the function [RawKeyEvent.physicalKey] for more information.
static const PhysicalKeyboardKey mediaPlay = PhysicalKeyboardKey(0x000c00b0, debugName: kReleaseMode ? null : 'Media Play');
/// Represents the location of the "Media Pause" key on a generalized
/// keyboard.
///
/// See the function [RawKeyEvent.physicalKey] for more information.
static const PhysicalKeyboardKey mediaPause = PhysicalKeyboardKey(0x000c00b1, debugName: kReleaseMode ? null : 'Media Pause');
/// Represents the location of the "Media Record" key on a generalized
/// keyboard.
///
......@@ -3536,6 +3560,7 @@ class PhysicalKeyboardKey extends KeyboardKey {
0x00000014: suspend,
0x00000015: resume,
0x00000016: turbo,
0x00000017: privacyScreenToggle,
0x00010082: sleep,
0x00010083: wakeUp,
0x000100b5: displayToggleIntExt,
......@@ -3713,6 +3738,7 @@ class PhysicalKeyboardKey extends KeyboardKey {
0x000c009c: channelUp,
0x000c009d: channelDown,
0x000c00b0: mediaPlay,
0x000c00b1: mediaPause,
0x000c00b2: mediaRecord,
0x000c00b3: mediaFastForward,
0x000c00b4: mediaRewind,
......
......@@ -143,6 +143,7 @@ const Map<int, LogicalKeyboardKey> kAndroidToLogicalKey = <int, LogicalKeyboardK
166: LogicalKeyboardKey.channelUp,
167: LogicalKeyboardKey.channelDown,
126: LogicalKeyboardKey.mediaPlay,
127: LogicalKeyboardKey.mediaPause,
130: LogicalKeyboardKey.mediaRecord,
90: LogicalKeyboardKey.mediaFastForward,
89: LogicalKeyboardKey.mediaRewind,
......@@ -354,6 +355,7 @@ const Map<int, PhysicalKeyboardKey> kAndroidToPhysicalKey = <int, PhysicalKeyboa
403: PhysicalKeyboardKey.channelDown,
200: PhysicalKeyboardKey.mediaPlay,
207: PhysicalKeyboardKey.mediaPlay,
201: PhysicalKeyboardKey.mediaPause,
167: PhysicalKeyboardKey.mediaRecord,
208: PhysicalKeyboardKey.mediaFastForward,
168: PhysicalKeyboardKey.mediaRewind,
......@@ -461,6 +463,7 @@ const Map<int, LogicalKeyboardKey> kFuchsiaToLogicalKey = <int, LogicalKeyboardK
0x100000014: LogicalKeyboardKey.suspend,
0x100000015: LogicalKeyboardKey.resume,
0x100000016: LogicalKeyboardKey.turbo,
0x100000017: LogicalKeyboardKey.privacyScreenToggle,
0x100010082: LogicalKeyboardKey.sleep,
0x100010083: LogicalKeyboardKey.wakeUp,
0x1000100b5: LogicalKeyboardKey.displayToggleIntExt,
......@@ -638,6 +641,7 @@ const Map<int, LogicalKeyboardKey> kFuchsiaToLogicalKey = <int, LogicalKeyboardK
0x1000c009c: LogicalKeyboardKey.channelUp,
0x1000c009d: LogicalKeyboardKey.channelDown,
0x1000c00b0: LogicalKeyboardKey.mediaPlay,
0x1000c00b1: LogicalKeyboardKey.mediaPause,
0x1000c00b2: LogicalKeyboardKey.mediaRecord,
0x1000c00b3: LogicalKeyboardKey.mediaFastForward,
0x1000c00b4: LogicalKeyboardKey.mediaRewind,
......@@ -731,6 +735,7 @@ const Map<int, PhysicalKeyboardKey> kFuchsiaToPhysicalKey = <int, PhysicalKeyboa
0x00000014: PhysicalKeyboardKey.suspend,
0x00000015: PhysicalKeyboardKey.resume,
0x00000016: PhysicalKeyboardKey.turbo,
0x00000017: PhysicalKeyboardKey.privacyScreenToggle,
0x00010082: PhysicalKeyboardKey.sleep,
0x00010083: PhysicalKeyboardKey.wakeUp,
0x000100b5: PhysicalKeyboardKey.displayToggleIntExt,
......@@ -908,6 +913,7 @@ const Map<int, PhysicalKeyboardKey> kFuchsiaToPhysicalKey = <int, PhysicalKeyboa
0x000c009c: PhysicalKeyboardKey.channelUp,
0x000c009d: PhysicalKeyboardKey.channelDown,
0x000c00b0: PhysicalKeyboardKey.mediaPlay,
0x000c00b1: PhysicalKeyboardKey.mediaPause,
0x000c00b2: PhysicalKeyboardKey.mediaRecord,
0x000c00b3: PhysicalKeyboardKey.mediaFastForward,
0x000c00b4: PhysicalKeyboardKey.mediaRewind,
......@@ -1103,8 +1109,9 @@ const Map<int, PhysicalKeyboardKey> kMacOsToPhysicalKey = <int, PhysicalKeyboard
0x00000049: PhysicalKeyboardKey.audioVolumeDown,
0x0000005f: PhysicalKeyboardKey.numpadComma,
0x0000005e: PhysicalKeyboardKey.intlRo,
0x00000068: PhysicalKeyboardKey.kanaMode,
0x0000005d: PhysicalKeyboardKey.intlYen,
0x00000068: PhysicalKeyboardKey.lang1,
0x00000066: PhysicalKeyboardKey.lang2,
0x0000003b: PhysicalKeyboardKey.controlLeft,
0x00000038: PhysicalKeyboardKey.shiftLeft,
0x0000003a: PhysicalKeyboardKey.altLeft,
......@@ -1305,6 +1312,7 @@ const Map<int, LogicalKeyboardKey> kGlfwNumpadMap = <int, LogicalKeyboardKey>{
/// Maps XKB specific key code values representing [PhysicalKeyboardKey].
const Map<int, PhysicalKeyboardKey> kLinuxToPhysicalKey = <int, PhysicalKeyboardKey>{
0x00000281: PhysicalKeyboardKey.privacyScreenToggle,
0x00000096: PhysicalKeyboardKey.sleep,
0x00000097: PhysicalKeyboardKey.wakeUp,
0x000000eb: PhysicalKeyboardKey.displayToggleIntExt,
......@@ -1468,6 +1476,7 @@ const Map<int, PhysicalKeyboardKey> kLinuxToPhysicalKey = <int, PhysicalKeyboard
0x000001a2: PhysicalKeyboardKey.channelUp,
0x000001a3: PhysicalKeyboardKey.channelDown,
0x000000d7: PhysicalKeyboardKey.mediaPlay,
0x000000d1: PhysicalKeyboardKey.mediaPause,
0x000000af: PhysicalKeyboardKey.mediaRecord,
0x000000d8: PhysicalKeyboardKey.mediaFastForward,
0x000000b0: PhysicalKeyboardKey.mediaRewind,
......@@ -1528,6 +1537,7 @@ const Map<String, LogicalKeyboardKey> kWebToLogicalKey = <String, LogicalKeyboar
'Suspend': LogicalKeyboardKey.suspend,
'Resume': LogicalKeyboardKey.resume,
'Turbo': LogicalKeyboardKey.turbo,
'PrivacyScreenToggle': LogicalKeyboardKey.privacyScreenToggle,
'Sleep': LogicalKeyboardKey.sleep,
'WakeUp': LogicalKeyboardKey.wakeUp,
'DisplayToggleIntExt': LogicalKeyboardKey.displayToggleIntExt,
......@@ -1688,6 +1698,7 @@ const Map<String, LogicalKeyboardKey> kWebToLogicalKey = <String, LogicalKeyboar
'BrightnessUp': LogicalKeyboardKey.brightnessUp,
'BrightnessDown': LogicalKeyboardKey.brightnessDown,
'MediaPlay': LogicalKeyboardKey.mediaPlay,
'MediaPause': LogicalKeyboardKey.mediaPause,
'MediaRecord': LogicalKeyboardKey.mediaRecord,
'MediaFastForward': LogicalKeyboardKey.mediaFastForward,
'MediaRewind': LogicalKeyboardKey.mediaRewind,
......@@ -1760,6 +1771,7 @@ const Map<String, PhysicalKeyboardKey> kWebToPhysicalKey = <String, PhysicalKeyb
'Suspend': PhysicalKeyboardKey.suspend,
'Resume': PhysicalKeyboardKey.resume,
'Turbo': PhysicalKeyboardKey.turbo,
'PrivacyScreenToggle': PhysicalKeyboardKey.privacyScreenToggle,
'Sleep': PhysicalKeyboardKey.sleep,
'WakeUp': PhysicalKeyboardKey.wakeUp,
'DisplayToggleIntExt': PhysicalKeyboardKey.displayToggleIntExt,
......@@ -1920,6 +1932,7 @@ const Map<String, PhysicalKeyboardKey> kWebToPhysicalKey = <String, PhysicalKeyb
'BrightnessUp': PhysicalKeyboardKey.brightnessUp,
'BrightnessDown': PhysicalKeyboardKey.brightnessDown,
'MediaPlay': PhysicalKeyboardKey.mediaPlay,
'MediaPause': PhysicalKeyboardKey.mediaPause,
'MediaRecord': PhysicalKeyboardKey.mediaRecord,
'MediaFastForward': PhysicalKeyboardKey.mediaFastForward,
'MediaRewind': PhysicalKeyboardKey.mediaRewind,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment