susi-qemu 0.0.3 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/bin/susi +9 -4
  3. data/lib/disk.rb +7 -5
  4. data/lib/novnc/core/base64.js +104 -0
  5. data/lib/novnc/core/crypto/aes.js +178 -0
  6. data/lib/novnc/core/crypto/bigint.js +34 -0
  7. data/lib/novnc/core/crypto/crypto.js +90 -0
  8. data/lib/novnc/core/crypto/des.js +330 -0
  9. data/lib/novnc/core/crypto/dh.js +55 -0
  10. data/lib/novnc/core/crypto/md5.js +82 -0
  11. data/lib/novnc/core/crypto/rsa.js +132 -0
  12. data/lib/novnc/core/decoders/copyrect.js +27 -0
  13. data/lib/novnc/core/decoders/h264.js +321 -0
  14. data/lib/novnc/core/decoders/hextile.js +181 -0
  15. data/lib/novnc/core/decoders/jpeg.js +146 -0
  16. data/lib/novnc/core/decoders/raw.js +59 -0
  17. data/lib/novnc/core/decoders/rre.js +44 -0
  18. data/lib/novnc/core/decoders/tight.js +393 -0
  19. data/lib/novnc/core/decoders/tightpng.js +27 -0
  20. data/lib/novnc/core/decoders/zlib.js +51 -0
  21. data/lib/novnc/core/decoders/zrle.js +185 -0
  22. data/lib/novnc/core/deflator.js +84 -0
  23. data/lib/novnc/core/display.js +575 -0
  24. data/lib/novnc/core/encodings.js +53 -0
  25. data/lib/novnc/core/inflator.js +65 -0
  26. data/lib/novnc/core/input/domkeytable.js +311 -0
  27. data/lib/novnc/core/input/fixedkeys.js +129 -0
  28. data/lib/novnc/core/input/gesturehandler.js +567 -0
  29. data/lib/novnc/core/input/keyboard.js +294 -0
  30. data/lib/novnc/core/input/keysym.js +616 -0
  31. data/lib/novnc/core/input/keysymdef.js +688 -0
  32. data/lib/novnc/core/input/util.js +191 -0
  33. data/lib/novnc/core/input/vkeys.js +116 -0
  34. data/lib/novnc/core/input/xtscancodes.js +173 -0
  35. data/lib/novnc/core/ra2.js +312 -0
  36. data/lib/novnc/core/rfb.js +3257 -0
  37. data/lib/novnc/core/util/browser.js +172 -0
  38. data/lib/novnc/core/util/cursor.js +249 -0
  39. data/lib/novnc/core/util/element.js +32 -0
  40. data/lib/novnc/core/util/events.js +138 -0
  41. data/lib/novnc/core/util/eventtarget.js +35 -0
  42. data/lib/novnc/core/util/int.js +15 -0
  43. data/lib/novnc/core/util/logging.js +56 -0
  44. data/lib/novnc/core/util/strings.js +28 -0
  45. data/lib/novnc/core/websock.js +365 -0
  46. data/lib/novnc/screen.html +21 -0
  47. data/lib/novnc/vendor/pako/lib/utils/common.js +45 -0
  48. data/lib/novnc/vendor/pako/lib/zlib/adler32.js +27 -0
  49. data/lib/novnc/vendor/pako/lib/zlib/constants.js +47 -0
  50. data/lib/novnc/vendor/pako/lib/zlib/crc32.js +36 -0
  51. data/lib/novnc/vendor/pako/lib/zlib/deflate.js +1846 -0
  52. data/lib/novnc/vendor/pako/lib/zlib/gzheader.js +35 -0
  53. data/lib/novnc/vendor/pako/lib/zlib/inffast.js +324 -0
  54. data/lib/novnc/vendor/pako/lib/zlib/inflate.js +1527 -0
  55. data/lib/novnc/vendor/pako/lib/zlib/inftrees.js +322 -0
  56. data/lib/novnc/vendor/pako/lib/zlib/messages.js +11 -0
  57. data/lib/novnc/vendor/pako/lib/zlib/trees.js +1195 -0
  58. data/lib/novnc/vendor/pako/lib/zlib/zstream.js +24 -0
  59. data/lib/output.rb +11 -0
  60. data/lib/qmp.rb +6 -0
  61. data/lib/ssh.rb +3 -1
  62. data/lib/susi.rb +7 -6
  63. data/lib/version.rb +1 -1
  64. data/lib/vm.rb +36 -13
  65. data/lib/vnc.rb +34 -30
  66. metadata +85 -1
