| /* |
| 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} |
| ]}, |
| ] |
| }} |
| ] |