| /* | |
| Licensed to the Apache Software Foundation (ASF) under one | |
| or more contributor license agreements. See the NOTICE file | |
| distributed with this work for additional information | |
| regarding copyright ownership. The ASF licenses this file | |
| to you under the Apache License, Version 2.0 (the | |
| "License"); you may not use this file except in compliance | |
| with the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, | |
| software distributed under the License is distributed on an | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations | |
| under the License. | |
| */ | |
| /* | |
| * This var contains the limited keyboard translation tables. | |
| * This is the table that users can modify to make special keyboard to work properly. | |
| * They are used by the ajaxviewer.js | |
| */ | |
| //client event type. corresponds to events in ajaxviewer. | |
| //use java AWT key modifier masks | |
| JS_KEY_BACKSPACE = 8; | |
| JS_KEY_TAB = 9; | |
| JS_KEY_ENTER = 13; | |
| JS_KEY_SHIFT = 16; | |
| JS_KEY_CTRL = 17; | |
| JS_KEY_ALT = 18; | |
| JS_KEY_CAPSLOCK = 20; | |
| JS_KEY_ESCAPE = 27; | |
| JS_KEY_PAGEUP = 33; | |
| JS_KEY_PAGEDOWN = 34; | |
| JS_KEY_END = 35; | |
| JS_KEY_HOME = 36; | |
| JS_KEY_LEFT = 37; | |
| JS_KEY_UP = 38; | |
| JS_KEY_RIGHT = 39; | |
| JS_KEY_DOWN = 40; | |
| JS_KEY_INSERT = 45; | |
| JS_KEY_DELETE = 46; | |
| JS_KEY_SELECT_KEY = 93; | |
| JS_KEY_NUMPAD0 = 96; | |
| JS_KEY_NUMPAD1 = 97; | |
| JS_KEY_NUMPAD2 = 98; | |
| JS_KEY_NUMPAD3 = 99; | |
| JS_KEY_NUMPAD4 = 100; | |
| JS_KEY_NUMPAD5 = 101; | |
| JS_KEY_NUMPAD6 = 102; | |
| JS_KEY_NUMPAD7 = 103; | |
| JS_KEY_NUMPAD8 = 104; | |
| JS_KEY_NUMPAD9 = 105; | |
| JS_KEY_MULTIPLY = 106; | |
| JS_KEY_ADD = 107; | |
| JS_KEY_SUBSTRACT = 109; | |
| JS_KEY_DECIMAL_POINT = 110; | |
| JS_KEY_DIVIDE = 111; | |
| JS_KEY_F1 = 112; | |
| JS_KEY_F2 = 113; | |
| JS_KEY_F3 = 114; | |
| JS_KEY_F4 = 115; | |
| JS_KEY_F5 = 116; | |
| JS_KEY_F6 = 117; | |
| JS_KEY_F7 = 118; | |
| JS_KEY_F8 = 119; | |
| JS_KEY_F9 = 120; | |
| JS_KEY_F10 = 121; | |
| JS_KEY_F11 = 122; | |
| JS_KEY_F12 = 123; | |
| JS_KEY_SEMI_COLON = 186; // ; | |
| JS_KEY_COMMA = 188; // , | |
| JS_KEY_DASH = 189; // - | |
| JS_KEY_PERIOD = 190; // . | |
| JS_KEY_FORWARD_SLASH = 191; // / | |
| JS_KEY_GRAVE_ACCENT = 192; // ` | |
| JS_KEY_OPEN_BRACKET = 219; // [ | |
| JS_KEY_BACK_SLASH = 220; // \ | |
| JS_KEY_CLOSE_BRACKET = 221; // ] | |
| JS_KEY_SINGLE_QUOTE = 222; // ' | |
| //X11 keysym definitions | |
| X11_KEY_CAPSLOCK = 0xffe5; | |
| X11_KEY_BACKSPACE = 0xff08; | |
| X11_KEY_TAB = 0xff09; | |
| X11_KEY_ENTER = 0xff0d; | |
| X11_KEY_ESCAPE = 0xff1b; | |
| X11_KEY_INSERT = 0xff63; | |
| X11_KEY_DELETE = 0xffff; | |
| X11_KEY_HOME = 0xff50; | |
| X11_KEY_END = 0xff57; | |
| X11_KEY_PAGEUP = 0xff55; | |
| X11_KEY_PAGEDOWN = 0xff56; | |
| X11_KEY_LEFT = 0xff51; | |
| X11_KEY_UP = 0xff52; | |
| X11_KEY_RIGHT = 0xff53; | |
| X11_KEY_DOWN = 0xff54; | |
| X11_KEY_F1 = 0xffbe; | |
| X11_KEY_F2 = 0xffbf; | |
| X11_KEY_F3 = 0xffc0; | |
| X11_KEY_F4 = 0xffc1; | |
| X11_KEY_F5 = 0xffc2; | |
| X11_KEY_F6 = 0xffc3; | |
| X11_KEY_F7 = 0xffc4; | |
| X11_KEY_F8 = 0xffc5; | |
| X11_KEY_F9 = 0xffc6; | |
| X11_KEY_F10 = 0xffc7; | |
| X11_KEY_F11 = 0xffc8; | |
| X11_KEY_F12 = 0xffc9; | |
| X11_KEY_SHIFT = 0xffe1; | |
| X11_KEY_CTRL = 0xffe3; | |
| X11_KEY_ALT = 0xffe9; | |
| X11_KEY_GRAVE_ACCENT = 0x60; | |
| X11_KEY_SUBSTRACT = 0x2d; | |
| X11_KEY_ADD = 0x2b; | |
| X11_KEY_OPEN_BRACKET = 0x5b; | |
| X11_KEY_CLOSE_BRACKET = 0x5d; | |
| X11_KEY_BACK_SLASH = 0x7c; | |
| X11_KEY_REVERSE_SOLIUS = 0x5c; // another back slash (back slash on JP keyboard) | |
| X11_KEY_SINGLE_QUOTE = 0x22; | |
| X11_KEY_COMMA = 0x3c; | |
| X11_KEY_PERIOD = 0x3e; | |
| X11_KEY_FORWARD_SLASH = 0x3f; | |
| X11_KEY_DASH = 0x2d; | |
| X11_KEY_COLON = 0x3a; | |
| X11_KEY_SEMI_COLON = 0x3b; | |
| X11_KEY_NUMPAD0 = 0x30; | |
| X11_KEY_NUMPAD1 = 0x31; | |
| X11_KEY_NUMPAD2 = 0x32; | |
| X11_KEY_NUMPAD3 = 0x33; | |
| X11_KEY_NUMPAD4 = 0x34; | |
| X11_KEY_NUMPAD5 = 0x35; | |
| X11_KEY_NUMPAD6 = 0x36; | |
| X11_KEY_NUMPAD7 = 0x37; | |
| X11_KEY_NUMPAD8 = 0x38; | |
| X11_KEY_NUMPAD9 = 0x39; | |
| X11_KEY_DECIMAL_POINT = 0x2e; | |
| X11_KEY_DIVIDE = 0x3f; | |
| X11_KEY_TILDE = 0x7e; // ~ | |
| X11_KEY_CIRCUMFLEX_ACCENT = 0x5e; // ^ | |
| X11_KEY_YEN_MARK = 0xa5; // Japanese YEN mark | |
| X11_KEY_ASTERISK = 0x2a; | |
| X11_KEY_KP_0 = 0xFFB0; | |
| X11_KEY_KP_1 = 0xFFB1; | |
| X11_KEY_KP_2 = 0xFFB2; | |
| X11_KEY_KP_3 = 0xFFB3; | |
| X11_KEY_KP_4 = 0xFFB4; | |
| X11_KEY_KP_5 = 0xFFB5; | |
| X11_KEY_KP_6 = 0xFFB6; | |
| X11_KEY_KP_7 = 0xFFB7; | |
| X11_KEY_KP_8 = 0xFFB8; | |
| X11_KEY_KP_9 = 0xFFB9; | |
| X11_KEY_KP_Decimal = 0xFFAE; | |
| KEY_DOWN = 5; | |
| KEY_UP = 6; | |
| KEYBOARD_TYPE_COOKED = "us"; | |
| KEYBOARD_TYPE_JP = "jp"; | |
| KEYBOARD_TYPE_UK = "uk"; | |
| KEYBOARD_TYPE_FR = "fr"; | |
| //JP keyboard type | |
| var keyboardTables = [ | |
| {tindex: 0, keyboardType: KEYBOARD_TYPE_COOKED, mappingTable: | |
| {X11: [ {keycode: 226, entry: X11_KEY_REVERSE_SOLIUS}, | |
| {keycode: 240, entry: [ | |
| {type: KEY_DOWN, code: X11_KEY_CAPSLOCK, modifiers: 0 }, | |
| {type: KEY_UP, code: X11_KEY_CAPSLOCK, modifiers: 0 }, | |
| ] | |
| } | |
| ], | |
| keyPress: [ | |
| {keycode: 59, entry: [ | |
| {type: KEY_DOWN, code: X11_KEY_SEMI_COLON, modifiers: 0 }, | |
| {type: KEY_UP, code: X11_KEY_SEMI_COLON, modifiers: 0 }, | |
| ] | |
| }, | |
| {keycode: 43, entry: [ | |
| {type: KEY_DOWN, code: X11_KEY_SHIFT, modifiers: 0, shift: false }, | |
| {type: KEY_DOWN, code: X11_KEY_ADD, modifiers: 0, shift: false }, | |
| {type: KEY_UP, code: X11_KEY_ADD, modifiers: 0, shift: false }, | |
| {type: KEY_UP, code: X11_KEY_SHIFT, modifiers: 0, shift: false }, | |
| {type: KEY_DOWN, code: X11_KEY_ADD, modifiers: 0, shift: true }, | |
| {type: KEY_UP, code: X11_KEY_ADD, modifiers: 0, shift: true }, | |
| ] | |
| } | |
| ] | |
| } | |
| }, {tindex: 1, keyboardType: KEYBOARD_TYPE_JP, mappingTable: | |
| // intialize keyboard mapping for RAW keyboard | |
| {X11: [ | |
| {keycode: JS_KEY_CAPSLOCK, entry : X11_KEY_CAPSLOCK}, | |
| {keycode: JS_KEY_BACKSPACE, entry : X11_KEY_BACKSPACE}, | |
| {keycode: JS_KEY_TAB, entry : X11_KEY_TAB}, | |
| {keycode: JS_KEY_ENTER, entry : X11_KEY_ENTER}, | |
| {keycode: JS_KEY_ESCAPE, entry : X11_KEY_ESCAPE}, | |
| {keycode: JS_KEY_INSERT, entry : X11_KEY_INSERT}, | |
| {keycode: JS_KEY_DELETE, entry : X11_KEY_DELETE}, | |
| {keycode: JS_KEY_HOME, entry : X11_KEY_HOME}, | |
| {keycode: JS_KEY_END, entry : X11_KEY_END}, | |
| {keycode: JS_KEY_PAGEUP, entry : X11_KEY_PAGEUP}, | |
| {keycode: JS_KEY_PAGEDOWN, entry : X11_KEY_PAGEDOWN}, | |
| {keycode: JS_KEY_LEFT, entry : X11_KEY_LEFT}, | |
| {keycode: JS_KEY_UP, entry : X11_KEY_UP}, | |
| {keycode: JS_KEY_RIGHT, entry : X11_KEY_RIGHT}, | |
| {keycode: JS_KEY_DOWN, entry : X11_KEY_DOWN}, | |
| {keycode: JS_KEY_F1, entry : X11_KEY_F1}, | |
| {keycode: JS_KEY_F2, entry : X11_KEY_F2}, | |
| {keycode: JS_KEY_F3, entry : X11_KEY_F3}, | |
| {keycode: JS_KEY_F4, entry : X11_KEY_F4}, | |
| {keycode: JS_KEY_F5, entry : X11_KEY_F5}, | |
| {keycode: JS_KEY_F6, entry : X11_KEY_F6}, | |
| {keycode: JS_KEY_F7, entry : X11_KEY_F7}, | |
| {keycode: JS_KEY_F8, entry : X11_KEY_F8}, | |
| {keycode: JS_KEY_F9, entry : X11_KEY_F9}, | |
| {keycode: JS_KEY_F10, entry : X11_KEY_F10}, | |
| {keycode: JS_KEY_F11, entry : X11_KEY_F11}, | |
| {keycode: JS_KEY_F12, entry : X11_KEY_F12}, | |
| {keycode: JS_KEY_SHIFT, entry : X11_KEY_SHIFT}, | |
| {keycode: JS_KEY_CTRL, entry : X11_KEY_CTRL}, | |
| {keycode: JS_KEY_ALT, entry : X11_KEY_ALT}, | |
| //{keycode: JS_KEY_GRAVE_ACCENT, entry : X11_KEY_GRAVE_ACCENT}, | |
| //[192 / 64 = "' @"] | |
| {keycode: 192, entry : 0x40, guestos: "windows", browser: "IE"}, | |
| {keycode: 64, entry : 0x40, guestos: "windows", browser: "Firefox"}, | |
| //{keycode: JS_KEY_ADD, entry : X11_KEY_ADD}, | |
| //[187 / 59 = "; +"] | |
| {keycode: 187, entry : 0x3b, guestos: "windows", browser: "IE"}, | |
| {keycode: 59, entry : 0x3b, guestos: "windows", browser: "Firefox"}, | |
| //{keycode: JS_KEY_OPEN_BRACKET, entry : X11_KEY_OPEN_BRACKET}, | |
| //[219 = "[{"] | |
| {keycode: 219, entry : 0x5b, guestos: "windows", browser: "IE"}, | |
| {keycode: 219, entry : 0x5b, guestos: "windows", browser: "Firefox"}, | |
| //{keycode: JS_KEY_CLOSE_BRACKET, entry : X11_KEY_CLOSE_BRACKET}, | |
| //[221 = "]}"] | |
| {keycode: 221, entry : 0x5d, guestos: "windows", browser: "IE"}, | |
| {keycode: 221, entry : 0x5d, guestos: "windows", browser: "Firefox"}, | |
| {keycode: JS_KEY_BACK_SLASH, entry : X11_KEY_BACK_SLASH, guestos: "windows"}, | |
| //{keycode: JS_KEY_SINGLE_QUOTE, entry : X11_KEY_SINGLE_QUOTE}, | |
| //[222 / 160 = "~^"] | |
| {keycode: 222, entry : 0x5e, guestos: "windows", browser: "IE"}, | |
| {keycode: 160, entry : 0x5e, guestos: "windows", browser: "Firefox"}, | |
| //[173 = "-=" ] specific to Firefox browser | |
| {keycode: 173, entry : 0x2d, guestos: "windows", browser: "Firefox"}, | |
| {keycode: JS_KEY_COMMA, entry : X11_KEY_COMMA, guestos: "windows"}, | |
| {keycode: JS_KEY_PERIOD, entry : X11_KEY_PERIOD, guestos: "windows"}, | |
| {keycode: JS_KEY_FORWARD_SLASH, entry : X11_KEY_FORWARD_SLASH, guestos: "windows"}, | |
| {keycode: JS_KEY_DASH, entry : X11_KEY_DASH, guestos: "windows"}, | |
| {keycode: JS_KEY_SEMI_COLON, entry : 0x3a, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD0, entry : X11_KEY_NUMPAD0, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD1, entry : X11_KEY_NUMPAD1, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD2, entry : X11_KEY_NUMPAD2, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD3, entry : X11_KEY_NUMPAD3, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD4, entry : X11_KEY_NUMPAD4, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD5, entry : X11_KEY_NUMPAD5, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD6, entry : X11_KEY_NUMPAD6, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD7, entry : X11_KEY_NUMPAD7, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD8, entry : X11_KEY_NUMPAD8, guestos: "windows"}, | |
| {keycode: JS_KEY_NUMPAD9, entry : X11_KEY_NUMPAD9, guestos: "windows"}, | |
| {keycode: JS_KEY_DECIMAL_POINT, entry : X11_KEY_PERIOD, guestos: "windows"}, | |
| {keycode: JS_KEY_DIVIDE, entry : 0xffaf, guestos: "windows"}, | |
| {keycode: JS_KEY_MULTIPLY, entry : 0xffaa, guestos: "windows"}, | |
| {keycode: JS_KEY_ADD, entry : 0xffab, guestos: "windows"}, | |
| {keycode: JS_KEY_SUBSTRACT, entry : 0xffad, guestos: "windows"}, | |
| //Kanji Key = 243 / 244 | |
| {keycode: 243, entry : 0x7e, browser: "IE"}, | |
| {keycode: 244, entry : 0x7e, browser: "IE"}, | |
| //Caps Lock = 240 | |
| {keycode: 240, entry : 0xffe5}, | |
| //[186 / 58 = "~^"] | |
| {keycode: 186, entry : 0x3a, guestos: "windows", browser: "IE"}, | |
| {keycode: 58, entry : 0x3a, guestos: "windows", browser: "Firefox"}, | |
| //[226 = "_"] | |
| {keycode: 226, entry : 0x5f, guestos: "windows"}, | |
| ], | |
| keyPress: [ | |
| // These mappings are for japanese guestOS. it is recommended that admin should deploy | |
| // the VM with "keyboard=jp" paramenter or change the VM properties in hypervisor to use jp mapping. | |
| {keycode: 42, entry: 0xffaa}, // * | |
| {keycode: 43, entry: 0xffab}, // + | |
| ] | |
| } | |
| }, {tindex: 2, keyboardType: KEYBOARD_TYPE_UK, mappingTable: | |
| {X11: [], | |
| keyPress: [ | |
| //[34 = "] | |
| {keycode: 34, entry: 0x40, guestos: "windows"}, | |
| //[35 = #] | |
| {keycode: 35, entry: 0x5c, guestos: "windows"}, | |
| // [64 = @] | |
| {keycode: 64, entry: 0x22, guestos: "windows"}, | |
| // [92 = \] | |
| {keycode: 92, entry: 0xa6, guestos: "windows"}, | |
| // [124 = |] | |
| {keycode: 124, entry: 0xa6, guestos: "windows"}, | |
| // [126 = ~] | |
| {keycode: 126, entry: 0x7c, guestos: "windows"}, | |
| // [163 = £] | |
| {keycode: 163, entry: 0x23, guestos: "windows"}, | |
| // [172 = ¬] | |
| {keycode: 172, entry: 0x7e, guestos: "windows"}, | |
| // [166 = ¦] | |
| {keycode: 166, entry: [{type : KEY_DOWN, code : 0x60, modifiers : 896, shift : false}], guestos: "windows"} | |
| ] | |
| } | |
| }, | |
| {tindex: 3, keyboardType: KEYBOARD_TYPE_FR, mappingTable:{ | |
| X11: [ | |
| // '*' doesn't work | |
| {keycode: 220, browser: "Chrome", entry: 0x5c}, | |
| {keycode: 170, browser: "Firefox", entry: 0x5c}, | |
| //ROW 1 AltGr | |
| //[50 = ~] | |
| {keycode: 50, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x32, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x32, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[51 = #] | |
| {keycode: 51, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x33, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x33, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[52 = {] | |
| {keycode: 52, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x34, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x34, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[53 = [] | |
| {keycode: 53, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x35, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x35, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[54 = |] | |
| {keycode: 54, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x36, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x36, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[55 = `] | |
| {keycode: 55, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x37, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x37, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[56 = \] | |
| {keycode: 56, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x38, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x38, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[57 = ^] | |
| {keycode: 57, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x39, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x39, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[48 = @] | |
| {keycode: 48, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x30, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x30, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[219 = ]] | |
| {keycode: 219, browser: "Chrome", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x2d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x2d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[169 = ]] | |
| {keycode: 169, browser: "Firefox", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x2d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x2d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[187 = }] | |
| {keycode: 187, browser: "Chrome", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x3d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x3d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[61 = }] | |
| {keycode: 61, browser: "Firefox", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x3d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x3d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //ROW 2 AltGr | |
| //[69 = €] | |
| {keycode: 69, entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x65, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x65, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[186 = ¤] | |
| {keycode: 186, browser: "Chrome", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x5d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x5d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]}, | |
| //[164 = ¤] | |
| {keycode: 164, browser: "Firefox", entry: [ | |
| {type: KEY_DOWN, code: 0xffea, modifiers: 0, altgr: true}, | |
| {type: KEY_DOWN, code: 0x5d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0x5d, modifiers: 0, altgr: true}, | |
| {type: KEY_UP, code: 0xffea, modifiers: 0, altgr: true} | |
| ]} | |
| ], | |
| keyPress: [ | |
| //ROW 1 | |
| //[178 = ²] | |
| {keycode: 178, entry: [ | |
| {type: KEY_DOWN, code: 0x60, modifiers: 0}, | |
| {type: KEY_UP, code: 0x60, modifiers: 0} | |
| ]}, | |
| //[38 = &] | |
| {keycode: 38, entry: [ | |
| {type: KEY_DOWN, code: 0x31, modifiers: 0}, | |
| {type: KEY_UP, code: 0x31, modifiers: 0} | |
| ]}, | |
| //[233 = é] | |
| {keycode: 233, entry: [ | |
| {type: KEY_DOWN, code: 0x32, modifiers: 0}, | |
| {type: KEY_UP, code: 0x32, modifiers: 0} | |
| ]}, | |
| //[34 = "] | |
| {keycode: 34, entry: [ | |
| {type: KEY_DOWN, code: 0x33, modifiers: 0}, | |
| {type: KEY_UP, code: 0x33, modifiers: 0} | |
| ]}, | |
| //[39 = '] | |
| {keycode: 39, entry: [ | |
| {type: KEY_DOWN, code: 0x34, modifiers: 0}, | |
| {type: KEY_UP, code: 0x34, modifiers: 0} | |
| ]}, | |
| //[40 = (] | |
| {keycode: 40, entry: [ | |
| {type: KEY_DOWN, code: 0x35, modifiers: 0}, | |
| {type: KEY_UP, code: 0x35, modifiers: 0} | |
| ]}, | |
| //[45 = -] | |
| {keycode: 45, entry: [ | |
| {type: KEY_DOWN, code: 0x36, modifiers: 0}, | |
| {type: KEY_UP, code: 0x36, modifiers: 0} | |
| ]}, | |
| //[232 = è] | |
| {keycode: 232, entry: [ | |
| {type: KEY_DOWN, code: 0x37, modifiers: 0}, | |
| {type: KEY_UP, code: 0x37, modifiers: 0} | |
| ]}, | |
| //[95 = _] | |
| {keycode: 95, entry: [ | |
| {type: KEY_DOWN, code: 0x38, modifiers: 0}, | |
| {type: KEY_UP, code: 0x38, modifiers: 0} | |
| ]}, | |
| //[231 = ç] | |
| {keycode: 231, entry: [ | |
| {type: KEY_DOWN, code: 0x39, modifiers: 0}, | |
| {type: KEY_UP, code: 0x39, modifiers: 0} | |
| ]}, | |
| //[224 = à] | |
| {keycode: 224, entry: [ | |
| {type: KEY_DOWN, code: 0x30, modifiers: 0}, | |
| {type: KEY_UP, code: 0x30, modifiers: 0} | |
| ]}, | |
| //[41 = )] | |
| {keycode: 41, entry: [ | |
| {type: KEY_DOWN, code: 0x2d, modifiers: 0}, | |
| {type: KEY_UP, code: 0x2d, modifiers: 0} | |
| ]}, | |
| //[176 = =] | |
| {keycode: 176, entry: [ | |
| {type: KEY_DOWN, code: 0x2d, modifiers: 64}, | |
| {type: KEY_UP, code: 0x2d, modifiers: 64} | |
| ]}, | |
| //[181 = µ] | |
| {keycode: 181, entry: [ | |
| {type: KEY_DOWN, code: 0x5c, modifiers: 64}, | |
| {type: KEY_UP, code: 0x5c, modifiers: 64} | |
| ]}, | |
| //ROW 2 | |
| //[97 = a] | |
| {keycode: 97, entry: [ | |
| {type: KEY_DOWN, code: 0x71, modifiers: 0}, | |
| {type: KEY_UP, code: 0x71, modifiers: 0} | |
| ]}, | |
| //[65 = A] | |
| {keycode: 65, entry: [ | |
| {type: KEY_DOWN, code: 0x51, modifiers: 64}, | |
| {type: KEY_UP, code: 0x51, modifiers: 64} | |
| ]}, | |
| //[122 = z] | |
| {keycode: 122, entry: [ | |
| {type: KEY_DOWN, code: 0x77, modifiers: 0}, | |
| {type: KEY_UP, code: 0x77, modifiers: 0} | |
| ]}, | |
| //[90 = Z] | |
| {keycode: 90, entry: [ | |
| {type: KEY_DOWN, code: 0x57, modifiers: 64}, | |
| {type: KEY_UP, code: 0x57, modifiers: 64} | |
| ]}, | |
| //[94 = ^] | |
| {keycode: 94, entry: [ | |
| {type: KEY_DOWN, code: 0x5b, modifiers: 0}, | |
| {type: KEY_UP, code: 0x5b, modifiers: 0} | |
| ]}, | |
| //[168 = ¨] | |
| {keycode: 168, entry: [ | |
| {type: KEY_DOWN, code: 0x5b, modifiers: 64}, | |
| {type: KEY_UP, code: 0x5b, modifiers: 64} | |
| ]}, | |
| //[36 = $] | |
| {keycode: 36, entry: [ | |
| {type: KEY_DOWN, code: 0x5d, modifiers: 0}, | |
| {type: KEY_UP, code: 0x5d, modifiers: 0} | |
| ]}, | |
| //[163 = £] | |
| {keycode: 163, entry: [ | |
| {type: KEY_DOWN, code: 0x5d, modifiers: 64}, | |
| {type: KEY_UP, code: 0x5d, modifiers: 64} | |
| ]}, | |
| //ROW 3 | |
| //[113 = q] | |
| {keycode: 113, entry: [ | |
| {type: KEY_DOWN, code: 0x61, modifiers: 0}, | |
| {type: KEY_UP, code: 0x61, modifiers: 0} | |
| ]}, | |
| //[81 = Q] | |
| {keycode: 81, entry: [ | |
| {type: KEY_DOWN, code: 0x41, modifiers: 64}, | |
| {type: KEY_UP, code: 0x41, modifiers: 64} | |
| ]}, | |
| //[109 = m] | |
| {keycode: 109, entry: [ | |
| {type: KEY_DOWN, code: 0x3b, modifiers: 0}, | |
| {type: KEY_UP, code: 0x3b, modifiers: 0} | |
| ]}, | |
| //[77 = M] | |
| {keycode: 77, entry: [ | |
| {type: KEY_DOWN, code: 0x3b, modifiers: 64}, | |
| {type: KEY_UP, code: 0x3b, modifiers: 64} | |
| ]}, | |
| //[249 = ù] | |
| {keycode: 249, entry: [ | |
| {type: KEY_DOWN, code: 0x27, modifiers: 0}, | |
| {type: KEY_UP, code: 0x27, modifiers: 0} | |
| ]}, | |
| //[37 = %] | |
| {keycode: 37, entry: [ | |
| {type: KEY_DOWN, code: 0x27, modifiers: 64}, | |
| {type: KEY_UP, code: 0x27, modifiers: 64} | |
| ]}, | |
| //ROW 4 | |
| //[60 = <] | |
| {keycode: 60, entry: [ | |
| {type: KEY_DOWN, code: 0xa6, modifiers: 0}, | |
| {type: KEY_UP, code: 0xa6, modifiers: 0} | |
| ]}, | |
| //[62 = >] | |
| {keycode: 62, entry: [ | |
| {type: KEY_DOWN, code: 0xa6, modifiers: 64}, | |
| {type: KEY_UP, code: 0xa6, modifiers: 64} | |
| ]}, | |
| //[119 = w] | |
| {keycode: 119, entry: [ | |
| {type: KEY_DOWN, code: 0x7a, modifiers: 0}, | |
| {type: KEY_UP, code: 0x7a, modifiers: 0} | |
| ]}, | |
| //[87 = W] | |
| {keycode: 87, entry: [ | |
| {type: KEY_DOWN, code: 0x5a, modifiers: 64}, | |
| {type: KEY_UP, code: 0x5a, modifiers: 64} | |
| ]}, | |
| //[44 = ,] | |
| {keycode: 44, entry: [ | |
| {type: KEY_DOWN, code: 0x6d, modifiers: 0}, | |
| {type: KEY_UP, code: 0x6d, modifiers: 0} | |
| ]}, | |
| //[63 = ?] | |
| {keycode: 63, entry: [ | |
| {type: KEY_DOWN, code: 0x4d, modifiers: 64}, | |
| {type: KEY_UP, code: 0x4d, modifiers: 64} | |
| ]}, | |
| //[59 = ;] | |
| {keycode: 59, entry: [ | |
| {type: KEY_DOWN, code: 0x2c, modifiers: 0}, | |
| {type: KEY_UP, code: 0x2c, modifiers: 0} | |
| ]}, | |
| //[46 = .] | |
| {keycode: 46, entry: [ | |
| {type: KEY_DOWN, code: 0x2c, modifiers: 64}, | |
| {type: KEY_UP, code: 0x2c, modifiers: 64} | |
| ]}, | |
| //[58 = :] | |
| {keycode: 58, entry: [ | |
| {type: KEY_DOWN, code: 0x2e, modifiers: 0}, | |
| {type: KEY_UP, code: 0x2e, modifiers: 0} | |
| ]}, | |
| //[47 = /] | |
| {keycode: 47, entry: [ | |
| {type: KEY_DOWN, code: 0x2e, modifiers: 64}, | |
| {type: KEY_UP, code: 0x2e, modifiers: 64} | |
| ]}, | |
| //[33 = !] | |
| {keycode: 33, entry: [ | |
| {type: KEY_DOWN, code: 0x2f, modifiers: 0}, | |
| {type: KEY_UP, code: 0x2f, modifiers: 0} | |
| ]}, | |
| //[167 = §] | |
| {keycode: 167, entry: [ | |
| {type: KEY_DOWN, code: 0x2f, modifiers: 64}, | |
| {type: KEY_UP, code: 0x2f, modifiers: 64} | |
| ]}, | |
| ] | |
| }} | |
| ] |