summaryrefslogtreecommitdiffstats
path: root/keyboards/kakunpc
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/kakunpc')
-rw-r--r--keyboards/kakunpc/angel17/alpha/alpha.c16
-rw-r--r--keyboards/kakunpc/angel17/alpha/alpha.h40
-rw-r--r--keyboards/kakunpc/angel17/alpha/config.h17
-rw-r--r--keyboards/kakunpc/angel17/alpha/info.json34
-rw-r--r--keyboards/kakunpc/angel17/info.json29
-rw-r--r--keyboards/kakunpc/angel17/rev1/config.h20
-rw-r--r--keyboards/kakunpc/angel17/rev1/info.json37
-rw-r--r--keyboards/kakunpc/angel17/rev1/rev1.c16
-rw-r--r--keyboards/kakunpc/angel17/rev1/rev1.h40
-rw-r--r--keyboards/kakunpc/angel64/alpha/alpha.c16
-rw-r--r--keyboards/kakunpc/angel64/alpha/alpha.h48
-rw-r--r--keyboards/kakunpc/angel64/alpha/config.h3
-rw-r--r--keyboards/kakunpc/angel64/alpha/info.json74
-rw-r--r--keyboards/kakunpc/angel64/rev1/config.h3
-rw-r--r--keyboards/kakunpc/angel64/rev1/info.json74
-rw-r--r--keyboards/kakunpc/angel64/rev1/rev1.c16
-rw-r--r--keyboards/kakunpc/angel64/rev1/rev1.h48
-rw-r--r--keyboards/kakunpc/business_card/alpha/alpha.c16
-rw-r--r--keyboards/kakunpc/business_card/alpha/alpha.h35
-rw-r--r--keyboards/kakunpc/business_card/alpha/config.h20
-rw-r--r--keyboards/kakunpc/business_card/alpha/info.json21
-rw-r--r--keyboards/kakunpc/business_card/alpha/keymaps/default/config.h3
-rw-r--r--keyboards/kakunpc/business_card/beta/beta.c16
-rw-r--r--keyboards/kakunpc/business_card/beta/beta.h37
-rw-r--r--keyboards/kakunpc/business_card/beta/config.h20
-rw-r--r--keyboards/kakunpc/business_card/beta/info.json22
-rw-r--r--keyboards/kakunpc/business_card/beta/keymaps/default/config.h4
-rw-r--r--keyboards/kakunpc/business_card/business_card.c16
-rw-r--r--keyboards/kakunpc/business_card/business_card.h25
-rw-r--r--keyboards/kakunpc/choc_taro/choc_taro.c17
-rw-r--r--keyboards/kakunpc/choc_taro/choc_taro.h342
-rw-r--r--keyboards/kakunpc/choc_taro/info.json1067
-rw-r--r--keyboards/kakunpc/rabbit_capture_plan/config.h20
-rw-r--r--keyboards/kakunpc/rabbit_capture_plan/info.json363
-rw-r--r--keyboards/kakunpc/rabbit_capture_plan/rabbit_capture_plan.c17
-rw-r--r--keyboards/kakunpc/rabbit_capture_plan/rabbit_capture_plan.h47
-rw-r--r--keyboards/kakunpc/suihankey/alpha/alpha.c16
-rw-r--r--keyboards/kakunpc/suihankey/alpha/alpha.h39
-rw-r--r--keyboards/kakunpc/suihankey/alpha/config.h20
-rw-r--r--keyboards/kakunpc/suihankey/alpha/info.json44
-rw-r--r--keyboards/kakunpc/suihankey/rev1/config.h20
-rw-r--r--keyboards/kakunpc/suihankey/rev1/info.json44
-rw-r--r--keyboards/kakunpc/suihankey/rev1/rev1.c16
-rw-r--r--keyboards/kakunpc/suihankey/rev1/rev1.h40
-rw-r--r--keyboards/kakunpc/suihankey/split/alpha/alpha.c16
-rw-r--r--keyboards/kakunpc/suihankey/split/alpha/alpha.h45
-rw-r--r--keyboards/kakunpc/suihankey/split/alpha/config.h19
-rw-r--r--keyboards/kakunpc/suihankey/split/alpha/info.json62
-rw-r--r--keyboards/kakunpc/suihankey/split/info.json51
-rw-r--r--keyboards/kakunpc/suihankey/split/rev1/config.h19
-rw-r--r--keyboards/kakunpc/suihankey/split/rev1/info.json62
-rw-r--r--keyboards/kakunpc/suihankey/split/rev1/rev1.c16
-rw-r--r--keyboards/kakunpc/suihankey/split/rev1/rev1.h47
-rw-r--r--keyboards/kakunpc/thedogkeyboard/config.h3
-rw-r--r--keyboards/kakunpc/thedogkeyboard/info.json264
-rw-r--r--keyboards/kakunpc/thedogkeyboard/keymaps/default/keymap.c12
-rw-r--r--keyboards/kakunpc/thedogkeyboard/matrix_diagram.md23
-rw-r--r--keyboards/kakunpc/thedogkeyboard/thedogkeyboard.c16
-rw-r--r--keyboards/kakunpc/thedogkeyboard/thedogkeyboard.h59
59 files changed, 1334 insertions, 2258 deletions
diff --git a/keyboards/kakunpc/angel17/alpha/alpha.c b/keyboards/kakunpc/angel17/alpha/alpha.c
deleted file mode 100644
index 1c2936e157..0000000000
--- a/keyboards/kakunpc/angel17/alpha/alpha.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "alpha.h"
diff --git a/keyboards/kakunpc/angel17/alpha/alpha.h b/keyboards/kakunpc/angel17/alpha/alpha.h
deleted file mode 100644
index 5b8600a206..0000000000
--- a/keyboards/kakunpc/angel17/alpha/alpha.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_numpad_5x4( \
- k00, k01, k02, k03, \
- k10, k11, k12, \
- k20, k21, k22, k13, \
- k30, k31, k32, \
- k40, k41, k33 \
-) \
-{ \
- { k00, k10, k20, k31, k41 }, \
- { k02, k12, k22, k33, KC_NO }, \
- { k01, k11, k21, k32, KC_NO }, \
- { k03, k13, k30, k40, KC_NO }, \
-}
diff --git a/keyboards/kakunpc/angel17/alpha/config.h b/keyboards/kakunpc/angel17/alpha/config.h
index abe10572df..f79d812475 100644
--- a/keyboards/kakunpc/angel17/alpha/config.h
+++ b/keyboards/kakunpc/angel17/alpha/config.h
@@ -17,23 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
-#define MATRIX_COL_PINS { F4, F5, F6, F7, B1 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/kakunpc/angel17/alpha/info.json b/keyboards/kakunpc/angel17/alpha/info.json
new file mode 100644
index 0000000000..8e0df61513
--- /dev/null
+++ b/keyboards/kakunpc/angel17/alpha/info.json
@@ -0,0 +1,34 @@
+{
+ "matrix_pins": {
+ "cols": ["F4", "F5", "F6", "F7", "B1"],
+ "rows": ["D4", "C6", "D7", "E6"]
+ },
+ "diode_direction": "COL2ROW",
+ "layouts": {
+ "LAYOUT_numpad_5x4": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [2, 0], "x": 1, "y": 0},
+ {"matrix": [1, 0], "x": 2, "y": 0},
+ {"matrix": [3, 0], "x": 3, "y": 0},
+
+ {"matrix": [0, 1], "x": 0, "y": 1},
+ {"matrix": [2, 1], "x": 1, "y": 1},
+ {"matrix": [1, 1], "x": 2, "y": 1},
+
+ {"matrix": [0, 2], "x": 0, "y": 2},
+ {"matrix": [2, 2], "x": 1, "y": 2},
+ {"matrix": [1, 2], "x": 2, "y": 2},
+ {"matrix": [3, 1], "x": 3, "y": 1, "h": 2},
+
+ {"matrix": [3, 2], "x": 0, "y": 3},
+ {"matrix": [0, 3], "x": 1, "y": 3},
+ {"matrix": [2, 3], "x": 2, "y": 3},
+
+ {"matrix": [3, 3], "x": 0, "y": 4, "w": 2},
+ {"matrix": [0, 4], "x": 2, "y": 4},
+ {"matrix": [1, 3], "x": 3, "y": 3, "h": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/kakunpc/angel17/info.json b/keyboards/kakunpc/angel17/info.json
index da7b1d688e..a8a4f2c148 100644
--- a/keyboards/kakunpc/angel17/info.json
+++ b/keyboards/kakunpc/angel17/info.json
@@ -10,32 +10,5 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
- "community_layouts": ["numpad_5x4"],
- "layouts": {
- "LAYOUT_numpad_5x4": {
- "layout": [
- {"label":"Num Lock", "x":0, "y":0},
- {"label":"/", "x":1, "y":0},
- {"label":"*", "x":2, "y":0},
- {"label":"-", "x":3, "y":0},
-
- {"label":"7", "x":0, "y":1},
- {"label":"8", "x":1, "y":1},
- {"label":"9", "x":2, "y":1},
-
- {"label":"4", "x":0, "y":2},
- {"label":"5", "x":1, "y":2},
- {"label":"6", "x":2, "y":2},
- {"label":"+", "x":3, "y":1, "h":2},
-
- {"label":"1", "x":0, "y":3},
- {"label":"2", "x":1, "y":3},
- {"label":"3", "x":2, "y":3},
-
- {"label":"0", "x":0, "y":4, "w":2},
- {"label":".", "x":2, "y":4},
- {"label":"Enter", "x":3, "y":3, "h":2}
- ]
- }
- }
+ "community_layouts": ["numpad_5x4"]
}
diff --git a/keyboards/kakunpc/angel17/rev1/config.h b/keyboards/kakunpc/angel17/rev1/config.h
index 0c2a432d5f..f3471e71e4 100644
--- a/keyboards/kakunpc/angel17/rev1/config.h
+++ b/keyboards/kakunpc/angel17/rev1/config.h
@@ -17,32 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
-*/
-#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
-#define MATRIX_COL_PINS { F4, F5, F6, F7, B1 }
-
-/* COL2ROW, ROW2COL*/
-#define DIODE_DIRECTION COL2ROW
-
-#define RGB_DI_PIN D3
-#ifdef RGB_DI_PIN
#define RGBLED_NUM 17
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
-#endif
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kakunpc/angel17/rev1/info.json b/keyboards/kakunpc/angel17/rev1/info.json
new file mode 100644
index 0000000000..9454cc5ffd
--- /dev/null
+++ b/keyboards/kakunpc/angel17/rev1/info.json
@@ -0,0 +1,37 @@
+{
+ "matrix_pins": {
+ "cols": ["F4", "F5", "F6", "F7", "B1"],
+ "rows": ["D4", "C6", "D7", "E6"]
+ },
+ "ws2812": {
+ "pin": "D3"
+ },
+ "diode_direction": "COL2ROW",
+ "layouts": {
+ "LAYOUT_numpad_5x4": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [2, 0], "x": 1, "y": 0},
+ {"matrix": [1, 0], "x": 2, "y": 0},
+ {"matrix": [3, 0], "x": 3, "y": 0},
+
+ {"matrix": [0, 1], "x": 0, "y": 1},
+ {"matrix": [2, 1], "x": 1, "y": 1},
+ {"matrix": [1, 1], "x": 2, "y": 1},
+
+ {"matrix": [0, 2], "x": 0, "y": 2},
+ {"matrix": [2, 2], "x": 1, "y": 2},
+ {"matrix": [1, 2], "x": 2, "y": 2},
+ {"matrix": [3, 1], "x": 3, "y": 1, "h": 2},
+
+ {"matrix": [3, 2], "x": 0, "y": 3},
+ {"matrix": [0, 3], "x": 1, "y": 3},
+ {"matrix": [2, 3], "x": 2, "y": 3},
+
+ {"matrix": [3, 3], "x": 0, "y": 4, "w": 2},
+ {"matrix": [0, 4], "x": 2, "y": 4},
+ {"matrix": [1, 3], "x": 3, "y": 3, "h": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/kakunpc/angel17/rev1/rev1.c b/keyboards/kakunpc/angel17/rev1/rev1.c
deleted file mode 100644
index 40ff30e620..0000000000
--- a/keyboards/kakunpc/angel17/rev1/rev1.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "rev1.h"
diff --git a/keyboards/kakunpc/angel17/rev1/rev1.h b/keyboards/kakunpc/angel17/rev1/rev1.h
deleted file mode 100644
index 5b8600a206..0000000000
--- a/keyboards/kakunpc/angel17/rev1/rev1.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT_numpad_5x4( \
- k00, k01, k02, k03, \
- k10, k11, k12, \
- k20, k21, k22, k13, \
- k30, k31, k32, \
- k40, k41, k33 \
-) \
-{ \
- { k00, k10, k20, k31, k41 }, \
- { k02, k12, k22, k33, KC_NO }, \
- { k01, k11, k21, k32, KC_NO }, \
- { k03, k13, k30, k40, KC_NO }, \
-}
diff --git a/keyboards/kakunpc/angel64/alpha/alpha.c b/keyboards/kakunpc/angel64/alpha/alpha.c
deleted file mode 100644
index 1c2936e157..0000000000
--- a/keyboards/kakunpc/angel64/alpha/alpha.c
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "alpha.h"
diff --git a/keyboards/kakunpc/angel64/alpha/alpha.h b/keyboards/kakunpc/angel64/alpha/alpha.h
deleted file mode 100644
index 6c0898a56a..0000000000
--- a/keyboards/kakunpc/angel64/alpha/alpha.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2019 kakunpc
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "quantum.h"
-
-/* This a shortcut to help you visually see your layout.
- *
- * The first section contains all of the arguments representing the physical
- * layout of the board and position of the keys.
- *
- * The second converts the arguments into a two-dimensional array which
- * represents the switch matrix.
- */
-#define LAYOUT( \
- k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
- k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, \
- k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, \
- k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, \
- k54, k55, k56, k57, k58, k59, k60, k61, k62, k63, k64\
-) \
-{ \
- { k01, k13, k25, k37, k49, k61 }, \
- { k02, k14, k26, k38, k50, k62 }, \
- { k03, k15, k27, k39, k51, k63 }, \
- { k04, k16, k28, k40, k52, k64 }, \
- { k05, k17, k29, k41, k53, KC_NO }, \
- { k06, k18, k30, k42, k54, KC_NO }, \
- { k07, k19, k31, k43, k55, KC_NO }, \
- { k08, k20, k32, k44, k56, KC_NO }, \
- { k09, k21, k33, k45, k57, KC_NO }, \
- { k10, k22, k34, k46, k58, KC_NO }, \
- { k11, k23, k35, k47, k59, KC_NO }, \
- { k12, k24, k36, k48, k60, KC_NO } \
-}
diff --git a/keyboards/kakunpc/angel64/alpha/config.h b/keyboards/kakunpc/angel64/alpha/config.h
index 39d8fcf0cd..b4d1467a6b 100644
--- a/keyboards/kakunpc/angel64/alpha/config.h
+++ b/keyboards/kakunpc/angel64/alpha/config.h
@@ -29,8 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
-#define RGB_DI_PIN D3
-#ifdef RGB_DI_PIN
#define RGBLED_NUM 64
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
@@ -47,7 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
-#endif
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/kakunpc/angel64/alpha/info.json b/keyboards/kakunpc/angel64/alpha/info.json
index 0fe4f0f5ab..3429799a75 100644
--- a/keyboards/kakunpc/angel64/alpha/info.json
+++ b/keyboards/kakunpc/angel64/alpha/info.json
@@ -8,11 +8,83 @@
"pid": "0x0A64",
"device_version": "0.0.1"
},
+ "ws2812": {
+ "pin": "D3"
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
"LAYOUT": {
- "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"back", "x":13, "y":0}, {"label":"Q", "x":0, "y":1, "w":1.5}, {"label":"W", "x":1.5, "y":1}, {"label":"E", "x":2.5, "y":1}, {"label":"R", "x":3.5, "y":1}, {"label":"T", "x":4.5, "y":1}, {"label":"Y", "x":5.5, "y":1}, {"label":"U", "x":6.5, "y":1}, {"label":"I", "x":7.5, "y":1}, {"label":"O", "x":8.5, "y":1}, {"label":"P", "x":9.5, "y":1}, {"label":"[", "x":10.5, "y":1}, {"label":"]", "x":11.5, "y":1}, {"label":"|", "x":12.5, "y":1, "w":1.5}, {"label":"Ctrl", "x":0, "y":2}, {"label":"A", "x":1, "y":2}, {"label":"S", "x":2, "y":2}, {"label":"D", "x":3, "y":2}, {"label":"F", "x":4, "y":2}, {"label":"G", "x":5, "y":2}, {"label":"H", "x":6, "y":2}, {"label":"J", "x":7, "y":2}, {"label":"K", "x":8, "y":2}, {"label":"L", "x":9, "y":2}, {"label":";:", "x":10, "y":2}, {"label":"`", "x":11, "y":2}, {"label":"Enter", "x":12, "y":2, "w":2}, {"label":"Shift", "x":0, "y":3, "w":1.5}, {"label":"Z", "x":1.5, "y":3}, {"label":"X", "x":2.5, "y":3}, {"label":"C", "x":3.5, "y":3}, {"label":"V", "x":4.5, "y":3}, {"label":"B", "x":5.5, "y":3}, {"label":"N", "x":6.5, "y":3}, {"label":"M", "x":7.5, "y":3}, {"label":"<", "x":8.5, "y":3}, {"label":">", "x":9.5, "y":3}, {"label":"?", "x":10.5, "y":3}, {"label":"\u2191", "x":11.5, "y":3}, {"label":"Fn", "x":12.5, "y":3, "w":1.5}, {"label":"Caps", "x":0, "y":4}, {"label":"Alt", "x":1, "y":4}, {"label":"Start", "x":2, "y":4, "w":1.5}, {"label":"Ctrl", "x":3.5, "y":4, "w":1.5}, {"label":"Space", "x":5, "y":4, "w":2}, {"label":"Ctrl", "x":7, "y":4, "w":1.5}, {"label":"Alt", "x":8.5, "y":4, "w":1.5}, {"label":"\u2190", "x":10, "y":4}, {"label":"\u2193", "x":11, "y":4}, {"label":"\u2192", "x":12, "y":4}, {"label":"Alt", "x":13, "y":4}]
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [1, 0], "x": 1, "y": 0},
+ {"matrix": [2, 0], "x": 2, "y": 0},
+ {"matrix": [3, 0], "x": 3, "y": 0},
+ {"matrix": [4, 0], "x": 4, "y": 0},
+ {"matrix": [5, 0], "x": 5, "y": 0},
+ {"matrix": [6, 0], "x": 6, "y": 0},
+ {"matrix": [7, 0], "x": 7, "y": 0},
+ {"matrix": [8, 0], "x": 8, "y": 0},
+ {"matrix": [9, 0], "x": 9, "y": 0},
+ {"matrix": [10, 0], "x": 10, "y": 0},
+ {"matrix": [11, 0], "x": 11, "y": 0},
+ {"matrix": [0, 1], "x": 12, "y": 0},
+ {"matrix": [1, 1], "x": 13, "y": 0},
+
+ {"matrix": [2, 1], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [3, 1], "x": 1.5, "y": 1},
+ {"matrix": [4, 1], "x": 2.5, "y": 1},
+ {"matrix": [5, 1], "x": 3.5, "y": 1},
+ {"matrix": [6, 1], "x": 4.5, "y": 1},
+ {"matrix": [7, 1], "x": 5.5, "y": 1},
+ {"matrix": [8, 1], "x": 6.5, "y": 1},
+ {"matrix": [9, 1], "x": 7.5, "y": 1},
+ {"matrix": [10, 1], "x": 8.5, "y": 1},
+ {"matrix": [11, 1], "x": 9.5, "y": 1},