qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

keyboard.json (55437B)


      1 {
      2     "keyboard_name": "M0lly",
      3     "manufacturer": "The Key Company",
      4     "maintainer": "qmk",
      5     "usb": {
      6         "vid": "0x544B",
      7         "pid": "0x0004",
      8         "device_version": "0.0.1"
      9     },
     10     "features": {
     11         "backlight": true,
     12         "bootmagic": true,
     13         "command": true,
     14         "console": true,
     15         "extrakey": true,
     16         "mousekey": true,
     17         "nkro": true,
     18         "oled": true,
     19         "rgblight": true
     20     },
     21     "qmk": {
     22         "locking": {
     23             "enabled": true,
     24             "resync": true
     25         }
     26     },
     27     "matrix_pins": {
     28         "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0", "F5", "F6", "F7"],
     29         "rows": ["F2", "F1", "F0", "E1", "E0"]
     30     },
     31     "diode_direction": "COL2ROW",
     32     "backlight": {
     33         "pin": "B6",
     34         "breathing": true
     35     },
     36     "qmk_lufa_bootloader": {
     37         "esc_input": "F4",
     38         "esc_output": "A0",
     39         "led": "D2"
     40     },
     41     "indicators": {
     42         "caps_lock": "D3",
     43         "num_lock": "D2",
     44         "scroll_lock": "D4"
     45     },
     46     "rgblight": {
     47         "hue_steps": 5,
     48         "saturation_steps": 10,
     49         "brightness_steps": 10,
     50         "led_count": 30,
     51         "animations": {
     52             "breathing": true,
     53             "rainbow_mood": true,
     54             "rainbow_swirl": true,
     55             "snake": true,
     56             "knight": true,
     57             "christmas": true,
     58             "static_gradient": true,
     59             "rgb_test": true,
     60             "alternating": true,
     61             "twinkle": true
     62         }
     63     },
     64     "ws2812": {
     65         "pin": "D7"
     66     },
     67     "processor": "at90usb1286",
     68     "bootloader": "qmk-dfu",
     69     "layouts": {
     70         "LAYOUT_all": {
     71             "layout": [
     72                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
     73                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
     74                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
     75                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
     76                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
     77                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
     78                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
     79                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
     80                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
     81                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
     82                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
     83                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
     84                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
     85                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
     86                 {"label": "\u2298", "matrix": [0, 14], "x": 14, "y": 0},
     87 
     88                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
     89                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
     90                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
     91                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
     92 
     93                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
     94                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
     95                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
     96                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
     97                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
     98                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
     99                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    100                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    101                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    102                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    103                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    104                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    105                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    106                 {"label": "\\", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    107 
    108                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    109                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    110                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    111                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    112 
    113                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    114                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    115                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    116                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    117                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    118                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    119                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    120                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    121                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    122                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    123                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    124                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    125                 {"label": "\u2298", "matrix": [2, 12], "x": 12.75, "y": 2},
    126                 {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
    127 
    128                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    129                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    130                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    131                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    132 
    133                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    134                 {"label": "\u2298", "matrix": [3, 1], "x": 1.25, "y": 3},
    135                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    136                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    137                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    138                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    139                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    140                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    141                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    142                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    143                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    144                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    145                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    146                 {"label": "\u2298", "matrix": [3, 13], "x": 14, "y": 3},
    147 
    148                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    149                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    150                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    151                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    152 
    153                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    154                 {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    155                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    156                 {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
    157                 {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
    158                 {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    159                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    160                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
    161 
    162                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    163                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    164                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    165                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    166             ]
    167         },
    168         "LAYOUT_ansi": {
    169             "layout": [
    170                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    171                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    172                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    173                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    174                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    175                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    176                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    177                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    178                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    179                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    180                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    181                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    182                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    183                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
    184 
    185                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    186                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    187                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    188                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    189 
    190                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    191                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    192                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    193                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    194                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    195                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    196                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    197                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    198                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    199                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    200                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    201                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    202                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    203                 {"label": "\\", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    204 
    205                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    206                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    207                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    208                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    209 
    210                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    211                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    212                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    213                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    214                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    215                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    216                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    217                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    218                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    219                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    220                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    221                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    222                 {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
    223 
    224                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    225                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    226                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    227                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    228 
    229                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
    230                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    231                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    232                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    233                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    234                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    235                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    236                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    237                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    238                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    239                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    240                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
    241 
    242                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    243                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    244                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    245                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    246 
    247                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    248                 {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    249                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    250                 {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
    251                 {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
    252                 {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    253                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    254                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
    255 
    256                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    257                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    258                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    259                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    260             ]
    261         },
    262         "LAYOUT_ansi_split_bs_rshift": {
    263             "layout": [
    264                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    265                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    266                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    267                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    268                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    269                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    270                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    271                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    272                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    273                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    274                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    275                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    276                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    277                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
    278                 {"label": "\u2298", "matrix": [0, 14], "x": 14, "y": 0},
    279 
    280                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    281                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    282                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    283                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    284 
    285                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    286                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    287                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    288                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    289                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    290                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    291                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    292                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    293                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    294                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    295                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    296                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    297                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    298                 {"label": "\\", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    299 
    300                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    301                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    302                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    303                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    304 
    305                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    306                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    307                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    308                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    309                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    310                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    311                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    312                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    313                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    314                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    315                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    316                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    317                 {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
    318 
    319                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    320                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    321                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    322                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    323 
    324                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
    325                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    326                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    327                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    328                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    329                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    330                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    331                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    332                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    333                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    334                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    335                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    336                 {"label": "\u2298", "matrix": [3, 13], "x": 14, "y": 3},
    337 
    338                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    339                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    340                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    341                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    342 
    343                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    344                 {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    345                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    346                 {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
    347                 {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
    348                 {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    349                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    350                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
    351 
    352                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    353                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    354                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    355                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    356             ]
    357         },
    358         "LAYOUT_ansi_tsangan": {
    359             "layout": [
    360                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    361                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    362                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    363                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    364                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    365                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    366                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    367                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    368                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    369                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    370                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    371                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    372                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    373                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
    374 
    375                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    376                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    377                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    378                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    379 
    380                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    381                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    382                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    383                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    384                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    385                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    386                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    387                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    388                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    389                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    390                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    391                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    392                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    393                 {"label": "\\", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    394 
    395                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    396                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    397                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    398                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    399 
    400                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    401                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    402                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    403                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    404                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    405                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    406                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    407                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    408                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    409                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    410                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    411                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    412                 {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
    413 
    414                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    415                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    416                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    417                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    418 
    419                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
    420                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    421                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    422                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    423                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    424                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    425                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    426                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    427                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    428                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    429                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    430                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
    431 
    432                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    433                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    434                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    435                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    436 
    437                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    438                 {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4},
    439                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    440                 {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
    441                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    442                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4},
    443                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5},
    444 
    445                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    446                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    447                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    448                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    449             ]
    450         },
    451         "LAYOUT_ansi_tsangan_split_bs_rshift": {
    452             "layout": [
    453                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    454                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    455                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    456                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    457                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    458                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    459                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    460                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    461                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    462                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    463                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    464                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    465                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    466                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
    467                 {"label": "\u2298", "matrix": [0, 14], "x": 14, "y": 0},
    468 
    469                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    470                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    471                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    472                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    473 
    474                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    475                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    476                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    477                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    478                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    479                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    480                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    481                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    482                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    483                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    484                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    485                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    486                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    487                 {"label": "\\", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    488 
    489                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    490                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    491                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    492                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    493 
    494                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    495                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    496                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    497                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    498                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    499                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    500                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    501                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    502                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    503                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    504                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    505                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    506                 {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
    507 
    508                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    509                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    510                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    511                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    512 
    513                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
    514                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    515                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    516                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    517                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    518                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    519                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    520                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    521                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    522                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    523                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    524                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    525                 {"label": "\u2298", "matrix": [3, 13], "x": 14, "y": 3},
    526 
    527                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    528                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    529                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    530                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    531 
    532                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    533                 {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4},
    534                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    535                 {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
    536                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    537                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4},
    538                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5},
    539 
    540                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    541                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    542                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    543                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    544             ]
    545         },
    546         "LAYOUT_iso": {
    547             "layout": [
    548                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    549                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    550                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    551                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    552                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    553                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    554                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    555                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    556                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    557                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    558                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    559                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    560                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    561                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
    562 
    563                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    564                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    565                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    566                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    567 
    568                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    569                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    570                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    571                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    572                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    573                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    574                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    575                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    576                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    577                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    578                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    579                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    580                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    581 
    582                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    583                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    584                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    585                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    586 
    587                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    588                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    589                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    590                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    591                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    592                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    593                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    594                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    595                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    596                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    597                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    598                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    599                 {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
    600                 {"label": "\\", "matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    601 
    602                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    603                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    604                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    605                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    606 
    607                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    608                 {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
    609                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    610                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    611                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    612                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    613                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    614                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    615                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    616                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    617                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    618                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    619                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
    620 
    621                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    622                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    623                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    624                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    625 
    626                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    627                 {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    628                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    629                 {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
    630                 {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
    631                 {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    632                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    633                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
    634 
    635                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    636                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    637                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    638                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    639             ]
    640         },
    641         "LAYOUT_iso_split_bs_rshift": {
    642             "layout": [
    643                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    644                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    645                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    646                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    647                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    648                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    649                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    650                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    651                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    652                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    653                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    654                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    655                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    656                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
    657                 {"label": "\u2298", "matrix": [0, 14], "x": 14, "y": 0},
    658 
    659                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    660                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    661                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    662                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    663 
    664                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    665                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    666                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    667                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    668                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    669                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    670                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    671                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    672                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    673                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    674                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    675                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    676                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    677 
    678                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    679                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    680                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    681                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    682 
    683                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    684                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    685                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    686                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    687                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    688                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    689                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    690                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    691                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    692                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    693                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    694                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    695                 {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
    696                 {"label": "\\", "matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    697 
    698                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    699                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    700                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    701                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    702 
    703                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    704                 {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
    705                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    706                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    707                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    708                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    709                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    710                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    711                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    712                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    713                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    714                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    715                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    716                 {"label": "\u2298", "matrix": [3, 13], "x": 14, "y": 3},
    717 
    718                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    719                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    720                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    721                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    722 
    723                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    724                 {"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    725                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    726                 {"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
    727                 {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
    728                 {"label": "GUI", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    729                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    730                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25},
    731 
    732                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    733                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    734                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    735                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    736             ]
    737         },
    738         "LAYOUT_iso_tsangan": {
    739             "layout": [
    740                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    741                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    742                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    743                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    744                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    745                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    746                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    747                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    748                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    749                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    750                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    751                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    752                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    753                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
    754 
    755                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    756                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    757                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    758                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    759 
    760                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    761                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    762                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    763                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    764                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    765                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    766                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    767                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    768                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    769                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    770                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    771                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    772                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    773 
    774                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    775                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    776                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    777                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    778 
    779                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    780                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    781                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    782                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    783                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    784                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    785                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    786                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    787                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    788                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    789                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    790                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    791                 {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
    792                 {"label": "\\", "matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    793 
    794                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    795                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    796                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    797                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    798 
    799                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    800                 {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
    801                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    802                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    803                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    804                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    805                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    806                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    807                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    808                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    809                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    810                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    811                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
    812 
    813                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    814                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    815                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    816                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    817 
    818                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    819                 {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4},
    820                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    821                 {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
    822                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    823                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4},
    824                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5},
    825 
    826                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    827                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    828                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    829                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    830             ]
    831         },
    832         "LAYOUT_iso_tsangan_split_bs_rshift": {
    833             "layout": [
    834                 {"label": "`", "matrix": [0, 0], "x": 0, "y": 0},
    835                 {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
    836                 {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
    837                 {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
    838                 {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
    839                 {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
    840                 {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
    841                 {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
    842                 {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
    843                 {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
    844                 {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
    845                 {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
    846                 {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
    847                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
    848                 {"label": "\u2298", "matrix": [0, 14], "x": 14, "y": 0},
    849 
    850                 {"label": "Num Lock", "matrix": [0, 15], "x": 15.5, "y": 0},
    851                 {"label": "/", "matrix": [0, 16], "x": 16.5, "y": 0},
    852                 {"label": "*", "matrix": [0, 17], "x": 17.5, "y": 0},
    853                 {"label": "-", "matrix": [0, 18], "x": 18.5, "y": 0},
    854 
    855                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    856                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    857                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    858                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    859                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    860                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    861                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    862                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    863                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    864                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    865                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    866                 {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
    867                 {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
    868 
    869                 {"label": "7", "matrix": [1, 15], "x": 15.5, "y": 1},
    870                 {"label": "8", "matrix": [1, 16], "x": 16.5, "y": 1},
    871                 {"label": "9", "matrix": [1, 17], "x": 17.5, "y": 1},
    872                 {"label": "\u2298", "matrix": [1, 18], "x": 18.5, "y": 1},
    873 
    874                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    875                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    876                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    877                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    878                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    879                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    880                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    881                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    882                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    883                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    884                 {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
    885                 {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
    886                 {"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
    887                 {"label": "\\", "matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    888 
    889                 {"label": "4", "matrix": [2, 15], "x": 15.5, "y": 2},
    890                 {"label": "5", "matrix": [2, 16], "x": 16.5, "y": 2},
    891                 {"label": "6", "matrix": [2, 17], "x": 17.5, "y": 2},
    892                 {"label": "+", "matrix": [2, 18], "x": 18.5, "y": 2},
    893 
    894                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    895                 {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
    896                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    897                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    898                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    899                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    900                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    901                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    902                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    903                 {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
    904                 {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
    905                 {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
    906                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    907                 {"label": "\u2298", "matrix": [3, 13], "x": 14, "y": 3},
    908 
    909                 {"label": "1", "matrix": [3, 15], "x": 15.5, "y": 3},
    910                 {"label": "2", "matrix": [3, 16], "x": 16.5, "y": 3},
    911                 {"label": "3", "matrix": [3, 17], "x": 17.5, "y": 3},
    912                 {"label": "\u2298", "matrix": [3, 18], "x": 18.5, "y": 3},
    913 
    914                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    915                 {"label": "GUI", "matrix": [4, 1], "x": 1.5, "y": 4},
    916                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    917                 {"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
    918                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    919                 {"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4},
    920                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5},
    921 
    922                 {"label": "0", "matrix": [4, 15], "x": 15.5, "y": 4},
    923                 {"label": "\u2298", "matrix": [4, 16], "x": 16.5, "y": 4},
    924                 {"label": ".", "matrix": [4, 17], "x": 17.5, "y": 4},
    925                 {"label": "Enter", "matrix": [4, 18], "x": 18.5, "y": 4}
    926             ]
    927         }
    928     }
    929 }