@@ -0,0 +1,65 @@
1
+ /*
2
+ * noVNC: HTML5 VNC client
3
+ * Copyright (C) 2020 The noVNC Authors
4
+ * Licensed under MPL 2.0 (see LICENSE.txt)
5
+ *
6
+ * See README.md for usage and integration instructions.
7
+ */
8
+
9
+ import { inflateInit, inflate, inflateReset } from "../vendor/pako/lib/zlib/inflate.js";
10
+ import ZStream from "../vendor/pako/lib/zlib/zstream.js";
11
+
12
+ export default class Inflate {
13
+ constructor() {
14
+ this.strm = new ZStream();
15
+ this.chunkSize = 1024 * 10 * 10;
16
+ this.strm.output = new Uint8Array(this.chunkSize);
17
+
18
+ inflateInit(this.strm);
19
+ }
20
+
21
+ setInput(data) {
22
+ if (!data) {
23
+ //FIXME: flush remaining data.
24
+ /* eslint-disable camelcase */
25
+ this.strm.input = null;
26
+ this.strm.avail_in = 0;
27
+ this.strm.next_in = 0;
28
+ } else {
29
+ this.strm.input = data;
30
+ this.strm.avail_in = this.strm.input.length;
31
+ this.strm.next_in = 0;
32
+ /* eslint-enable camelcase */
33
+ }
34
+ }
35
+
36
+ inflate(expected) {
37
+ // resize our output buffer if it's too small
38
+ // (we could just use multiple chunks, but that would cause an extra
39
+ // allocation each time to flatten the chunks)
40
+ if (expected > this.chunkSize) {
41
+ this.chunkSize = expected;
42
+ this.strm.output = new Uint8Array(this.chunkSize);
43
+ }
44
+
45
+ /* eslint-disable camelcase */
46
+ this.strm.next_out = 0;
47
+ this.strm.avail_out = expected;
48
+ /* eslint-enable camelcase */
49
+
50
+ let ret = inflate(this.strm, 0); // Flush argument not used.
51
+ if (ret < 0) {
52
+ throw new Error("zlib inflate failed");
53
+ }
54
+
55
+ if (this.strm.next_out != expected) {
56
+ throw new Error("Incomplete zlib block");
57
+ }
58
+
59
+ return new Uint8Array(this.strm.output.buffer, 0, this.strm.next_out);
60
+ }
61
+
62
+ reset() {
63
+ inflateReset(this.strm);
64
+ }
65
+ }
@@ -0,0 +1,311 @@
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
+ import KeyTable from "./keysym.js";
8
+
9
+ /*
10
+ * Mapping between HTML key values and VNC/X11 keysyms for "special"
11
+ * keys that cannot be handled via their Unicode codepoint.
12
+ *
13
+ * See https://www.w3.org/TR/uievents-key/ for possible values.
14
+ */
15
+
16
+ const DOMKeyTable = {};
17
+
18
+ function addStandard(key, standard) {
19
+ if (standard === undefined) throw new Error("Undefined keysym for key \"" + key + "\"");
20
+ if (key in DOMKeyTable) throw new Error("Duplicate entry for key \"" + key + "\"");
21
+ DOMKeyTable[key] = [standard, standard, standard, standard];
22
+ }
23
+
24
+ function addLeftRight(key, left, right) {
25
+ if (left === undefined) throw new Error("Undefined keysym for key \"" + key + "\"");
26
+ if (right === undefined) throw new Error("Undefined keysym for key \"" + key + "\"");
27
+ if (key in DOMKeyTable) throw new Error("Duplicate entry for key \"" + key + "\"");
28
+ DOMKeyTable[key] = [left, left, right, left];
29
+ }
30
+
31
+ function addNumpad(key, standard, numpad) {
32
+ if (standard === undefined) throw new Error("Undefined keysym for key \"" + key + "\"");
33
+ if (numpad === undefined) throw new Error("Undefined keysym for key \"" + key + "\"");
34
+ if (key in DOMKeyTable) throw new Error("Duplicate entry for key \"" + key + "\"");
35
+ DOMKeyTable[key] = [standard, standard, standard, numpad];
36
+ }
37
+
38
+ // 3.2. Modifier Keys
39
+
40
+ addLeftRight("Alt", KeyTable.XK_Alt_L, KeyTable.XK_Alt_R);
41
+ addStandard("AltGraph", KeyTable.XK_ISO_Level3_Shift);
42
+ addStandard("CapsLock", KeyTable.XK_Caps_Lock);
43
+ addLeftRight("Control", KeyTable.XK_Control_L, KeyTable.XK_Control_R);
44
+ // - Fn
45
+ // - FnLock
46
+ addLeftRight("Meta", KeyTable.XK_Super_L, KeyTable.XK_Super_R);
47
+ addStandard("NumLock", KeyTable.XK_Num_Lock);
48
+ addStandard("ScrollLock", KeyTable.XK_Scroll_Lock);
49
+ addLeftRight("Shift", KeyTable.XK_Shift_L, KeyTable.XK_Shift_R);
50
+ // - Symbol
51
+ // - SymbolLock
52
+ // - Hyper
53
+ // - Super
54
+
55
+ // 3.3. Whitespace Keys
56
+
57
+ addNumpad("Enter", KeyTable.XK_Return, KeyTable.XK_KP_Enter);
58
+ addStandard("Tab", KeyTable.XK_Tab);
59
+ addNumpad(" ", KeyTable.XK_space, KeyTable.XK_KP_Space);
60
+
61
+ // 3.4. Navigation Keys
62
+
63
+ addNumpad("ArrowDown", KeyTable.XK_Down, KeyTable.XK_KP_Down);
64
+ addNumpad("ArrowLeft", KeyTable.XK_Left, KeyTable.XK_KP_Left);
65
+ addNumpad("ArrowRight", KeyTable.XK_Right, KeyTable.XK_KP_Right);
66
+ addNumpad("ArrowUp", KeyTable.XK_Up, KeyTable.XK_KP_Up);
67
+ addNumpad("End", KeyTable.XK_End, KeyTable.XK_KP_End);
68
+ addNumpad("Home", KeyTable.XK_Home, KeyTable.XK_KP_Home);
69
+ addNumpad("PageDown", KeyTable.XK_Next, KeyTable.XK_KP_Next);
70
+ addNumpad("PageUp", KeyTable.XK_Prior, KeyTable.XK_KP_Prior);
71
+
72
+ // 3.5. Editing Keys
73
+
74
+ addStandard("Backspace", KeyTable.XK_BackSpace);
75
+ // Browsers send "Clear" for the numpad 5 without NumLock because
76
+ // Windows uses VK_Clear for that key. But Unix expects KP_Begin for
77
+ // that scenario.
78
+ addNumpad("Clear", KeyTable.XK_Clear, KeyTable.XK_KP_Begin);
79
+ addStandard("Copy", KeyTable.XF86XK_Copy);
80
+ // - CrSel
81
+ addStandard("Cut", KeyTable.XF86XK_Cut);
82
+ addNumpad("Delete", KeyTable.XK_Delete, KeyTable.XK_KP_Delete);
83
+ // - EraseEof
84
+ // - ExSel
85
+ addNumpad("Insert", KeyTable.XK_Insert, KeyTable.XK_KP_Insert);
86
+ addStandard("Paste", KeyTable.XF86XK_Paste);
87
+ addStandard("Redo", KeyTable.XK_Redo);
88
+ addStandard("Undo", KeyTable.XK_Undo);
89
+
90
+ // 3.6. UI Keys
91
+
92
+ // - Accept
93
+ // - Again (could just be XK_Redo)
94
+ // - Attn
95
+ addStandard("Cancel", KeyTable.XK_Cancel);
96
+ addStandard("ContextMenu", KeyTable.XK_Menu);
97
+ addStandard("Escape", KeyTable.XK_Escape);
98
+ addStandard("Execute", KeyTable.XK_Execute);
99
+ addStandard("Find", KeyTable.XK_Find);
100
+ addStandard("Help", KeyTable.XK_Help);
101
+ addStandard("Pause", KeyTable.XK_Pause);
102
+ // - Play
103
+ // - Props
104
+ addStandard("Select", KeyTable.XK_Select);
105
+ addStandard("ZoomIn", KeyTable.XF86XK_ZoomIn);
106
+ addStandard("ZoomOut", KeyTable.XF86XK_ZoomOut);
107
+
108
+ // 3.7. Device Keys
109
+
110
+ addStandard("BrightnessDown", KeyTable.XF86XK_MonBrightnessDown);
111
+ addStandard("BrightnessUp", KeyTable.XF86XK_MonBrightnessUp);
112
+ addStandard("Eject", KeyTable.XF86XK_Eject);
113
+ addStandard("LogOff", KeyTable.XF86XK_LogOff);
114
+ addStandard("Power", KeyTable.XF86XK_PowerOff);
115
+ addStandard("PowerOff", KeyTable.XF86XK_PowerDown);
116
+ addStandard("PrintScreen", KeyTable.XK_Print);
117
+ addStandard("Hibernate", KeyTable.XF86XK_Hibernate);
118
+ addStandard("Standby", KeyTable.XF86XK_Standby);
119
+ addStandard("WakeUp", KeyTable.XF86XK_WakeUp);
120
+
121
+ // 3.8. IME and Composition Keys
122
+
123
+ addStandard("AllCandidates", KeyTable.XK_MultipleCandidate);
124
+ addStandard("Alphanumeric", KeyTable.XK_Eisu_toggle);
125
+ addStandard("CodeInput", KeyTable.XK_Codeinput);
126
+ addStandard("Compose", KeyTable.XK_Multi_key);
127
+ addStandard("Convert", KeyTable.XK_Henkan);
128
+ // - Dead
129
+ // - FinalMode
130
+ addStandard("GroupFirst", KeyTable.XK_ISO_First_Group);
131
+ addStandard("GroupLast", KeyTable.XK_ISO_Last_Group);
132
+ addStandard("GroupNext", KeyTable.XK_ISO_Next_Group);
133
+ addStandard("GroupPrevious", KeyTable.XK_ISO_Prev_Group);
134
+ // - ModeChange (XK_Mode_switch is often used for AltGr)
135
+ // - NextCandidate
136
+ addStandard("NonConvert", KeyTable.XK_Muhenkan);
137
+ addStandard("PreviousCandidate", KeyTable.XK_PreviousCandidate);
138
+ // - Process
139
+ addStandard("SingleCandidate", KeyTable.XK_SingleCandidate);
140
+ addStandard("HangulMode", KeyTable.XK_Hangul);
141
+ addStandard("HanjaMode", KeyTable.XK_Hangul_Hanja);
142
+ addStandard("JunjaMode", KeyTable.XK_Hangul_Jeonja);
143
+ addStandard("Eisu", KeyTable.XK_Eisu_toggle);
144
+ addStandard("Hankaku", KeyTable.XK_Hankaku);
145
+ addStandard("Hiragana", KeyTable.XK_Hiragana);
146
+ addStandard("HiraganaKatakana", KeyTable.XK_Hiragana_Katakana);
147
+ addStandard("KanaMode", KeyTable.XK_Kana_Shift); // could also be _Kana_Lock
148
+ addStandard("KanjiMode", KeyTable.XK_Kanji);
149
+ addStandard("Katakana", KeyTable.XK_Katakana);
150
+ addStandard("Romaji", KeyTable.XK_Romaji);
151
+ addStandard("Zenkaku", KeyTable.XK_Zenkaku);
152
+ addStandard("ZenkakuHankaku", KeyTable.XK_Zenkaku_Hankaku);
153
+
154
+ // 3.9. General-Purpose Function Keys
155
+
156
+ addStandard("F1", KeyTable.XK_F1);
157
+ addStandard("F2", KeyTable.XK_F2);
158
+ addStandard("F3", KeyTable.XK_F3);
159
+ addStandard("F4", KeyTable.XK_F4);
160
+ addStandard("F5", KeyTable.XK_F5);
161
+ addStandard("F6", KeyTable.XK_F6);
162
+ addStandard("F7", KeyTable.XK_F7);
163
+ addStandard("F8", KeyTable.XK_F8);
164
+ addStandard("F9", KeyTable.XK_F9);
165
+ addStandard("F10", KeyTable.XK_F10);
166
+ addStandard("F11", KeyTable.XK_F11);
167
+ addStandard("F12", KeyTable.XK_F12);
168
+ addStandard("F13", KeyTable.XK_F13);
169
+ addStandard("F14", KeyTable.XK_F14);
170
+ addStandard("F15", KeyTable.XK_F15);
171
+ addStandard("F16", KeyTable.XK_F16);
172
+ addStandard("F17", KeyTable.XK_F17);
173
+ addStandard("F18", KeyTable.XK_F18);
174
+ addStandard("F19", KeyTable.XK_F19);
175
+ addStandard("F20", KeyTable.XK_F20);
176
+ addStandard("F21", KeyTable.XK_F21);
177
+ addStandard("F22", KeyTable.XK_F22);
178
+ addStandard("F23", KeyTable.XK_F23);
179
+ addStandard("F24", KeyTable.XK_F24);
180
+ addStandard("F25", KeyTable.XK_F25);
181
+ addStandard("F26", KeyTable.XK_F26);
182
+ addStandard("F27", KeyTable.XK_F27);
183
+ addStandard("F28", KeyTable.XK_F28);
184
+ addStandard("F29", KeyTable.XK_F29);
185
+ addStandard("F30", KeyTable.XK_F30);
186
+ addStandard("F31", KeyTable.XK_F31);
187
+ addStandard("F32", KeyTable.XK_F32);
188
+ addStandard("F33", KeyTable.XK_F33);
189
+ addStandard("F34", KeyTable.XK_F34);
190
+ addStandard("F35", KeyTable.XK_F35);
191
+ // - Soft1...
192
+
193
+ // 3.10. Multimedia Keys
194
+
195
+ // - ChannelDown
196
+ // - ChannelUp
197
+ addStandard("Close", KeyTable.XF86XK_Close);
198
+ addStandard("MailForward", KeyTable.XF86XK_MailForward);
199
+ addStandard("MailReply", KeyTable.XF86XK_Reply);
200
+ addStandard("MailSend", KeyTable.XF86XK_Send);
201
+ // - MediaClose
202
+ addStandard("MediaFastForward", KeyTable.XF86XK_AudioForward);
203
+ addStandard("MediaPause", KeyTable.XF86XK_AudioPause);
204
+ addStandard("MediaPlay", KeyTable.XF86XK_AudioPlay);
205
+ // - MediaPlayPause
206
+ addStandard("MediaRecord", KeyTable.XF86XK_AudioRecord);
207
+ addStandard("MediaRewind", KeyTable.XF86XK_AudioRewind);
208
+ addStandard("MediaStop", KeyTable.XF86XK_AudioStop);
209
+ addStandard("MediaTrackNext", KeyTable.XF86XK_AudioNext);
210
+ addStandard("MediaTrackPrevious", KeyTable.XF86XK_AudioPrev);
211
+ addStandard("New", KeyTable.XF86XK_New);
212
+ addStandard("Open", KeyTable.XF86XK_Open);
213
+ addStandard("Print", KeyTable.XK_Print);
214
+ addStandard("Save", KeyTable.XF86XK_Save);
215
+ addStandard("SpellCheck", KeyTable.XF86XK_Spell);
216
+
217
+ // 3.11. Multimedia Numpad Keys
218
+
219
+ // - Key11
220
+ // - Key12
221
+
222
+ // 3.12. Audio Keys
223
+
224
+ // - AudioBalanceLeft
225
+ // - AudioBalanceRight
226
+ // - AudioBassBoostDown
227
+ // - AudioBassBoostToggle
228
+ // - AudioBassBoostUp
229
+ // - AudioFaderFront
230
+ // - AudioFaderRear
231
+ // - AudioSurroundModeNext
232
+ // - AudioTrebleDown
233
+ // - AudioTrebleUp
234
+ addStandard("AudioVolumeDown", KeyTable.XF86XK_AudioLowerVolume);
235
+ addStandard("AudioVolumeUp", KeyTable.XF86XK_AudioRaiseVolume);
236
+ addStandard("AudioVolumeMute", KeyTable.XF86XK_AudioMute);
237
+ // - MicrophoneToggle
238
+ // - MicrophoneVolumeDown
239
+ // - MicrophoneVolumeUp
240
+ addStandard("MicrophoneVolumeMute", KeyTable.XF86XK_AudioMicMute);
241
+
242
+ // 3.13. Speech Keys
243
+
244
+ // - SpeechCorrectionList
245
+ // - SpeechInputToggle
246
+
247
+ // 3.14. Application Keys
248
+
249
+ addStandard("LaunchApplication1", KeyTable.XF86XK_MyComputer);
250
+ addStandard("LaunchApplication2", KeyTable.XF86XK_Calculator);
251
+ addStandard("LaunchCalendar", KeyTable.XF86XK_Calendar);
252
+ // - LaunchContacts
253
+ addStandard("LaunchMail", KeyTable.XF86XK_Mail);
254
+ addStandard("LaunchMediaPlayer", KeyTable.XF86XK_AudioMedia);
255
+ addStandard("LaunchMusicPlayer", KeyTable.XF86XK_Music);
256
+ addStandard("LaunchPhone", KeyTable.XF86XK_Phone);
257
+ addStandard("LaunchScreenSaver", KeyTable.XF86XK_ScreenSaver);
258
+ addStandard("LaunchSpreadsheet", KeyTable.XF86XK_Excel);
259
+ addStandard("LaunchWebBrowser", KeyTable.XF86XK_WWW);
260
+ addStandard("LaunchWebCam", KeyTable.XF86XK_WebCam);
261
+ addStandard("LaunchWordProcessor", KeyTable.XF86XK_Word);
262
+
263
+ // 3.15. Browser Keys
264
+
265
+ addStandard("BrowserBack", KeyTable.XF86XK_Back);
266
+ addStandard("BrowserFavorites", KeyTable.XF86XK_Favorites);
267
+ addStandard("BrowserForward", KeyTable.XF86XK_Forward);
268
+ addStandard("BrowserHome", KeyTable.XF86XK_HomePage);
269
+ addStandard("BrowserRefresh", KeyTable.XF86XK_Refresh);
270
+ addStandard("BrowserSearch", KeyTable.XF86XK_Search);
271
+ addStandard("BrowserStop", KeyTable.XF86XK_Stop);
272
+
273
+ // 3.16. Mobile Phone Keys
274
+
275
+ // - A whole bunch...
276
+
277
+ // 3.17. TV Keys
278
+
279
+ // - A whole bunch...
280
+
281
+ // 3.18. Media Controller Keys
282
+
283
+ // - A whole bunch...
284
+ addStandard("Dimmer", KeyTable.XF86XK_BrightnessAdjust);
285
+ addStandard("MediaAudioTrack", KeyTable.XF86XK_AudioCycleTrack);
286
+ addStandard("RandomToggle", KeyTable.XF86XK_AudioRandomPlay);
287
+ addStandard("SplitScreenToggle", KeyTable.XF86XK_SplitScreen);
288
+ addStandard("Subtitle", KeyTable.XF86XK_Subtitle);
289
+ addStandard("VideoModeNext", KeyTable.XF86XK_Next_VMode);
290
+
291
+ // Extra: Numpad
292
+
293
+ addNumpad("=", KeyTable.XK_equal, KeyTable.XK_KP_Equal);
294
+ addNumpad("+", KeyTable.XK_plus, KeyTable.XK_KP_Add);
295
+ addNumpad("-", KeyTable.XK_minus, KeyTable.XK_KP_Subtract);
296
+ addNumpad("*", KeyTable.XK_asterisk, KeyTable.XK_KP_Multiply);
297
+ addNumpad("/", KeyTable.XK_slash, KeyTable.XK_KP_Divide);
298
+ addNumpad(".", KeyTable.XK_period, KeyTable.XK_KP_Decimal);
299
+ addNumpad(",", KeyTable.XK_comma, KeyTable.XK_KP_Separator);
300
+ addNumpad("0", KeyTable.XK_0, KeyTable.XK_KP_0);
301
+ addNumpad("1", KeyTable.XK_1, KeyTable.XK_KP_1);
302
+ addNumpad("2", KeyTable.XK_2, KeyTable.XK_KP_2);
303
+ addNumpad("3", KeyTable.XK_3, KeyTable.XK_KP_3);
304
+ addNumpad("4", KeyTable.XK_4, KeyTable.XK_KP_4);
305
+ addNumpad("5", KeyTable.XK_5, KeyTable.XK_KP_5);
306
+ addNumpad("6", KeyTable.XK_6, KeyTable.XK_KP_6);
307
+ addNumpad("7", KeyTable.XK_7, KeyTable.XK_KP_7);
308
+ addNumpad("8", KeyTable.XK_8, KeyTable.XK_KP_8);
309
+ addNumpad("9", KeyTable.XK_9, KeyTable.XK_KP_9);
310
+
311
+ export default DOMKeyTable;
@@ -0,0 +1,129 @@
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
+ * Fallback mapping between HTML key codes (physical keys) and
9
+ * HTML key values. This only works for keys that don't vary
10
+ * between layouts. We also omit those who manage fine by mapping the
11
+ * Unicode representation.
12
+ *
13
+ * See https://www.w3.org/TR/uievents-code/ for possible codes.
14
+ * See https://www.w3.org/TR/uievents-key/ for possible values.
15
+ */
16
+
17
+ /* eslint-disable key-spacing */
18
+
19
+ export default {
20
+
21
+ // 3.1.1.1. Writing System Keys
22
+
23
+ 'Backspace': 'Backspace',
24
+
25
+ // 3.1.1.2. Functional Keys
26
+
27
+ 'AltLeft': 'Alt',
28
+ 'AltRight': 'Alt', // This could also be 'AltGraph'
29
+ 'CapsLock': 'CapsLock',
30
+ 'ContextMenu': 'ContextMenu',
31
+ 'ControlLeft': 'Control',
32
+ 'ControlRight': 'Control',
33
+ 'Enter': 'Enter',
34
+ 'MetaLeft': 'Meta',
35
+ 'MetaRight': 'Meta',
36
+ 'ShiftLeft': 'Shift',
37
+ 'ShiftRight': 'Shift',
38
+ 'Tab': 'Tab',
39
+ // FIXME: Japanese/Korean keys
40
+
41
+ // 3.1.2. Control Pad Section
42
+
43
+ 'Delete': 'Delete',
44
+ 'End': 'End',
45
+ 'Help': 'Help',
46
+ 'Home': 'Home',
47
+ 'Insert': 'Insert',
48
+ 'PageDown': 'PageDown',
49
+ 'PageUp': 'PageUp',
50
+
51
+ // 3.1.3. Arrow Pad Section
52
+
53
+ 'ArrowDown': 'ArrowDown',
54
+ 'ArrowLeft': 'ArrowLeft',
55
+ 'ArrowRight': 'ArrowRight',
56
+ 'ArrowUp': 'ArrowUp',
57
+
58
+ // 3.1.4. Numpad Section
59
+
60
+ 'NumLock': 'NumLock',
61
+ 'NumpadBackspace': 'Backspace',
62
+ 'NumpadClear': 'Clear',
63
+
64
+ // 3.1.5. Function Section
65
+
66
+ 'Escape': 'Escape',
67
+ 'F1': 'F1',
68
+ 'F2': 'F2',
69
+ 'F3': 'F3',
70
+ 'F4': 'F4',
71
+ 'F5': 'F5',
72
+ 'F6': 'F6',
73
+ 'F7': 'F7',
74
+ 'F8': 'F8',
75
+ 'F9': 'F9',
76
+ 'F10': 'F10',
77
+ 'F11': 'F11',
78
+ 'F12': 'F12',
79
+ 'F13': 'F13',
80
+ 'F14': 'F14',
81
+ 'F15': 'F15',
82
+ 'F16': 'F16',
83
+ 'F17': 'F17',
84
+ 'F18': 'F18',
85
+ 'F19': 'F19',
86
+ 'F20': 'F20',
87
+ 'F21': 'F21',
88
+ 'F22': 'F22',
89
+ 'F23': 'F23',
90
+ 'F24': 'F24',
91
+ 'F25': 'F25',
92
+ 'F26': 'F26',
93
+ 'F27': 'F27',
94
+ 'F28': 'F28',
95
+ 'F29': 'F29',
96
+ 'F30': 'F30',
97
+ 'F31': 'F31',
98
+ 'F32': 'F32',
99
+ 'F33': 'F33',
100
+ 'F34': 'F34',
101
+ 'F35': 'F35',
102
+ 'PrintScreen': 'PrintScreen',
103
+ 'ScrollLock': 'ScrollLock',
104
+ 'Pause': 'Pause',
105
+
106
+ // 3.1.6. Media Keys
107
+
108
+ 'BrowserBack': 'BrowserBack',
109
+ 'BrowserFavorites': 'BrowserFavorites',
110
+ 'BrowserForward': 'BrowserForward',
111
+ 'BrowserHome': 'BrowserHome',
112
+ 'BrowserRefresh': 'BrowserRefresh',
113
+ 'BrowserSearch': 'BrowserSearch',
114
+ 'BrowserStop': 'BrowserStop',
115
+ 'Eject': 'Eject',
116
+ 'LaunchApp1': 'LaunchMyComputer',
117
+ 'LaunchApp2': 'LaunchCalendar',
118
+ 'LaunchMail': 'LaunchMail',
119
+ 'MediaPlayPause': 'MediaPlay',
120
+ 'MediaStop': 'MediaStop',
121
+ 'MediaTrackNext': 'MediaTrackNext',
122
+ 'MediaTrackPrevious': 'MediaTrackPrevious',
123
+ 'Power': 'Power',
124
+ 'Sleep': 'Sleep',
125
+ 'AudioVolumeDown': 'AudioVolumeDown',
126
+ 'AudioVolumeMute': 'AudioVolumeMute',
127
+ 'AudioVolumeUp': 'AudioVolumeUp',
128
+ 'WakeUp': 'WakeUp',
129
+ };