susi-qemu 0.0.3 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/susi +9 -4
- data/lib/disk.rb +7 -5
- data/lib/novnc/core/base64.js +104 -0
- data/lib/novnc/core/crypto/aes.js +178 -0
- data/lib/novnc/core/crypto/bigint.js +34 -0
- data/lib/novnc/core/crypto/crypto.js +90 -0
- data/lib/novnc/core/crypto/des.js +330 -0
- data/lib/novnc/core/crypto/dh.js +55 -0
- data/lib/novnc/core/crypto/md5.js +82 -0
- data/lib/novnc/core/crypto/rsa.js +132 -0
- data/lib/novnc/core/decoders/copyrect.js +27 -0
- data/lib/novnc/core/decoders/h264.js +321 -0
- data/lib/novnc/core/decoders/hextile.js +181 -0
- data/lib/novnc/core/decoders/jpeg.js +146 -0
- data/lib/novnc/core/decoders/raw.js +59 -0
- data/lib/novnc/core/decoders/rre.js +44 -0
- data/lib/novnc/core/decoders/tight.js +393 -0
- data/lib/novnc/core/decoders/tightpng.js +27 -0
- data/lib/novnc/core/decoders/zlib.js +51 -0
- data/lib/novnc/core/decoders/zrle.js +185 -0
- data/lib/novnc/core/deflator.js +84 -0
- data/lib/novnc/core/display.js +575 -0
- data/lib/novnc/core/encodings.js +53 -0
- data/lib/novnc/core/inflator.js +65 -0
- data/lib/novnc/core/input/domkeytable.js +311 -0
- data/lib/novnc/core/input/fixedkeys.js +129 -0
- data/lib/novnc/core/input/gesturehandler.js +567 -0
- data/lib/novnc/core/input/keyboard.js +294 -0
- data/lib/novnc/core/input/keysym.js +616 -0
- data/lib/novnc/core/input/keysymdef.js +688 -0
- data/lib/novnc/core/input/util.js +191 -0
- data/lib/novnc/core/input/vkeys.js +116 -0
- data/lib/novnc/core/input/xtscancodes.js +173 -0
- data/lib/novnc/core/ra2.js +312 -0
- data/lib/novnc/core/rfb.js +3257 -0
- data/lib/novnc/core/util/browser.js +172 -0
- data/lib/novnc/core/util/cursor.js +249 -0
- data/lib/novnc/core/util/element.js +32 -0
- data/lib/novnc/core/util/events.js +138 -0
- data/lib/novnc/core/util/eventtarget.js +35 -0
- data/lib/novnc/core/util/int.js +15 -0
- data/lib/novnc/core/util/logging.js +56 -0
- data/lib/novnc/core/util/strings.js +28 -0
- data/lib/novnc/core/websock.js +365 -0
- data/lib/novnc/screen.html +21 -0
- data/lib/novnc/vendor/pako/lib/utils/common.js +45 -0
- data/lib/novnc/vendor/pako/lib/zlib/adler32.js +27 -0
- data/lib/novnc/vendor/pako/lib/zlib/constants.js +47 -0
- data/lib/novnc/vendor/pako/lib/zlib/crc32.js +36 -0
- data/lib/novnc/vendor/pako/lib/zlib/deflate.js +1846 -0
- data/lib/novnc/vendor/pako/lib/zlib/gzheader.js +35 -0
- data/lib/novnc/vendor/pako/lib/zlib/inffast.js +324 -0
- data/lib/novnc/vendor/pako/lib/zlib/inflate.js +1527 -0
- data/lib/novnc/vendor/pako/lib/zlib/inftrees.js +322 -0
- data/lib/novnc/vendor/pako/lib/zlib/messages.js +11 -0
- data/lib/novnc/vendor/pako/lib/zlib/trees.js +1195 -0
- data/lib/novnc/vendor/pako/lib/zlib/zstream.js +24 -0
- data/lib/output.rb +11 -0
- data/lib/qmp.rb +6 -0
- data/lib/ssh.rb +3 -1
- data/lib/susi.rb +7 -6
- data/lib/version.rb +1 -1
- data/lib/vm.rb +36 -13
- data/lib/vnc.rb +34 -30
- metadata +85 -1
@@ -0,0 +1,191 @@
|
|
1
|
+
import KeyTable from "./keysym.js";
|
2
|
+
import keysyms from "./keysymdef.js";
|
3
|
+
import vkeys from "./vkeys.js";
|
4
|
+
import fixedkeys from "./fixedkeys.js";
|
5
|
+
import DOMKeyTable from "./domkeytable.js";
|
6
|
+
import * as browser from "../util/browser.js";
|
7
|
+
|
8
|
+
// Get 'KeyboardEvent.code', handling legacy browsers
|
9
|
+
export function getKeycode(evt) {
|
10
|
+
// Are we getting proper key identifiers?
|
11
|
+
// (unfortunately Firefox and Chrome are crappy here and gives
|
12
|
+
// us an empty string on some platforms, rather than leaving it
|
13
|
+
// undefined)
|
14
|
+
if (evt.code) {
|
15
|
+
// Mozilla isn't fully in sync with the spec yet
|
16
|
+
switch (evt.code) {
|
17
|
+
case 'OSLeft': return 'MetaLeft';
|
18
|
+
case 'OSRight': return 'MetaRight';
|
19
|
+
}
|
20
|
+
|
21
|
+
return evt.code;
|
22
|
+
}
|
23
|
+
|
24
|
+
// The de-facto standard is to use Windows Virtual-Key codes
|
25
|
+
// in the 'keyCode' field for non-printable characters
|
26
|
+
if (evt.keyCode in vkeys) {
|
27
|
+
let code = vkeys[evt.keyCode];
|
28
|
+
|
29
|
+
// macOS has messed up this code for some reason
|
30
|
+
if (browser.isMac() && (code === 'ContextMenu')) {
|
31
|
+
code = 'MetaRight';
|
32
|
+
}
|
33
|
+
|
34
|
+
// The keyCode doesn't distinguish between left and right
|
35
|
+
// for the standard modifiers
|
36
|
+
if (evt.location === 2) {
|
37
|
+
switch (code) {
|
38
|
+
case 'ShiftLeft': return 'ShiftRight';
|
39
|
+
case 'ControlLeft': return 'ControlRight';
|
40
|
+
case 'AltLeft': return 'AltRight';
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
// Nor a bunch of the numpad keys
|
45
|
+
if (evt.location === 3) {
|
46
|
+
switch (code) {
|
47
|
+
case 'Delete': return 'NumpadDecimal';
|
48
|
+
case 'Insert': return 'Numpad0';
|
49
|
+
case 'End': return 'Numpad1';
|
50
|
+
case 'ArrowDown': return 'Numpad2';
|
51
|
+
case 'PageDown': return 'Numpad3';
|
52
|
+
case 'ArrowLeft': return 'Numpad4';
|
53
|
+
case 'ArrowRight': return 'Numpad6';
|
54
|
+
case 'Home': return 'Numpad7';
|
55
|
+
case 'ArrowUp': return 'Numpad8';
|
56
|
+
case 'PageUp': return 'Numpad9';
|
57
|
+
case 'Enter': return 'NumpadEnter';
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
return code;
|
62
|
+
}
|
63
|
+
|
64
|
+
return 'Unidentified';
|
65
|
+
}
|
66
|
+
|
67
|
+
// Get 'KeyboardEvent.key', handling legacy browsers
|
68
|
+
export function getKey(evt) {
|
69
|
+
// Are we getting a proper key value?
|
70
|
+
if ((evt.key !== undefined) && (evt.key !== 'Unidentified')) {
|
71
|
+
// Mozilla isn't fully in sync with the spec yet
|
72
|
+
switch (evt.key) {
|
73
|
+
case 'OS': return 'Meta';
|
74
|
+
case 'LaunchMyComputer': return 'LaunchApplication1';
|
75
|
+
case 'LaunchCalculator': return 'LaunchApplication2';
|
76
|
+
}
|
77
|
+
|
78
|
+
// iOS leaks some OS names
|
79
|
+
switch (evt.key) {
|
80
|
+
case 'UIKeyInputUpArrow': return 'ArrowUp';
|
81
|
+
case 'UIKeyInputDownArrow': return 'ArrowDown';
|
82
|
+
case 'UIKeyInputLeftArrow': return 'ArrowLeft';
|
83
|
+
case 'UIKeyInputRightArrow': return 'ArrowRight';
|
84
|
+
case 'UIKeyInputEscape': return 'Escape';
|
85
|
+
}
|
86
|
+
|
87
|
+
// Broken behaviour in Chrome
|
88
|
+
if ((evt.key === '\x00') && (evt.code === 'NumpadDecimal')) {
|
89
|
+
return 'Delete';
|
90
|
+
}
|
91
|
+
|
92
|
+
return evt.key;
|
93
|
+
}
|
94
|
+
|
95
|
+
// Try to deduce it based on the physical key
|
96
|
+
const code = getKeycode(evt);
|
97
|
+
if (code in fixedkeys) {
|
98
|
+
return fixedkeys[code];
|
99
|
+
}
|
100
|
+
|
101
|
+
// If that failed, then see if we have a printable character
|
102
|
+
if (evt.charCode) {
|
103
|
+
return String.fromCharCode(evt.charCode);
|
104
|
+
}
|
105
|
+
|
106
|
+
// At this point we have nothing left to go on
|
107
|
+
return 'Unidentified';
|
108
|
+
}
|
109
|
+
|
110
|
+
// Get the most reliable keysym value we can get from a key event
|
111
|
+
export function getKeysym(evt) {
|
112
|
+
const key = getKey(evt);
|
113
|
+
|
114
|
+
if (key === 'Unidentified') {
|
115
|
+
return null;
|
116
|
+
}
|
117
|
+
|
118
|
+
// First look up special keys
|
119
|
+
if (key in DOMKeyTable) {
|
120
|
+
let location = evt.location;
|
121
|
+
|
122
|
+
// Safari screws up location for the right cmd key
|
123
|
+
if ((key === 'Meta') && (location === 0)) {
|
124
|
+
location = 2;
|
125
|
+
}
|
126
|
+
|
127
|
+
// And for Clear
|
128
|
+
if ((key === 'Clear') && (location === 3)) {
|
129
|
+
let code = getKeycode(evt);
|
130
|
+
if (code === 'NumLock') {
|
131
|
+
location = 0;
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
if ((location === undefined) || (location > 3)) {
|
136
|
+
location = 0;
|
137
|
+
}
|
138
|
+
|
139
|
+
// The original Meta key now gets confused with the Windows key
|
140
|
+
// https://bugs.chromium.org/p/chromium/issues/detail?id=1020141
|
141
|
+
// https://bugzilla.mozilla.org/show_bug.cgi?id=1232918
|
142
|
+
if (key === 'Meta') {
|
143
|
+
let code = getKeycode(evt);
|
144
|
+
if (code === 'AltLeft') {
|
145
|
+
return KeyTable.XK_Meta_L;
|
146
|
+
} else if (code === 'AltRight') {
|
147
|
+
return KeyTable.XK_Meta_R;
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
// macOS has Clear instead of NumLock, but the remote system is
|
152
|
+
// probably not macOS, so lying here is probably best...
|
153
|
+
if (key === 'Clear') {
|
154
|
+
let code = getKeycode(evt);
|
155
|
+
if (code === 'NumLock') {
|
156
|
+
return KeyTable.XK_Num_Lock;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
// Windows sends alternating symbols for some keys when using a
|
161
|
+
// Japanese layout. We have no way of synchronising with the IM
|
162
|
+
// running on the remote system, so we send some combined keysym
|
163
|
+
// instead and hope for the best.
|
164
|
+
if (browser.isWindows()) {
|
165
|
+
switch (key) {
|
166
|
+
case 'Zenkaku':
|
167
|
+
case 'Hankaku':
|
168
|
+
return KeyTable.XK_Zenkaku_Hankaku;
|
169
|
+
case 'Romaji':
|
170
|
+
case 'KanaMode':
|
171
|
+
return KeyTable.XK_Romaji;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
return DOMKeyTable[key][location];
|
176
|
+
}
|
177
|
+
|
178
|
+
// Now we need to look at the Unicode symbol instead
|
179
|
+
|
180
|
+
// Special key? (FIXME: Should have been caught earlier)
|
181
|
+
if (key.length !== 1) {
|
182
|
+
return null;
|
183
|
+
}
|
184
|
+
|
185
|
+
const codepoint = key.charCodeAt();
|
186
|
+
if (codepoint) {
|
187
|
+
return keysyms.lookup(codepoint);
|
188
|
+
}
|
189
|
+
|
190
|
+
return null;
|
191
|
+
}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
/*
|
2
|
+
* noVNC: HTML5 VNC client
|
3
|
+
* Copyright (C) 2018 The noVNC Authors
|
4
|
+
* Licensed under MPL 2.0 or any later version (see LICENSE.txt)
|
5
|
+
*/
|
6
|
+
|
7
|
+
/*
|
8
|
+
* Mapping between Microsoft® Windows® Virtual-Key codes and
|
9
|
+
* HTML key codes.
|
10
|
+
*/
|
11
|
+
|
12
|
+
export default {
|
13
|
+
0x08: 'Backspace',
|
14
|
+
0x09: 'Tab',
|
15
|
+
0x0a: 'NumpadClear',
|
16
|
+
0x0d: 'Enter',
|
17
|
+
0x10: 'ShiftLeft',
|
18
|
+
0x11: 'ControlLeft',
|
19
|
+
0x12: 'AltLeft',
|
20
|
+
0x13: 'Pause',
|
21
|
+
0x14: 'CapsLock',
|
22
|
+
0x15: 'Lang1',
|
23
|
+
0x19: 'Lang2',
|
24
|
+
0x1b: 'Escape',
|
25
|
+
0x1c: 'Convert',
|
26
|
+
0x1d: 'NonConvert',
|
27
|
+
0x20: 'Space',
|
28
|
+
0x21: 'PageUp',
|
29
|
+
0x22: 'PageDown',
|
30
|
+
0x23: 'End',
|
31
|
+
0x24: 'Home',
|
32
|
+
0x25: 'ArrowLeft',
|
33
|
+
0x26: 'ArrowUp',
|
34
|
+
0x27: 'ArrowRight',
|
35
|
+
0x28: 'ArrowDown',
|
36
|
+
0x29: 'Select',
|
37
|
+
0x2c: 'PrintScreen',
|
38
|
+
0x2d: 'Insert',
|
39
|
+
0x2e: 'Delete',
|
40
|
+
0x2f: 'Help',
|
41
|
+
0x30: 'Digit0',
|
42
|
+
0x31: 'Digit1',
|
43
|
+
0x32: 'Digit2',
|
44
|
+
0x33: 'Digit3',
|
45
|
+
0x34: 'Digit4',
|
46
|
+
0x35: 'Digit5',
|
47
|
+
0x36: 'Digit6',
|
48
|
+
0x37: 'Digit7',
|
49
|
+
0x38: 'Digit8',
|
50
|
+
0x39: 'Digit9',
|
51
|
+
0x5b: 'MetaLeft',
|
52
|
+
0x5c: 'MetaRight',
|
53
|
+
0x5d: 'ContextMenu',
|
54
|
+
0x5f: 'Sleep',
|
55
|
+
0x60: 'Numpad0',
|
56
|
+
0x61: 'Numpad1',
|
57
|
+
0x62: 'Numpad2',
|
58
|
+
0x63: 'Numpad3',
|
59
|
+
0x64: 'Numpad4',
|
60
|
+
0x65: 'Numpad5',
|
61
|
+
0x66: 'Numpad6',
|
62
|
+
0x67: 'Numpad7',
|
63
|
+
0x68: 'Numpad8',
|
64
|
+
0x69: 'Numpad9',
|
65
|
+
0x6a: 'NumpadMultiply',
|
66
|
+
0x6b: 'NumpadAdd',
|
67
|
+
0x6c: 'NumpadDecimal',
|
68
|
+
0x6d: 'NumpadSubtract',
|
69
|
+
0x6e: 'NumpadDecimal', // Duplicate, because buggy on Windows
|
70
|
+
0x6f: 'NumpadDivide',
|
71
|
+
0x70: 'F1',
|
72
|
+
0x71: 'F2',
|
73
|
+
0x72: 'F3',
|
74
|
+
0x73: 'F4',
|
75
|
+
0x74: 'F5',
|
76
|
+
0x75: 'F6',
|
77
|
+
0x76: 'F7',
|
78
|
+
0x77: 'F8',
|
79
|
+
0x78: 'F9',
|
80
|
+
0x79: 'F10',
|
81
|
+
0x7a: 'F11',
|
82
|
+
0x7b: 'F12',
|
83
|
+
0x7c: 'F13',
|
84
|
+
0x7d: 'F14',
|
85
|
+
0x7e: 'F15',
|
86
|
+
0x7f: 'F16',
|
87
|
+
0x80: 'F17',
|
88
|
+
0x81: 'F18',
|
89
|
+
0x82: 'F19',
|
90
|
+
0x83: 'F20',
|
91
|
+
0x84: 'F21',
|
92
|
+
0x85: 'F22',
|
93
|
+
0x86: 'F23',
|
94
|
+
0x87: 'F24',
|
95
|
+
0x90: 'NumLock',
|
96
|
+
0x91: 'ScrollLock',
|
97
|
+
0xa6: 'BrowserBack',
|
98
|
+
0xa7: 'BrowserForward',
|
99
|
+
0xa8: 'BrowserRefresh',
|
100
|
+
0xa9: 'BrowserStop',
|
101
|
+
0xaa: 'BrowserSearch',
|
102
|
+
0xab: 'BrowserFavorites',
|
103
|
+
0xac: 'BrowserHome',
|
104
|
+
0xad: 'AudioVolumeMute',
|
105
|
+
0xae: 'AudioVolumeDown',
|
106
|
+
0xaf: 'AudioVolumeUp',
|
107
|
+
0xb0: 'MediaTrackNext',
|
108
|
+
0xb1: 'MediaTrackPrevious',
|
109
|
+
0xb2: 'MediaStop',
|
110
|
+
0xb3: 'MediaPlayPause',
|
111
|
+
0xb4: 'LaunchMail',
|
112
|
+
0xb5: 'MediaSelect',
|
113
|
+
0xb6: 'LaunchApp1',
|
114
|
+
0xb7: 'LaunchApp2',
|
115
|
+
0xe1: 'AltRight', // Only when it is AltGraph
|
116
|
+
};
|
@@ -0,0 +1,173 @@
|
|
1
|
+
/*
|
2
|
+
* This file is auto-generated from keymaps.csv
|
3
|
+
* Database checksum sha256(76d68c10e97d37fe2ea459e210125ae41796253fb217e900bf2983ade13a7920)
|
4
|
+
* To re-generate, run:
|
5
|
+
* keymap-gen code-map --lang=js keymaps.csv html atset1
|
6
|
+
*/
|
7
|
+
export default {
|
8
|
+
"Again": 0xe005, /* html:Again (Again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */
|
9
|
+
"AltLeft": 0x38, /* html:AltLeft (AltLeft) -> linux:56 (KEY_LEFTALT) -> atset1:56 */
|
10
|
+
"AltRight": 0xe038, /* html:AltRight (AltRight) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */
|
11
|
+
"ArrowDown": 0xe050, /* html:ArrowDown (ArrowDown) -> linux:108 (KEY_DOWN) -> atset1:57424 */
|
12
|
+
"ArrowLeft": 0xe04b, /* html:ArrowLeft (ArrowLeft) -> linux:105 (KEY_LEFT) -> atset1:57419 */
|
13
|
+
"ArrowRight": 0xe04d, /* html:ArrowRight (ArrowRight) -> linux:106 (KEY_RIGHT) -> atset1:57421 */
|
14
|
+
"ArrowUp": 0xe048, /* html:ArrowUp (ArrowUp) -> linux:103 (KEY_UP) -> atset1:57416 */
|
15
|
+
"AudioVolumeDown": 0xe02e, /* html:AudioVolumeDown (AudioVolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */
|
16
|
+
"AudioVolumeMute": 0xe020, /* html:AudioVolumeMute (AudioVolumeMute) -> linux:113 (KEY_MUTE) -> atset1:57376 */
|
17
|
+
"AudioVolumeUp": 0xe030, /* html:AudioVolumeUp (AudioVolumeUp) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */
|
18
|
+
"Backquote": 0x29, /* html:Backquote (Backquote) -> linux:41 (KEY_GRAVE) -> atset1:41 */
|
19
|
+
"Backslash": 0x2b, /* html:Backslash (Backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */
|
20
|
+
"Backspace": 0xe, /* html:Backspace (Backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */
|
21
|
+
"BracketLeft": 0x1a, /* html:BracketLeft (BracketLeft) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */
|
22
|
+
"BracketRight": 0x1b, /* html:BracketRight (BracketRight) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */
|
23
|
+
"BrowserBack": 0xe06a, /* html:BrowserBack (BrowserBack) -> linux:158 (KEY_BACK) -> atset1:57450 */
|
24
|
+
"BrowserFavorites": 0xe066, /* html:BrowserFavorites (BrowserFavorites) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */
|
25
|
+
"BrowserForward": 0xe069, /* html:BrowserForward (BrowserForward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */
|
26
|
+
"BrowserHome": 0xe032, /* html:BrowserHome (BrowserHome) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */
|
27
|
+
"BrowserRefresh": 0xe067, /* html:BrowserRefresh (BrowserRefresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */
|
28
|
+
"BrowserSearch": 0xe065, /* html:BrowserSearch (BrowserSearch) -> linux:217 (KEY_SEARCH) -> atset1:57445 */
|
29
|
+
"BrowserStop": 0xe068, /* html:BrowserStop (BrowserStop) -> linux:128 (KEY_STOP) -> atset1:57448 */
|
30
|
+
"CapsLock": 0x3a, /* html:CapsLock (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */
|
31
|
+
"Comma": 0x33, /* html:Comma (Comma) -> linux:51 (KEY_COMMA) -> atset1:51 */
|
32
|
+
"ContextMenu": 0xe05d, /* html:ContextMenu (ContextMenu) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */
|
33
|
+
"ControlLeft": 0x1d, /* html:ControlLeft (ControlLeft) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */
|
34
|
+
"ControlRight": 0xe01d, /* html:ControlRight (ControlRight) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */
|
35
|
+
"Convert": 0x79, /* html:Convert (Convert) -> linux:92 (KEY_HENKAN) -> atset1:121 */
|
36
|
+
"Copy": 0xe078, /* html:Copy (Copy) -> linux:133 (KEY_COPY) -> atset1:57464 */
|
37
|
+
"Cut": 0xe03c, /* html:Cut (Cut) -> linux:137 (KEY_CUT) -> atset1:57404 */
|
38
|
+
"Delete": 0xe053, /* html:Delete (Delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */
|
39
|
+
"Digit0": 0xb, /* html:Digit0 (Digit0) -> linux:11 (KEY_0) -> atset1:11 */
|
40
|
+
"Digit1": 0x2, /* html:Digit1 (Digit1) -> linux:2 (KEY_1) -> atset1:2 */
|
41
|
+
"Digit2": 0x3, /* html:Digit2 (Digit2) -> linux:3 (KEY_2) -> atset1:3 */
|
42
|
+
"Digit3": 0x4, /* html:Digit3 (Digit3) -> linux:4 (KEY_3) -> atset1:4 */
|
43
|
+
"Digit4": 0x5, /* html:Digit4 (Digit4) -> linux:5 (KEY_4) -> atset1:5 */
|
44
|
+
"Digit5": 0x6, /* html:Digit5 (Digit5) -> linux:6 (KEY_5) -> atset1:6 */
|
45
|
+
"Digit6": 0x7, /* html:Digit6 (Digit6) -> linux:7 (KEY_6) -> atset1:7 */
|
46
|
+
"Digit7": 0x8, /* html:Digit7 (Digit7) -> linux:8 (KEY_7) -> atset1:8 */
|
47
|
+
"Digit8": 0x9, /* html:Digit8 (Digit8) -> linux:9 (KEY_8) -> atset1:9 */
|
48
|
+
"Digit9": 0xa, /* html:Digit9 (Digit9) -> linux:10 (KEY_9) -> atset1:10 */
|
49
|
+
"Eject": 0xe07d, /* html:Eject (Eject) -> linux:162 (KEY_EJECTCLOSECD) -> atset1:57469 */
|
50
|
+
"End": 0xe04f, /* html:End (End) -> linux:107 (KEY_END) -> atset1:57423 */
|
51
|
+
"Enter": 0x1c, /* html:Enter (Enter) -> linux:28 (KEY_ENTER) -> atset1:28 */
|
52
|
+
"Equal": 0xd, /* html:Equal (Equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */
|
53
|
+
"Escape": 0x1, /* html:Escape (Escape) -> linux:1 (KEY_ESC) -> atset1:1 */
|
54
|
+
"F1": 0x3b, /* html:F1 (F1) -> linux:59 (KEY_F1) -> atset1:59 */
|
55
|
+
"F10": 0x44, /* html:F10 (F10) -> linux:68 (KEY_F10) -> atset1:68 */
|
56
|
+
"F11": 0x57, /* html:F11 (F11) -> linux:87 (KEY_F11) -> atset1:87 */
|
57
|
+
"F12": 0x58, /* html:F12 (F12) -> linux:88 (KEY_F12) -> atset1:88 */
|
58
|
+
"F13": 0x5d, /* html:F13 (F13) -> linux:183 (KEY_F13) -> atset1:93 */
|
59
|
+
"F14": 0x5e, /* html:F14 (F14) -> linux:184 (KEY_F14) -> atset1:94 */
|
60
|
+
"F15": 0x5f, /* html:F15 (F15) -> linux:185 (KEY_F15) -> atset1:95 */
|
61
|
+
"F16": 0x55, /* html:F16 (F16) -> linux:186 (KEY_F16) -> atset1:85 */
|
62
|
+
"F17": 0xe003, /* html:F17 (F17) -> linux:187 (KEY_F17) -> atset1:57347 */
|
63
|
+
"F18": 0xe077, /* html:F18 (F18) -> linux:188 (KEY_F18) -> atset1:57463 */
|
64
|
+
"F19": 0xe004, /* html:F19 (F19) -> linux:189 (KEY_F19) -> atset1:57348 */
|
65
|
+
"F2": 0x3c, /* html:F2 (F2) -> linux:60 (KEY_F2) -> atset1:60 */
|
66
|
+
"F20": 0x5a, /* html:F20 (F20) -> linux:190 (KEY_F20) -> atset1:90 */
|
67
|
+
"F21": 0x74, /* html:F21 (F21) -> linux:191 (KEY_F21) -> atset1:116 */
|
68
|
+
"F22": 0xe079, /* html:F22 (F22) -> linux:192 (KEY_F22) -> atset1:57465 */
|
69
|
+
"F23": 0x6d, /* html:F23 (F23) -> linux:193 (KEY_F23) -> atset1:109 */
|
70
|
+
"F24": 0x6f, /* html:F24 (F24) -> linux:194 (KEY_F24) -> atset1:111 */
|
71
|
+
"F3": 0x3d, /* html:F3 (F3) -> linux:61 (KEY_F3) -> atset1:61 */
|
72
|
+
"F4": 0x3e, /* html:F4 (F4) -> linux:62 (KEY_F4) -> atset1:62 */
|
73
|
+
"F5": 0x3f, /* html:F5 (F5) -> linux:63 (KEY_F5) -> atset1:63 */
|
74
|
+
"F6": 0x40, /* html:F6 (F6) -> linux:64 (KEY_F6) -> atset1:64 */
|
75
|
+
"F7": 0x41, /* html:F7 (F7) -> linux:65 (KEY_F7) -> atset1:65 */
|
76
|
+
"F8": 0x42, /* html:F8 (F8) -> linux:66 (KEY_F8) -> atset1:66 */
|
77
|
+
"F9": 0x43, /* html:F9 (F9) -> linux:67 (KEY_F9) -> atset1:67 */
|
78
|
+
"Find": 0xe041, /* html:Find (Find) -> linux:136 (KEY_FIND) -> atset1:57409 */
|
79
|
+
"Help": 0xe075, /* html:Help (Help) -> linux:138 (KEY_HELP) -> atset1:57461 */
|
80
|
+
"Hiragana": 0x77, /* html:Hiragana (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */
|
81
|
+
"Home": 0xe047, /* html:Home (Home) -> linux:102 (KEY_HOME) -> atset1:57415 */
|
82
|
+
"Insert": 0xe052, /* html:Insert (Insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */
|
83
|
+
"IntlBackslash": 0x56, /* html:IntlBackslash (IntlBackslash) -> linux:86 (KEY_102ND) -> atset1:86 */
|
84
|
+
"IntlRo": 0x73, /* html:IntlRo (IntlRo) -> linux:89 (KEY_RO) -> atset1:115 */
|
85
|
+
"IntlYen": 0x7d, /* html:IntlYen (IntlYen) -> linux:124 (KEY_YEN) -> atset1:125 */
|
86
|
+
"KanaMode": 0x70, /* html:KanaMode (KanaMode) -> linux:93 (KEY_KATAKANAHIRAGANA) -> atset1:112 */
|
87
|
+
"Katakana": 0x78, /* html:Katakana (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */
|
88
|
+
"KeyA": 0x1e, /* html:KeyA (KeyA) -> linux:30 (KEY_A) -> atset1:30 */
|
89
|
+
"KeyB": 0x30, /* html:KeyB (KeyB) -> linux:48 (KEY_B) -> atset1:48 */
|
90
|
+
"KeyC": 0x2e, /* html:KeyC (KeyC) -> linux:46 (KEY_C) -> atset1:46 */
|
91
|
+
"KeyD": 0x20, /* html:KeyD (KeyD) -> linux:32 (KEY_D) -> atset1:32 */
|
92
|
+
"KeyE": 0x12, /* html:KeyE (KeyE) -> linux:18 (KEY_E) -> atset1:18 */
|
93
|
+
"KeyF": 0x21, /* html:KeyF (KeyF) -> linux:33 (KEY_F) -> atset1:33 */
|
94
|
+
"KeyG": 0x22, /* html:KeyG (KeyG) -> linux:34 (KEY_G) -> atset1:34 */
|
95
|
+
"KeyH": 0x23, /* html:KeyH (KeyH) -> linux:35 (KEY_H) -> atset1:35 */
|
96
|
+
"KeyI": 0x17, /* html:KeyI (KeyI) -> linux:23 (KEY_I) -> atset1:23 */
|
97
|
+
"KeyJ": 0x24, /* html:KeyJ (KeyJ) -> linux:36 (KEY_J) -> atset1:36 */
|
98
|
+
"KeyK": 0x25, /* html:KeyK (KeyK) -> linux:37 (KEY_K) -> atset1:37 */
|
99
|
+
"KeyL": 0x26, /* html:KeyL (KeyL) -> linux:38 (KEY_L) -> atset1:38 */
|
100
|
+
"KeyM": 0x32, /* html:KeyM (KeyM) -> linux:50 (KEY_M) -> atset1:50 */
|
101
|
+
"KeyN": 0x31, /* html:KeyN (KeyN) -> linux:49 (KEY_N) -> atset1:49 */
|
102
|
+
"KeyO": 0x18, /* html:KeyO (KeyO) -> linux:24 (KEY_O) -> atset1:24 */
|
103
|
+
"KeyP": 0x19, /* html:KeyP (KeyP) -> linux:25 (KEY_P) -> atset1:25 */
|
104
|
+
"KeyQ": 0x10, /* html:KeyQ (KeyQ) -> linux:16 (KEY_Q) -> atset1:16 */
|
105
|
+
"KeyR": 0x13, /* html:KeyR (KeyR) -> linux:19 (KEY_R) -> atset1:19 */
|
106
|
+
"KeyS": 0x1f, /* html:KeyS (KeyS) -> linux:31 (KEY_S) -> atset1:31 */
|
107
|
+
"KeyT": 0x14, /* html:KeyT (KeyT) -> linux:20 (KEY_T) -> atset1:20 */
|
108
|
+
"KeyU": 0x16, /* html:KeyU (KeyU) -> linux:22 (KEY_U) -> atset1:22 */
|
109
|
+
"KeyV": 0x2f, /* html:KeyV (KeyV) -> linux:47 (KEY_V) -> atset1:47 */
|
110
|
+
"KeyW": 0x11, /* html:KeyW (KeyW) -> linux:17 (KEY_W) -> atset1:17 */
|
111
|
+
"KeyX": 0x2d, /* html:KeyX (KeyX) -> linux:45 (KEY_X) -> atset1:45 */
|
112
|
+
"KeyY": 0x15, /* html:KeyY (KeyY) -> linux:21 (KEY_Y) -> atset1:21 */
|
113
|
+
"KeyZ": 0x2c, /* html:KeyZ (KeyZ) -> linux:44 (KEY_Z) -> atset1:44 */
|
114
|
+
"Lang1": 0x72, /* html:Lang1 (Lang1) -> linux:122 (KEY_HANGEUL) -> atset1:114 */
|
115
|
+
"Lang2": 0x71, /* html:Lang2 (Lang2) -> linux:123 (KEY_HANJA) -> atset1:113 */
|
116
|
+
"Lang3": 0x78, /* html:Lang3 (Lang3) -> linux:90 (KEY_KATAKANA) -> atset1:120 */
|
117
|
+
"Lang4": 0x77, /* html:Lang4 (Lang4) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */
|
118
|
+
"Lang5": 0x76, /* html:Lang5 (Lang5) -> linux:85 (KEY_ZENKAKUHANKAKU) -> atset1:118 */
|
119
|
+
"LaunchApp1": 0xe06b, /* html:LaunchApp1 (LaunchApp1) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */
|
120
|
+
"LaunchApp2": 0xe021, /* html:LaunchApp2 (LaunchApp2) -> linux:140 (KEY_CALC) -> atset1:57377 */
|
121
|
+
"LaunchMail": 0xe06c, /* html:LaunchMail (LaunchMail) -> linux:155 (KEY_MAIL) -> atset1:57452 */
|
122
|
+
"MediaPlayPause": 0xe022, /* html:MediaPlayPause (MediaPlayPause) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */
|
123
|
+
"MediaSelect": 0xe06d, /* html:MediaSelect (MediaSelect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */
|
124
|
+
"MediaStop": 0xe024, /* html:MediaStop (MediaStop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */
|
125
|
+
"MediaTrackNext": 0xe019, /* html:MediaTrackNext (MediaTrackNext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */
|
126
|
+
"MediaTrackPrevious": 0xe010, /* html:MediaTrackPrevious (MediaTrackPrevious) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */
|
127
|
+
"MetaLeft": 0xe05b, /* html:MetaLeft (MetaLeft) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */
|
128
|
+
"MetaRight": 0xe05c, /* html:MetaRight (MetaRight) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */
|
129
|
+
"Minus": 0xc, /* html:Minus (Minus) -> linux:12 (KEY_MINUS) -> atset1:12 */
|
130
|
+
"NonConvert": 0x7b, /* html:NonConvert (NonConvert) -> linux:94 (KEY_MUHENKAN) -> atset1:123 */
|
131
|
+
"NumLock": 0x45, /* html:NumLock (NumLock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */
|
132
|
+
"Numpad0": 0x52, /* html:Numpad0 (Numpad0) -> linux:82 (KEY_KP0) -> atset1:82 */
|
133
|
+
"Numpad1": 0x4f, /* html:Numpad1 (Numpad1) -> linux:79 (KEY_KP1) -> atset1:79 */
|
134
|
+
"Numpad2": 0x50, /* html:Numpad2 (Numpad2) -> linux:80 (KEY_KP2) -> atset1:80 */
|
135
|
+
"Numpad3": 0x51, /* html:Numpad3 (Numpad3) -> linux:81 (KEY_KP3) -> atset1:81 */
|
136
|
+
"Numpad4": 0x4b, /* html:Numpad4 (Numpad4) -> linux:75 (KEY_KP4) -> atset1:75 */
|
137
|
+
"Numpad5": 0x4c, /* html:Numpad5 (Numpad5) -> linux:76 (KEY_KP5) -> atset1:76 */
|
138
|
+
"Numpad6": 0x4d, /* html:Numpad6 (Numpad6) -> linux:77 (KEY_KP6) -> atset1:77 */
|
139
|
+
"Numpad7": 0x47, /* html:Numpad7 (Numpad7) -> linux:71 (KEY_KP7) -> atset1:71 */
|
140
|
+
"Numpad8": 0x48, /* html:Numpad8 (Numpad8) -> linux:72 (KEY_KP8) -> atset1:72 */
|
141
|
+
"Numpad9": 0x49, /* html:Numpad9 (Numpad9) -> linux:73 (KEY_KP9) -> atset1:73 */
|
142
|
+
"NumpadAdd": 0x4e, /* html:NumpadAdd (NumpadAdd) -> linux:78 (KEY_KPPLUS) -> atset1:78 */
|
143
|
+
"NumpadComma": 0x7e, /* html:NumpadComma (NumpadComma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */
|
144
|
+
"NumpadDecimal": 0x53, /* html:NumpadDecimal (NumpadDecimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */
|
145
|
+
"NumpadDivide": 0xe035, /* html:NumpadDivide (NumpadDivide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */
|
146
|
+
"NumpadEnter": 0xe01c, /* html:NumpadEnter (NumpadEnter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */
|
147
|
+
"NumpadEqual": 0x59, /* html:NumpadEqual (NumpadEqual) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */
|
148
|
+
"NumpadMultiply": 0x37, /* html:NumpadMultiply (NumpadMultiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */
|
149
|
+
"NumpadParenLeft": 0xe076, /* html:NumpadParenLeft (NumpadParenLeft) -> linux:179 (KEY_KPLEFTPAREN) -> atset1:57462 */
|
150
|
+
"NumpadParenRight": 0xe07b, /* html:NumpadParenRight (NumpadParenRight) -> linux:180 (KEY_KPRIGHTPAREN) -> atset1:57467 */
|
151
|
+
"NumpadSubtract": 0x4a, /* html:NumpadSubtract (NumpadSubtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */
|
152
|
+
"Open": 0x64, /* html:Open (Open) -> linux:134 (KEY_OPEN) -> atset1:100 */
|
153
|
+
"PageDown": 0xe051, /* html:PageDown (PageDown) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */
|
154
|
+
"PageUp": 0xe049, /* html:PageUp (PageUp) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */
|
155
|
+
"Paste": 0x65, /* html:Paste (Paste) -> linux:135 (KEY_PASTE) -> atset1:101 */
|
156
|
+
"Pause": 0xe046, /* html:Pause (Pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */
|
157
|
+
"Period": 0x34, /* html:Period (Period) -> linux:52 (KEY_DOT) -> atset1:52 */
|
158
|
+
"Power": 0xe05e, /* html:Power (Power) -> linux:116 (KEY_POWER) -> atset1:57438 */
|
159
|
+
"PrintScreen": 0x54, /* html:PrintScreen (PrintScreen) -> linux:99 (KEY_SYSRQ) -> atset1:84 */
|
160
|
+
"Props": 0xe006, /* html:Props (Props) -> linux:130 (KEY_PROPS) -> atset1:57350 */
|
161
|
+
"Quote": 0x28, /* html:Quote (Quote) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */
|
162
|
+
"ScrollLock": 0x46, /* html:ScrollLock (ScrollLock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */
|
163
|
+
"Semicolon": 0x27, /* html:Semicolon (Semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */
|
164
|
+
"ShiftLeft": 0x2a, /* html:ShiftLeft (ShiftLeft) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */
|
165
|
+
"ShiftRight": 0x36, /* html:ShiftRight (ShiftRight) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */
|
166
|
+
"Slash": 0x35, /* html:Slash (Slash) -> linux:53 (KEY_SLASH) -> atset1:53 */
|
167
|
+
"Sleep": 0xe05f, /* html:Sleep (Sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */
|
168
|
+
"Space": 0x39, /* html:Space (Space) -> linux:57 (KEY_SPACE) -> atset1:57 */
|
169
|
+
"Suspend": 0xe025, /* html:Suspend (Suspend) -> linux:205 (KEY_SUSPEND) -> atset1:57381 */
|
170
|
+
"Tab": 0xf, /* html:Tab (Tab) -> linux:15 (KEY_TAB) -> atset1:15 */
|
171
|
+
"Undo": 0xe007, /* html:Undo (Undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */
|
172
|
+
"WakeUp": 0xe063, /* html:WakeUp (WakeUp) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */
|
173
|
+
};
|