qmk_firmware

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

keyboard.json (46932B)


      1 {
      2     "manufacturer": "KBDFans",
      3     "keyboard_name": "TOFU60",
      4     "maintainer": "moyi4681",
      5     "bootloader": "rp2040",
      6     "diode_direction": "COL2ROW",
      7     "features": {
      8         "bootmagic": true,
      9         "extrakey": true,
     10         "mousekey": true,
     11         "nkro": true
     12     },
     13     "indicators": {
     14         "caps_lock": "GP28"
     15     },
     16     "matrix_pins": {
     17         "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"],
     18         "rows": ["GP4", "GP3", "GP17", "GP24", "GP25"]
     19     },
     20     "processor": "RP2040",
     21     "usb": {
     22         "device_version": "0.0.1",
     23         "pid": "0x6071",
     24         "vid": "0x4B42"
     25     },
     26     "community_layouts": [
     27         "60_ansi",
     28         "60_ansi_split_bs_rshift",
     29         "60_ansi_tsangan",
     30         "60_ansi_tsangan_split_bs_rshift",
     31         "60_hhkb",
     32         "60_iso",
     33         "60_iso_split_bs_rshift",
     34         "60_iso_tsangan",
     35         "60_iso_tsangan_split_bs_rshift"
     36     ],
     37     "layout_aliases": {
     38         "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
     39     },
     40     "layouts": {
     41         "LAYOUT_60_ansi": {
     42             "layout": [
     43                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
     44                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
     45                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
     46                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
     47                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
     48                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
     49                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
     50                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
     51                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
     52                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
     53                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
     54                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
     55                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
     56                 { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
     57 
     58                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
     59                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
     60                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
     61                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
     62                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
     63                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
     64                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
     65                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
     66                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
     67                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
     68                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
     69                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
     70                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
     71                 { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
     72 
     73                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
     74                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
     75                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
     76                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
     77                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
     78                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
     79                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
     80                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
     81                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
     82                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
     83                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
     84                 { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
     85                 { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
     86 
     87                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
     88                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
     89                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
     90                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
     91                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
     92                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
     93                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
     94                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
     95                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
     96                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
     97                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
     98                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
     99 
    100                 { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
    101                 { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
    102                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
    103                 { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
    104                 { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
    105                 { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
    106                 { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
    107                 { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
    108             ]
    109         },
    110         "LAYOUT_60_ansi_split_bs_rshift": {
    111             "layout": [
    112                 {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
    113                 {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
    114                 {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
    115                 {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
    116                 {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
    117                 {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
    118                 {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
    119                 {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
    120                 {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
    121                 {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
    122                 {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
    123                 {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
    124                 {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
    125                 {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
    126                 {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
    127 
    128                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    129                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    130                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    131                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    132                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    133                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    134                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    135                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    136                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    137                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    138                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    139                 {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
    140                 {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
    141                 {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
    142 
    143                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    144                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    145                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    146                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    147                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    148                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    149                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    150                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    151                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    152                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    153                 {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
    154                 {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
    155                 {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
    156 
    157                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
    158                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    159                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    160                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    161                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    162                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    163                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    164                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    165                 {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
    166                 {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
    167                 {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
    168                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    169                 {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
    170 
    171                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    172                 {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    173                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    174                 {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
    175                 {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
    176                 {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    177                 {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    178                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
    179             ]
    180         },
    181         "LAYOUT_60_hhkb": {
    182             "layout": [
    183                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
    184                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
    185                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
    186                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
    187                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
    188                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
    189                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
    190                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
    191                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
    192                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
    193                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
    194                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
    195                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
    196                 { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 },
    197                 { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 },
    198 
    199                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
    200                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
    201                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
    202                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
    203                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
    204                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
    205                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
    206                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
    207                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
    208                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
    209                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
    210                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
    211                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
    212                 { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
    213 
    214                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
    215                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
    216                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
    217                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
    218                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
    219                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
    220                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
    221                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
    222                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
    223                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
    224                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
    225                 { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
    226                 { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
    227 
    228                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
    229                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
    230                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
    231                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
    232                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
    233                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
    234                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
    235                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
    236                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
    237                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
    238                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
    239                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
    240                 { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
    241                 { "label": "Ctrl", "matrix": [4, 1], "x": 1.5, "y": 4 },
    242                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
    243                 { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
    244                 { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
    245                 { "label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4 }
    246             ]
    247         },
    248         "LAYOUT_60_iso": {
    249             "layout": [
    250                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
    251                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
    252                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
    253                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
    254                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
    255                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
    256                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
    257                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
    258                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
    259                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
    260                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
    261                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
    262                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
    263                 { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
    264 
    265                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
    266                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
    267                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
    268                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
    269                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
    270                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
    271                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
    272                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
    273                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
    274                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
    275                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
    276                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
    277                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
    278 
    279                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
    280                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
    281                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
    282                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
    283                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
    284                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
    285                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
    286                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
    287                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
    288                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
    289                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
    290                 { "label": "@", "matrix": [2, 11], "x": 11.75, "y": 2 },
    291                 { "label": "~", "matrix": [1, 13], "x": 12.75, "y": 2 },
    292                 { "label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
    293 
    294                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
    295                 { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 },
    296                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
    297                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
    298                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
    299                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
    300                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
    301                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
    302                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
    303                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
    304                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
    305                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
    306                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
    307 
    308                 { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
    309                 { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
    310                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
    311                 { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
    312                 { "label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
    313                 { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
    314                 { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
    315                 { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
    316             ]
    317         },
    318         "LAYOUT_60_ansi_tsangan": {
    319             "layout": [
    320                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
    321                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
    322                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
    323                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
    324                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
    325                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
    326                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
    327                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
    328                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
    329                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
    330                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
    331                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
    332                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
    333                 { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
    334 
    335                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
    336                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
    337                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
    338                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
    339                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
    340                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
    341                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
    342                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
    343                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
    344                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
    345                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
    346                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
    347                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
    348                 { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
    349 
    350                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
    351                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
    352                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
    353                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
    354                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
    355                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
    356                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
    357                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
    358                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
    359                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
    360                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
    361                 { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
    362                 { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
    363 
    364                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
    365                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
    366                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
    367                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
    368                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
    369                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
    370                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
    371                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
    372                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
    373                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
    374                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
    375                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
    376 
    377                 { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 },
    378                 { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 },
    379                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
    380                 { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
    381                 { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
    382                 { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 },
    383                 { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 }
    384             ]
    385         },
    386         "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
    387             "layout": [
    388                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
    389                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
    390                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
    391                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
    392                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
    393                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
    394                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
    395                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
    396                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
    397                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
    398                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
    399                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
    400                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
    401                 { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 },
    402                 { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 },
    403 
    404                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
    405                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
    406                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
    407                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
    408                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
    409                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
    410                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
    411                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
    412                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
    413                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
    414                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
    415                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
    416                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
    417                 { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
    418 
    419                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
    420                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
    421                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
    422                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
    423                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
    424                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
    425                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
    426                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
    427                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
    428                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
    429                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
    430                 { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
    431                 { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
    432 
    433                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
    434                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
    435                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
    436                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
    437                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
    438                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
    439                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
    440                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
    441                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
    442                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
    443                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
    444                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
    445                 { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
    446 
    447                 { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 },
    448                 { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 },
    449                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
    450                 { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
    451                 { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
    452                 { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 },
    453                 { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 }
    454             ]
    455         },
    456         "LAYOUT_60_iso_split_bs_rshift": {
    457             "layout": [
    458                 {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
    459                 {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
    460                 {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
    461                 {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
    462                 {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
    463                 {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
    464                 {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
    465                 {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
    466                 {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
    467                 {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
    468                 {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
    469                 {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
    470                 {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
    471                 {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
    472                 {"label": "Backspace", "matrix": [2, 12], "x": 14, "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 
    488                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    489                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    490                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    491                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    492                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    493                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    494                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    495                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    496                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    497                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    498                 {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
    499                 {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
    500                 {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
    501                 {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    502 
    503                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    504                 {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
    505                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    506                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    507                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    508                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    509                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    510                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    511                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    512                 {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
    513                 {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
    514                 {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
    515                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    516                 {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
    517 
    518                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
    519                 {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
    520                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
    521                 {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
    522                 {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
    523                 {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
    524                 {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
    525                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
    526             ]
    527         },
    528         "LAYOUT_60_iso_tsangan": {
    529             "layout": [
    530                 {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
    531                 {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
    532                 {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
    533                 {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
    534                 {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
    535                 {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
    536                 {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
    537                 {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
    538                 {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
    539                 {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
    540                 {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
    541                 {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
    542                 {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
    543                 {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
    544 
    545                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    546                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    547                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    548                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    549                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    550                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    551                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    552                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    553                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    554                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    555                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    556                 {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
    557                 {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
    558 
    559                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    560                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    561                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    562                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    563                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    564                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    565                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    566                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    567                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    568                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    569                 {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
    570                 {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
    571                 {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
    572                 {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    573 
    574                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    575                 {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
    576                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    577                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    578                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    579                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    580                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    581                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    582                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    583                 {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
    584                 {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
    585                 {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
    586                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
    587 
    588                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    589                 {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
    590                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    591                 {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
    592                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    593                 {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
    594                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
    595             ]
    596         },
    597         "LAYOUT_60_iso_tsangan_split_bs_rshift": {
    598             "layout": [
    599                 {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
    600                 {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
    601                 {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
    602                 {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
    603                 {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
    604                 {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
    605                 {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
    606                 {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
    607                 {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
    608                 {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
    609                 {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
    610                 {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
    611                 {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
    612                 {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
    613                 {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
    614 
    615                 {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
    616                 {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
    617                 {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
    618                 {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
    619                 {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
    620                 {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
    621                 {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
    622                 {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
    623                 {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
    624                 {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
    625                 {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
    626                 {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
    627                 {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
    628 
    629                 {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
    630                 {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
    631                 {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
    632                 {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
    633                 {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
    634                 {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
    635                 {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
    636                 {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
    637                 {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
    638                 {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
    639                 {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
    640                 {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
    641                 {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
    642                 {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
    643 
    644                 {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
    645                 {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
    646                 {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
    647                 {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
    648                 {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
    649                 {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
    650                 {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
    651                 {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
    652                 {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
    653                 {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
    654                 {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
    655                 {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
    656                 {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
    657                 {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
    658 
    659                 {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
    660                 {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
    661                 {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
    662                 {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
    663                 {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
    664                 {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
    665                 {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
    666             ]
    667         },
    668         "LAYOUT_all": {
    669             "layout": [
    670                 { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
    671                 { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
    672                 { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
    673                 { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
    674                 { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
    675                 { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
    676                 { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
    677                 { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
    678                 { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
    679                 { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
    680                 { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
    681                 { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
    682                 { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
    683                 { "label": "Del", "matrix": [2, 12], "x": 13, "y": 0 },
    684                 { "label": "Backspace", "matrix": [0, 13], "x": 14, "y": 0 },
    685 
    686                 { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
    687                 { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
    688                 { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
    689                 { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
    690                 { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
    691                 { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
    692                 { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
    693                 { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
    694                 { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
    695                 { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
    696                 { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
    697                 { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
    698                 { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
    699                 { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
    700 
    701                 { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
    702                 { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
    703                 { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
    704                 { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
    705                 { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
    706                 { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
    707                 { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
    708                 { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
    709                 { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
    710                 { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
    711                 { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
    712                 { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
    713                 { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
    714 
    715                 { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
    716                 { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 },
    717                 { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
    718                 { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
    719                 { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
    720                 { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
    721                 { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
    722                 { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
    723                 { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
    724                 { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
    725                 { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
    726                 { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
    727                 { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
    728                 { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
    729 
    730                 { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
    731                 { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
    732                 { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
    733                 { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
    734                 { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
    735                 { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
    736                 { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
    737                 { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
    738             ]
    739         }
    740     }
    741 }
    742