diff options
Diffstat (limited to 'keyboards/converter/sun_usb')
-rw-r--r-- | keyboards/converter/sun_usb/info.json | 11 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/led.c | 32 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/matrix.c | 181 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/readme.md | 89 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/rules.mk | 25 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type3/info.json | 103 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type3/rules.mk | 0 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type3/type3.h | 63 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type5/info.json | 375 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md | 12 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type5/rules.mk | 0 | ||||
-rw-r--r-- | keyboards/converter/sun_usb/type5/type5.h | 148 |
13 files changed, 0 insertions, 1041 deletions
diff --git a/keyboards/converter/sun_usb/info.json b/keyboards/converter/sun_usb/info.json deleted file mode 100644 index 691d0d1953..0000000000 --- a/keyboards/converter/sun_usb/info.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "keyboard_name": "Sun Keyboard Converter", - "manufacturer": "QMK", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0xFEED", - "pid": "0x3333", - "device_version": "1.0.0" - } -} diff --git a/keyboards/converter/sun_usb/led.c b/keyboards/converter/sun_usb/led.c deleted file mode 100644 index f8d183fd48..0000000000 --- a/keyboards/converter/sun_usb/led.c +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2012 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include QMK_KEYBOARD_H -#include "uart.h" - -void led_set(uint8_t usb_led) -{ - uint8_t sun_led = 0; - if (usb_led & (1<<USB_LED_NUM_LOCK)) sun_led |= (1<<0); - if (usb_led & (1<<USB_LED_COMPOSE)) sun_led |= (1<<1); - if (usb_led & (1<<USB_LED_SCROLL_LOCK)) sun_led |= (1<<2); - if (usb_led & (1<<USB_LED_CAPS_LOCK)) sun_led |= (1<<3); - xprintf("LED: %02X\n", usb_led); - - uart_write(0x0E); - uart_write(sun_led); -} diff --git a/keyboards/converter/sun_usb/matrix.c b/keyboards/converter/sun_usb/matrix.c deleted file mode 100644 index 35ec391024..0000000000 --- a/keyboards/converter/sun_usb/matrix.c +++ /dev/null @@ -1,181 +0,0 @@ -/* -Copyright 2012 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include QMK_KEYBOARD_H -#include "uart.h" - -/* - * Matrix Array usage: - * - * ROW: 16(4bits) - * COL: 8(3bits) - * - * 8bit wide - * +---------+ - * 0|00 ... 07| - * 1|08 ... 0F| - * :| ... | - * :| ... | - * E|70 ... 77| - * F|78 ... 7F| - * +---------+ - */ -static uint8_t matrix[MATRIX_ROWS]; -#define ROW(code) ((code>>3)&0xF) -#define COL(code) (code&0x07) - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - /* DDRD |= (1<<6); */ - /* PORTD |= (1<<6); */ - debug_enable = true; - - uart_init(1200); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; - - /* // wait for keyboard coming up */ - /* // otherwise LED status update fails */ - /* print("Reseting "); */ - /* while (1) { */ - /* print("."); */ - /* while (uart_read()); */ - /* uart_write(0x01); */ - /* _delay_ms(500); */ - /* if (uart_read() == 0xFF) { */ - /* _delay_ms(500); */ - /* if (uart_read() == 0x04) */ - /* break; */ - /* } */ - /* } */ - /* print(" Done\n"); */ - - /* PORTD &= ~(1<<6); */ - - matrix_init_quantum(); - return; -} - -uint8_t matrix_scan(void) -{ - uint8_t code; - code = uart_read(); - if (!code) return 0; - - debug_hex(code); debug(" "); - - switch (code) { - case 0xFF: // reset success: FF 04 - print("reset: "); - _delay_ms(500); - code = uart_read(); - xprintf("%02X\n", code); - if (code == 0x04) { - // LED status - led_set(host_keyboard_leds()); - } - return 0; - case 0xFE: // layout: FE <layout> - print("layout: "); - _delay_ms(500); - xprintf("%02X\n", uart_read()); - return 0; - case 0x7E: // reset fail: 7E 01 - print("reset fail: "); - _delay_ms(500); - xprintf("%02X\n", uart_read()); - return 0; - case 0x7F: - // all keys up - for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00; - return 0; - } - - if (code&0x80) { - // break code - if (matrix_is_on(ROW(code), COL(code))) { - matrix[ROW(code)] &= ~(1<<COL(code)); - } - } else { - // make code - if (!matrix_is_on(ROW(code), COL(code))) { - matrix[ROW(code)] |= (1<<COL(code)); - } - } - - matrix_scan_quantum(); - return code; -} - -inline -bool matrix_has_ghost(void) -{ - return false; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & (1<<col)); -} - -inline -uint8_t matrix_get_row(uint8_t row) -{ - return matrix[row]; -} - -void matrix_print(void) -{ - print("\nr/c 01234567\n"); - for (uint8_t row = 0; row < matrix_rows(); row++) { - print_hex8(row); print(": "); - print_bin_reverse8(matrix_get_row(row)); - print("\n"); - } -} diff --git a/keyboards/converter/sun_usb/readme.md b/keyboards/converter/sun_usb/readme.md deleted file mode 100644 index 69bc6ef04c..0000000000 --- a/keyboards/converter/sun_usb/readme.md +++ /dev/null @@ -1,89 +0,0 @@ -# Sun to USB keyboard protocol converter - -A converter for using non-USB Sun keyboards. - -Original code from the [TMK firmware](https://github.com/tmk/tmk_keyboard/tree/master/converter/sun_usb). Ported to QMK by [Yann Hodique](https://github.com/sigma). - -Keyboard Maintainer: [Yann Hodique](https://github.com/sigma) -Hardware Supported: See hardware section below -Hardware Availability: self-built - -Make example for this keyboard (after setting up your build environment): - - make converter/sun_usb/type5:default - -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. - - -## Hardware - -Target MCU is ATMega32u4 but other USB capable AVR will also work. The maintainer mostly uses Teensy 2.0 boards. -Supported keyboards: Sun Type 3 and 5 Keyboards, - -### Connector - -8Pin mini DIN - - ___ ___ - / |_| \ - / 8 7 6 \ - | 5 4 3 | - \_ 2 1 _/ - \_____/ - (receptacle) - - -Wiring: - - Pin mini DIN MCU - ---------------------------------- - 1 GND GND - 2 GND GND - 3 5V - 4 RX/TX(Mouse) - 5 RX PD3 - 6 TX PD2 - 7 GND GND - 8 5V VCC - - -### Protocol - - Signal: Asynchronous, Negative logic, 1200baud, No Flow control - Frame format: 1-Start bit, 8-Data bits, No-Parity, 1-Stop bit - - AVR USART engine expects positive logic while Sun keyboard signal is negative. - To use AVR UART engine you need external inverter in front of RX and TX pin. - Otherwise you can software serial routine to communicate the keyboard. - -This converter uses software method, you doesn't need any inverter part. - - -Commands From System To Keyboard - - 0x01 Reset - Keyboard responds with following byte sequence: - Success: 0xFF 0x04 0x7F - Fail: 0x7E 0x01 0x7F - 0x02 Bell On - 0x03 Bell Off - 0x0A Click On - 0x0B Click Off - 0x0E LED - followed by LED status byte: - bit: 3 2 1 0 - LED: CapsLk ScrLk Compose NumLk - 0x0F Layout - Keyboard responds with 'Layout Response' 0xFE 0xXX - -Commands From Keyboard To System - - 0x7F Idle - means no keys pressed. - 0xFE Layout Response - 0xFF Reset Response(followed by 0x04) - -References - -* http://kentie.net/article/sunkbd/page2.htm -* http://kentie.net/article/sunkbd/KBD.pdf diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk deleted file mode 100644 index d25bcc7ffa..0000000000 --- a/keyboards/converter/sun_usb/rules.mk +++ /dev/null @@ -1,25 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = lufa-dfu - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -#HARDWARE_SERIAL = yes -CUSTOM_MATRIX = yes - -SRC += matrix.c led.c -QUANTUM_LIB_SRC += uart.c - -DEFAULT_FOLDER = converter/sun_usb/type5 diff --git a/keyboards/converter/sun_usb/type3/info.json b/keyboards/converter/sun_usb/type3/info.json deleted file mode 100644 index 383d7d65e5..0000000000 --- a/keyboards/converter/sun_usb/type3/info.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "layouts": { - "LAYOUT": { - "layout": [ - {"label":"STOP", "x":0, "y":0}, - {"label":"AGAIN", "x":1, "y":0}, - {"label":"CAPS LOCK", "x":2.5, "y":0}, - {"label":"F2", "x":3.5, "y":0}, - {"label":"F3", "x":4.5, "y":0, "w":2}, - {"label":"F4", "x":6.5, "y":0, "w":2}, - {"label":"F5", "x":8.5, "y":0, "w":2}, - {"label":"F6", "x":10.5, "y":0, "w":2}, - {"label":"F7", "x":12.5, "y":0, "w":2}, - {"label":"F8", "x":14.5, "y":0}, - {"label":"F9", "x":15.5, "y":0}, - {"label":"BACKSPACE", "x":16.5, "y":0}, - {"label":"R1", "x":18, "y":0}, - {"label":"R2", "x":19, "y":0}, - {"label":"R3", "x":20, "y":0}, - {"label":"PROPS", "x":0, "y":1}, - {"label":"UNDO", "x":1, "y":1}, - {"label":"ESC", "x":2.5, "y":1}, - {"label":"1", "x":3.5, "y":1}, - {"label":"2", "x":4.5, "y":1}, - {"label":"3", "x":5.5, "y":1}, - {"label":"4", "x":6.5, "y":1}, - {"label":"5", "x":7.5, "y":1}, - {"label":"6", "x":8.5, "y":1}, - {"label":"7", "x":9.5, "y":1}, - {"label":"8", "x":10.5, "y":1}, - {"label":"9", "x":11.5, "y":1}, - {"label":"0", "x":12.5, "y":1}, - {"label":"MINUS", "x":13.5, "y":1}, - {"label":"EQUAL", "x":14.5, "y":1}, - {"label":"BACKSLASH", "x":15.5, "y":1}, - {"label":"GRAVE", "x":16.5, "y":1}, - {"label":"R4", "x":18, "y":1}, - {"label":"R5", "x":19, "y":1}, - {"label":"R6", "x":20, "y":1}, - {"label":"FRONT", "x":0, "y":2}, - {"label":"COPY", "x":1, "y":2}, - {"label":"TAB", "x":2.5, "y":2, "w":1.5}, - {"label":"Q", "x":4, "y":2}, - {"label":"W", "x":5, "y":2}, - {"label":"E", "x":6, "y":2}, - {"label":"R", "x":7, "y":2}, - {"label":"T", "x":8, "y":2}, - {"label":"Y", "x":9, "y":2}, - {"label":"U", "x":10, "y":2}, - {"label":"I", "x":11, "y":2}, - {"label":"O", "x":12, "y":2}, - {"label":"P", "x":13, "y":2}, - {"label":"LBRACKET", "x":14, "y":2}, - {"label":"RBRACKET", "x":15, "y":2}, - {"label":"DELETE", "x":16, "y":2, "w":1.5}, - {"label":"R7", "x":18, "y":2}, - {"label":"R8", "x":19, "y":2}, - {"label":"R9", "x":20, "y":2}, - {"label":"OPEN", "x":0, "y":3}, - {"label":"PASTE", "x":1, "y":3}, - {"label":"CONTROL", "x":2.5, "y":3, "w":1.75}, - {"label":"A", "x":4.25, "y":3}, - {"label":"S", "x":5.25, "y":3}, - {"label":"D", "x":6.25, "y":3}, - {"label":"F", "x":7.25, "y":3}, - {"label":"G", "x":8.25, "y":3}, - {"label":"H", "x":9.25, "y":3}, - {"label":"J", "x":10.25, "y":3}, - {"label":"K", "x":11.25, "y":3}, - {"label":"L", "x":12.25, "y":3}, - {"label":"SEMICOLON", "x":13.25, "y":3}, - {"label":"QUOTE", "x":14.25, "y":3}, - {"label":"RETURN", "x":15.25, "y":3, "w":2.25}, - {"label":"R10", "x":18, "y":3}, - {"label":"R11", "x":19, "y":3}, - {"label":"R12", "x":20, "y":3}, - {"label":"FIND", "x":0, "y":4}, - {"label":"CUT", "x":1, "y":4}, - {"label":"LSHIFT", "x":2.5, "y":4, "w":2.25}, - {"label":"Z", "x":4.75, "y":4}, - {"label":"X", "x":5.75, "y":4}, - {"label":"C", "x":6.75, "y":4}, - {"label":"V", "x":7.75, "y":4}, - {"label":"B", "x":8.75, "y":4}, - {"label":"N", "x":9.75, "y":4}, - {"label":"M", "x":10.75, "y":4}, - {"label":"COMMA", "x":11.75, "y":4}, - {"label":"PERIOD", "x":12.75, "y":4}, - {"label":"SLASH", "x":13.75, "y":4}, - {"label":"RSHIFT", "x":14.75, "y":4, "w":1.75}, - {"label":"LINE FEED", "x":16.5, "y":4}, - {"label":"R13", "x":18, "y":4}, - {"label":"R14", "x":19, "y":4}, - {"label":"R15", "x":20, "y":4}, - {"label":"CAPS", "x":2.5, "y":5, "w":1.25}, - {"label":"LEFT", "x":3.75, "y":5, "w":1.5}, - {"label":"SPACE", "x":5.25, "y":5, "w":9}, - {"label":"RIGHT", "x":14.25, "y":5, "w":1.5}, - {"label":"ALTERNATE", "x":15.75, "y":5, "w":1.75} - ] - } - } -} diff --git a/keyboards/converter/sun_usb/type3/rules.mk b/keyboards/converter/sun_usb/type3/rules.mk deleted file mode 100644 index e69de29bb2..0000000000 --- a/keyboards/converter/sun_usb/type3/rules.mk +++ /dev/null diff --git a/keyboards/converter/sun_usb/type3/type3.h b/keyboards/converter/sun_usb/type3/type3.h deleted file mode 100644 index b84a703d6b..0000000000 --- a/keyboards/converter/sun_usb/type3/type3.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2012 Jun Wako <wakojun@gmail.com> - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#pragma once - -#include "quantum.h" - -#define XXX KC_NO - -/* Sun type 3 keyboard -,-------. ,-----------------------------------------------------------. ,-----------. -| 01| 03| | 05| 06| 08| 0A| 0C| 0E| 10| 11| 12| 2B| | 15| 16| 17| -|-------| |-----------------------------------------------------------| |-----------| -| 19| 1A| | 1D| 1E| 1F| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 58| 2A| | 2D| 2E| 2F| -|-------| |-----------------------------------------------------------| |-----------| -| 31| 33| | 35 | 36| 37| 38| 39| 3A| 3B| 3C| 3D| 3E| 3F| 40| 41| 42 | | 44| 45| 46| -|-------| |-----------------------------------------------------------| |-----------| -| 48| 49| | 4C | 4D| 4E| 4F| 50| 51| 52| 53| 54| 55| 56| 57| 59 | | 5B| 5C| 5D| -|-------| |-----------------------------------------------------------| |-----------| -| 5F| 61| | 63 | 64| 65| 66| 67| 68| 69| 6A| 6B| 6C| 6D| 6E| 6F| | 70| 71| 72| -`-------' |-----------------------------------------------------------| `-----------' - | 77 | 78 | 79 | 7A | 13 | - `-----------------------------------------------------------' -*/ -#define LAYOUT( \ - k01, k03, k05, k06, k08, k0A, k0C, k0E, k10, k11, k12, k2B, k15, k16, k17, \ - k19, k1A, k1D, k1E, k1F, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k58, k2A, k2D, k2E, k2F, \ - k31, k33, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k40, k41, k42, k44, k45, k46, \ - k48, k49, k4C, k4D, k4E, k4F, k50, k51, k52, k53, k54, k55, k56, k57, k59, k5B, k5C, k5D, \ - k5F, k61, k63, k64, k65, k66, k67, k68, k69, k6A, k6B, k6C, k6D, k6E, k6F, k70, k71, k72, \ - k77, k78, k79, k7A, k13 \ -) { \ - { XXX, k01, XXX, k03, XXX, k05, k06, XXX }, \ - { k08, XXX, k0A, XXX, k0C, XXX, k0E, XXX }, \ - { k10, k11, k12, k13, XXX, k15, k16, k17 }, \ - { XXX, k19, k1A, XXX, XXX, k1D, k1E, k1F }, \ - { k20, k21, k22, k23, k24, k25, k26, k27 }, \ - { k28, k29, k2A, k2B, XXX, k2D, k2E, k2F }, \ - { XXX, k31, XXX, k33, XXX, k35, k36, k37 }, \ - { k38, k39, k3A, k3B, k3C, k3D, k3E, k3F }, \ - { k40, k41, k42, XXX, k44, k45, k46, XXX }, \ - { k48, k49, XXX, XXX, k4C, k4D, k4E, k4F }, \ - { k50, k51, k52, k53, k54, k55, k56, k57 }, \ - { k58, k59, XXX, k5B, k5C, k5D, XXX, k5F }, \ - { XXX, k61, XXX, k63, k64, k65, k66, k67 }, \ - { k68, k69, k6A, k6B, k6C, k6D, k6E, k6F }, \ - { k70, k71, k72, XXX, XXX, XXX, XXX, k77 }, \ - { k78, k79, k7A, XXX, XXX, XXX, XXX, XXX } \ -} diff --git a/keyboards/converter/sun_usb/type5/info.json b/keyboards/converter/sun_usb/type5/info.json deleted file mode 100644 index 23d80c4121..0000000000 --- a/keyboards/converter/sun_usb/type5/info.json +++ /dev/null @@ -1,375 +0,0 @@ -{ - "layouts": { - "LAYOUT_jp_unix": { - "layout": [ - {"label":"HELP", "x":0, "y":0, "w":2}, - {"label":"NO", "x":2.25, "y":0}, - {"label":"F1", "x":4.25, "y":0}, - {"label":"F2", "x":5.25, "y":0}, - {"label":"F3", "x":6.25, "y":0}, - {"label":"F4", "x":7.25, "y":0}, - {"label":"F5", "x":8.75, "y":0}, - {"label":"F6", "x":9.75, "y":0}, - {"label":"F7", "x":10.75, "y":0}, - {"label":"F8", "x":11.75, "y":0}, - {"label":"F9", "x":13.25, "y":0}, - {"label":"F10", "x":14.25, "y":0}, - {"label":"F11", "x":15.25, "y":0}, - {"label":"F12", "x":16.25, "y":0}, - {"label":"PRINT SCREEN", "x":17.5, "y":0}, - {"label":"SCROLL LOCK", "x":18.5, "y":0}, - {"label":"PAUSE", "x":19.5, "y":0}, - {"label":"MUTE", "x":20.75, "y":0}, - {"label":"VOLD", "x":21.75, "y":0}, - {"label":"VOLU", "x":22.75, "y":0}, - {"label":"PWR", "x":23.75, "y":0}, - {"label":"STOP", "x":0, "y":2}, - {"label":"AGAIN", "x":1, "y":2}, - {"label":"ESC", "x":2.25, "y":2}, - {"label":"1", "x":3.25, "y":2}, - {"label":"2", "x":4.25, "y":2}, - {"label":"3", "x":5.25, "y":2}, - {"label":"4", "x":6.25, "y":2}, - {"label":"5", "x":7.25, "y":2}, - {"label":"6", "x":8.25, "y":2}, - {"label":"7", "x":9.25, "y":2}, - {"label":"8", "x":10.25, "y":2}, - {"label":"9", "x":11.25, "y":2}, - {"label":"0", "x":12.25, "y":2}, - {"label":"MINUS", "x":13.25, "y":2}, - {"label":"EQUAL", "x":14.25, "y":2}, - {"label":"BACKSLASH", "x":15.25, "y":2}, - {"label":"GRAVE", "x":16.25, "y":2}, - {"label":"INSERT", "x":17.5, "y":2}, - {"label":"HOME", "x":18.5, "y":2}, - {"label":"PAGE UP", "x":19.5, "y":2}, - {"label":"NUM LOCK", "x":20.75, "y":2}, - {"label":"PSLASH", "x":21.75, "y":2}, - {"label":"PASTERISK", "x":22.75, "y":2}, - {"label":"PMINUS", "x":23.75, "y":2}, - {"label":"MENU", "x":0, "y":3}, - {"label":"UNDO", "x":1, "y":3}, - {"label":"TAB", "x":2.25, "y":3, "w":1.5}, - {"label":"Q", "x":3.75, "y":3}, - {"label":"W", "x":4.75, "y":3}, - {"label":"E", "x":5.75, "y":3}, - {"label":"R", "x":6.75, "y":3}, - {"label":"T", "x":7.75, "y":3}, - {"label":"Y", "x":8.75, "y":3}, - {"label":"U", "x":9.75, "y":3}, - {"label":"I", "x":10.75, "y":3}, - {"label":"O", "x":11.75, "y":3}, - {"label":"P", "x":12.75, "y":3}, - {"label":"LBRACKET", "x":13.75, "y":3}, - {"label":"RBRACKET", "x":14.75, "y":3}, - {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5}, - {"label":"DELETE", "x":17.5, "y":3}, - {"label":"END", "x":18.5, "y":3}, - {"label":"PAGE DOWN", "x":19.5, "y":3}, - {"label":"P7", "x":20.75, "y":3}, - {"label":"P8", "x":21.75, "y":3}, - {"label":"P9", "x":22.75, "y":3}, - {"label":"PPLUS", "x":23.75, "y":3, "h":2}, - {"label":"SELECT", "x":0, "y":4}, - {"label":"COPY", "x":1, "y":4}, - {"label":"LCTRL", "x":2.25, "y":4, "w":1.75}, - {"label":"A", "x":4, "y":4}, - {"label":"S", "x":5, "y":4}, - {"label":"D", "x":6, "y":4}, - {"label":"F", "x":7, "y":4}, - {"label":"G", "x":8, "y":4}, - {"label":"H", "x":9, "y":4}, - {"label":"J", "x":10, "y":4}, - {"label":"K", "x":11, "y":4}, - {"label":"L", "x":12, "y":4}, - {"label":"SEMICOLON", "x":13, "y":4}, - {"label":"QUOTE", "x":14, "y":4}, - {"label":"ENTER", "x":15, "y":4, "w":2.25}, - {"label":"P4", "x":20.75, "y":4}, - {"label":"P5", "x":21.75, "y":4}, - {"label":"P6", "x":22.75, "y":4}, - {"label":"EXECUTE", "x":0, "y":5}, - {"label":"PASTE", "x":1, "y":5}, - {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25}, - {"label":"Z", "x":4.5, "y":5}, - {"label":"X", "x":5.5, "y":5}, - {"label":"C", "x":6.5, "y":5}, - {"label":"V", "x":7.5, "y":5}, - {"label":"B", "x":8.5, "y":5}, - {"label":"N", "x":9.5, "y":5}, - {"label":"M", "x":10.5, "y":5}, - {"label":"COMMA", "x":11.5, "y":5}, - {"label":"PERIOD", "x":12.5, "y":5}, - {"label":"SLASH", "x":13.5, "y":5}, - {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75}, - {"label":"UP", "x":18.5, "y":5}, - {"label":"P1", "x":20.75, "y":5}, - {"label":"P2", "x":21.75, "y":5}, - {"label":"P3", "x":22.75, "y":5}, - {"label":"PENTER", "x":23.75, "y":5, "h":2}, - {"label":"FIND", "x":0, "y":6}, - {"label":"CUT", "x":1, "y":6}, - {"label":"CAPS LOCK", "x":2.25, "y":6}, - {"label":"LALT", "x":3.25, "y":6}, - {"label":"LGUI", "x":4.25, "y":6}, - {"label":"HENKAN", "x":5.25, "y":6, "w":1.5}, - {"label":"SPACE", "x":6.75, "y":6, "w":5}, - {"label":"MUHENKAN", "x":11.75, "y":6, "w":1.5}, - {"label":"KANA", "x":13.25, "y":6}, - {"label":"RGUI", "x":14.25, "y":6}, - {"label":"APP", "x":15.25, "y":6}, - {"label":"RALT", "x":16.25, "y":6}, - {"label":"LEFT", "x":17.5, "y":6}, - {"label":"DOWN", "x":18.5, "y":6}, - {"label":"RIGHT", "x":19.5, "y":6}, - {"label":"P0", "x":20.75, "y":6, "w":2}, - {"label":"PDOT", "x":22.75, "y":6} - ] - }, - "LAYOUT_us_unix": { - "layout": [ - {"label":"HELP", "x":0, "y":0, "w":2}, - {"label":"NO", "x":2.25, "y":0}, - {"label":"F1", "x":4.25, "y":0}, - {"label":"F2", "x":5.25, "y":0}, - {"label":"F3", "x":6.25, "y":0}, - {"label":"F4", "x":7.25, "y":0}, - {"label":"F5", "x":8.75, "y":0}, - {"label":"F6", "x":9.75, "y":0}, - {"label":"F7", "x":10.75, "y":0}, - {"label":"F8", "x":11.75, "y":0}, - {"label":"F9", "x":13.25, "y":0}, - {"label":"F10", "x":14.25, "y":0}, - {"label":"F11", "x":15.25, "y":0}, - {"label":"F12", "x":16.25, "y":0}, - {"label":"PRINT SCREEN", "x":17.5, "y":0}, - {"label":"SCROLL LOCK", "x":18.5, "y":0}, - {"label":"PAUSE", "x":19.5, "y":0}, - {"label":"MUTE", "x":20.75, "y":0}, - {"label":"VOLD", "x":21.75, "y":0}, - {"label":"VOLU", "x":22.75, "y":0}, - {"label":"PWR", "x":23.75, "y":0}, - {"label":"STOP", "x":0, "y":2}, - {"label":"AGAIN", "x":1, "y":2}, - {"label":"ESC", "x":2.25, "y":2}, - {"label":"1", "x":3.25, "y":2}, - {"label":"2", "x":4.25, "y":2}, - {"label":"3", "x":5.25, "y":2}, - {"label":"4", "x":6.25, "y":2}, - {"label":"5", "x":7.25, "y":2}, - {"label":"6", "x":8.25, "y":2}, - {"label":"7", "x":9.25, "y":2}, - {"label":"8", "x":10.25, "y":2}, - {"label":"9", "x":11.25, "y":2}, - {"label":"0", "x":12.25, "y":2}, - {"label":"MINUS", "x":13.25, "y":2}, - {"label":"EQUAL", "x":14.25, "y":2}, - {"label":"BACKSLASH", "x":15.25, "y":2}, - {"label":"GRAVE", "x":16.25, "y":2}, - {"label":"INSERT", "x":17.5, "y":2}, - {"label":"HOME", "x":18.5, "y":2}, - {"label":"PAGE UP", "x":19.5, "y":2}, - {"label":"NUM LOCK", "x":20.75, "y":2}, - {"label":"PSLASH", "x":21.75, "y":2}, - {"label":"PASTERISK", "x":22.75, "y":2}, - {"label":"PMINUS", "x":23.75, "y":2}, - {"label":"MENU", "x":0, "y":3}, - {"label":"UNDO", "x":1, "y":3}, - {"label":"TAB", "x":2.25, "y":3, "w":1.5}, - {"label":"Q", "x":3.75, "y":3}, - {"label":"W", "x":4.75, "y":3}, - {"label":"E", "x":5.75, "y":3}, - {"label":"R", "x":6.75, "y":3}, - {"label":"T", "x":7.75, "y":3}, - {"label":"Y", "x":8.75, "y":3}, - {"label":"U", "x":9.75, "y":3}, - {"label":"I", "x":10.75, "y":3}, - {"label":"O", "x":11.75, "y":3}, - {"label":"P", "x":12.75, "y":3}, - {"label":"LBRACKET", "x":13.75, "y":3}, - {"label":"RBRACKET", "x":14.75, "y":3}, - {"label":"BACKSPACE", "x":15.75, "y":3, "w":1.5}, - {"label":"DELETE", "x":17.5, "y":3}, - {"label":"END", "x":18.5, "y":3}, - {"label":"PAGE DOWN", "x":19.5, "y":3}, - {"label":"P7", "x":20.75, "y":3}, - {"label":"P8", "x":21.75, "y":3}, - {"label":"P9", "x":22.75, "y":3}, - {"label":"PPLUS", "x":23.75, "y":3, "h":2}, - {"label":"SELECT", "x":0, "y":4}, - {"label":"COPY", "x":1, "y":4}, - {"label":"LCTRL", "x":2.25, "y":4, "w":1.75}, - {"label":"A", "x":4, "y":4}, - {"label":"S", "x":5, "y":4}, - {"label":"D", "x":6, "y":4}, - {"label":"F", "x":7, "y":4}, - {"label":"G", "x":8, "y":4}, - {"label":"H", "x":9, "y":4}, - {"label":"J", "x":10, "y":4}, - {"label":"K", "x":11, "y":4}, - {"label":"L", "x":12, "y":4}, - {"label":"SEMICOLON", "x":13, "y":4}, - {"label":"QUOTE", "x":14, "y":4}, - {"label":"ENTER", "x":15, "y":4, "w":2.25}, - {"label":"P4", "x":20.75, "y":4}, - {"label":"P5", "x":21.75, "y":4}, - {"label":"P6", "x":22.75, "y":4}, - {"label":"EXECUTE", "x":0, "y":5}, - {"label":"PASTE", "x":1, "y":5}, - {"label":"LSHIFT", "x":2.25, "y":5, "w":2.25}, - {"label":"Z", "x":4.5, "y":5}, - {"label":"X", "x":5.5, "y":5}, - {"label":"C", "x":6.5, "y":5}, - {"label":"V", "x":7.5, "y":5}, - {"label":"B", "x":8.5, "y":5}, - {"label":"N", "x":9.5, "y":5}, - {"label":"M", "x":10.5, "y":5}, - {"label":"COMMA", "x":11.5, "y":5}, - {"label":"PERIOD", "x":12.5, "y":5}, - {"label":"SLASH", "x":13.5, "y":5}, - {"label":"RSHIFT", "x":14.5, "y":5, "w":2.75}, - {"label":"UP", "x":18.5, "y":5}, - {"label":"P1", "x":20.75, "y":5}, - {"label":"P2", "x":21.75, "y":5}, - {"label":"P3", "x":22.75, "y":5}, - {"label":"PENTER", "x":23.75, "y":5, "h":2}, - {"label":"FIND", "x":0, "y":6}, - {"label":"CUT", "x":1, "y":6}, - {"label":"CAPS LOCK", "x":2.25, "y":6, "w":1.75}, - {"label":"LALT", "x":4, "y":6}, - {"label":"LGUI", "x":5, "y":6}, - {"label":"SPACE", "x":6, "y":6, "w":8.25}, - {"label":"RGUI", "x":14.25, "y":6}, - {"label":"APP", "x":15.25, "y":6}, - {"label":"RALT", "x":16.25, "y":6}, - {"label":"LEFT", "x":17.5, "y":6}, - {"label":"DOWN", "x":18.5, "y":6}, - {"label":"RIGHT", "x":19.5, "y":6}, - {"label":"P0", "x":20.75, "y":6, "w":2}, - {"label":"PDOT", "x":22.75, "y":6} - ] - }, - "LAYOUT_ansi": { - "layout": [ - {"label":"HELP", "x":0, "y":0, "w":2}, - {"label":"ESC", "x":2.25, "y":0}, - {"label":"F1", "x":4.25, "y":0}, - {"label":"F2", "x":5.25, "y":0}, - {"label":"F3", "x":6.25, "y":0}, - {"label":"F4", "x":7.25, "y":0}, - {"label":"F5", "x":8.75, "y":0}, - {"label":"F6", "x":9.75, "y":0}, - {"label":"F7", "x":10.75, "y":0}, - {"label":"F8", "x":11.75, "y":0}, - {"label":"F9", "x":13.25, "y":0}, - {"label":"F10", "x":14.25, "y":0}, - {"label":"F11", "x":15.25, "y":0}, - {"label":"F12", "x":16.25, "y":0}, - {"label":"PRINT SCREEN", "x":17.5, "y":0}, - {"label":"SCROLL LOCK", "x":18.5, "y":0}, - {"label":"PAUSE", "x":19.5, "y":0}, - {"label":"MUTE", "x":20.75, "y":0}, - {"label":"VOLD", "x":21.75, "y":0}, - {"label":"VOLU", "x":22.75, "y":0}, - {"label":"PWR", "x":23.75, "y":0}, - {"label":"STOP", "x":0, "y":2}, - {"label":"AGAIN", "x":1, "y":2}, - {"label":"GRAVE", "x":2.25, "y":2}, - {"label":"1", "x":3.25, "y":2}, - {"label":"2", "x":4.25, "y":2}, - {"label":"3", "x":5.25, "y":2}, - {"label":"4", "x":6.25, "y":2}, - {"label":"5", "x":7.25, "y":2}, - {"label":"6", "x":8.25, "y":2}, - {"label":"7", "x":9.25, "y":2}, - {"label":"8", "x":10.25, "y":2}, - {"label":"9", "x":11.25, "y":2}, - {"label":"0", "x":12.25, "y":2}, - {"label":"MINUS", "x":13.25, "y":2}, - {"label":"EQUAL", "x":14.25, "y":2}, - {"label":"BACKSPACE", "x":15.25, "y":2, "w":2}, - {"label":"INSERT", "x":17.5, "y":2}, - {"label":"HOME", "x":18.5, "y":2}, - {"label":"PAGE UP", "x":19.5, "y":2}, - {"label":"NUM LOCK", "x":20.75, "y":2}, - {"label":"PSLASH", "x":21.75, "y":2}, - {"label":"PASTERISK", "x":22.75, "y":2}, - {"label":"PMINUS", "x":23.75, "y":2}, - {"label":"MENU", "x":0, "y":3}, - {"label":"UNDO", "x":1, "y":3}, - {"label":"TAB", "x":2.25, "y":3, "w":1.5}, - {"label":"Q", "x":3.75, "y":3}, - {"label":"W", "x":4.75, "y":3}, - {"label":"E", "x":5.75, "y":3}, - {"label":"R", "x":6.75, "y":3}, - {"label":"T", "x":7.75, "y":3}, - {"label":"Y", "x":8.75, "y":3}, - {"label":"U", "x":9.75, "y":3}, - {"label":"I", "x":10.75, "y":3}, - {"label":"O", "x":11.75, "y":3}, - {"label":"P", "x":12.75, "y":3}, - {"label":"LBRACKET", "x":13.75, "y":3}, - {"label":"RBRACKET", "x":14.75, "y":3}, - {"label":"BACKSLASH", "x":15.75, "y":3, "w":1.5}, - {"label":"DELETE", "x":17.5, "y":3}, - {"label":"END", "x":18.5, "y":3}, - {"label":"PAGE DOWN", "x":19.5, "y":3}, - {"label":"P7", "x":20.75, "y":3}, - {"label":"P8", "x":21.75, "y":3}, - {"label":"P9", "x":22.75, "y":3}, - {"label":"PPLUS", "x":23.75, "y":3, "h":2}, - {"label":"SELECT", "x":0, "y":4}, - {"label":"COPY", "x":1, "y":4}, - {"label":"CAPS LOCK", "x":2.25, "y":4, "w":1.75}, - {"label":"A", "x":4, "y":4}, - {"label":"S", "x":5, "y":4}, - {"label":"D", "x":6, "y":4}, - {"label":"F", "x":7, "y":4}, - {"label":"G", "x":8, "y":4}, - {"label":"H", "x":9, "y":4}, - {"label":"J", "x":10, "y":4}, - {"label":"K", "x":11, "y":4}, - {"label":"L", "x":12, "y":4}, - {"label":"SEMICOLON", "x":13, "y":4}, - {"label":"QUOTE", "x":14, "y":4}, - {"label":"ENTER", "x":15, "y":4, "w":2.25}, - {"label":"P4", "x":20.75, "y":4}, - {"label":"P5", "x":21.75, "y":4}, - {"label":"P6", "x":22.75, "y":4}, - {"label":"EXECUTE", "x":0, "y":5}, - {"l |