summaryrefslogtreecommitdiffstats
path: root/keyboards/keychron/q1
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/keychron/q1')
-rw-r--r--keyboards/keychron/q1/ansi/ansi.c (renamed from keyboards/keychron/q1/rev_0100/rev_0100.c)49
-rw-r--r--keyboards/keychron/q1/ansi/ansi.h19
-rw-r--r--keyboards/keychron/q1/ansi/config.h (renamed from keyboards/keychron/q1/rev_0100/config.h)0
-rw-r--r--keyboards/keychron/q1/ansi/info.json104
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/default/keymap.c61
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/README.md)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/config.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/keymap.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk (renamed from keyboards/keychron/q1/rev_0100/keymaps/gtg465x/rules.mk)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c)68
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk4
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/config.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/keymap.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/readme.md)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk (renamed from keyboards/keychron/q1/rev_0100/keymaps/mkillewald/rules.mk)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/config.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/config.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/readme.md (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/readme.md)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/rules.mk)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_mac_caps.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_setup.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_user.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.c)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h (renamed from keyboards/keychron/q1/rev_0100/keymaps/teimor/tap_dance_win_caps.h)0
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/via/keymap.c61
-rw-r--r--keyboards/keychron/q1/ansi/keymaps/via/rules.mk1
-rw-r--r--keyboards/keychron/q1/ansi/readme.md (renamed from keyboards/keychron/q1/rev_0100/readme.md)0
-rw-r--r--keyboards/keychron/q1/ansi/rules.mk (renamed from keyboards/keychron/q1/rev_0100/rules.mk)1
-rw-r--r--keyboards/keychron/q1/ansi_encoder/ansi_encoder.c (renamed from keyboards/keychron/q1/rev_0101/rev_0101.c)68
-rw-r--r--keyboards/keychron/q1/ansi_encoder/ansi_encoder.h19
-rw-r--r--keyboards/keychron/q1/ansi_encoder/config.h (renamed from keyboards/keychron/q1/rev_0101/config.h)0
-rw-r--r--keyboards/keychron/q1/ansi_encoder/info.json104
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c67
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk (renamed from keyboards/keychron/q1/rev_0101/keymaps/default/rules.mk)0
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/rev_0101/keymaps/default/keymap.c)60
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk5
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c67
-rw-r--r--keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/ansi_encoder/readme.md (renamed from keyboards/keychron/q1/rev_0101/readme.md)0
-rw-r--r--keyboards/keychron/q1/ansi_encoder/rules.mk (renamed from keyboards/keychron/q1/rev_0101/rules.mk)3
-rw-r--r--keyboards/keychron/q1/config.h20
-rw-r--r--keyboards/keychron/q1/iso/config.h (renamed from keyboards/keychron/q1/rev_0102/config.h)0
-rw-r--r--keyboards/keychron/q1/iso/info.json105
-rw-r--r--keyboards/keychron/q1/iso/iso.c (renamed from keyboards/keychron/q1/rev_0102/rev_0102.c)47
-rw-r--r--keyboards/keychron/q1/iso/iso.h19
-rw-r--r--keyboards/keychron/q1/iso/keymaps/default/keymap.c61
-rw-r--r--keyboards/keychron/q1/iso/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c)64
-rw-r--r--keyboards/keychron/q1/iso/keymaps/keychron/rules.mk4
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/README.md (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/README.md)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/config.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/config.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/keymap.c)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk (renamed from keyboards/keychron/q1/rev_0102/keymaps/kubahorak/rules.mk)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/config.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/keymap.c)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/readme.md)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk (renamed from keyboards/keychron/q1/rev_0102/keymaps/mkillewald_iso/rules.mk)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/via/keymap.c61
-rw-r--r--keyboards/keychron/q1/iso/keymaps/via/rules.mk1
-rw-r--r--keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h (renamed from keyboards/keychron/q1/rev_0102/keymaps/victorsavu3/config.h)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c (renamed from keyboards/keychron/q1/rev_0102/keymaps/victorsavu3/keymap.c)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md (renamed from keyboards/keychron/q1/rev_0102/keymaps/victorsavu3/readme.md)0
-rw-r--r--keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk (renamed from keyboards/keychron/q1/rev_0102/keymaps/victorsavu3/rules.mk)0
-rw-r--r--keyboards/keychron/q1/iso/readme.md (renamed from keyboards/keychron/q1/rev_0102/readme.md)0
-rw-r--r--keyboards/keychron/q1/iso/rules.mk (renamed from keyboards/keychron/q1/rev_0102/rules.mk)3
-rw-r--r--keyboards/keychron/q1/q1.c5
-rw-r--r--keyboards/keychron/q1/q1.h12
-rw-r--r--keyboards/keychron/q1/readme.md4
-rw-r--r--keyboards/keychron/q1/rev_0100/info.json97
-rw-r--r--keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c107
-rw-r--r--keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/rev_0100/rev_0100.h37
-rw-r--r--keyboards/keychron/q1/rev_0101/info.json197
-rw-r--r--keyboards/keychron/q1/rev_0101/keymaps/via/keymap.c98
-rw-r--r--keyboards/keychron/q1/rev_0101/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/rev_0101/rev_0101.h52
-rw-r--r--keyboards/keychron/q1/rev_0102/info.json105
-rw-r--r--keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c107
-rw-r--r--keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/rev_0102/rev_0102.h37
96 files changed, 939 insertions, 1073 deletions
diff --git a/keyboards/keychron/q1/rev_0100/rev_0100.c b/keyboards/keychron/q1/ansi/ansi.c
index 2c87a8241e..fc22d1aff3 100644
--- a/keyboards/keychron/q1/rev_0100/rev_0100.c
+++ b/keyboards/keychron/q1/ansi/ansi.c
@@ -14,8 +14,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "quantum.h"
+#include "ansi.h"
+#ifdef RGB_MATRIX_ENABLE
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
@@ -114,30 +115,36 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
};
+#define __ NO_LED
+
led_config_t g_led_config = {
{
- { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
- { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
- { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
- { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 }
+ // Key Matrix to LED Index
+ { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
+ { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
+ { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 }
},
{
- {0,0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0},
- {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13}, {224,13},
- {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26}, {224,26},
- {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {195,39}, {224,39},
- {0,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52}, {195,52}, {210,52},
- {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
- },
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
{
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
-
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
}
};
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/ansi/ansi.h b/keyboards/keychron/q1/ansi/ansi.h
new file mode 100644
index 0000000000..db52563dc4
--- /dev/null
+++ b/keyboards/keychron/q1/ansi/ansi.h
@@ -0,0 +1,19 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
diff --git a/keyboards/keychron/q1/rev_0100/config.h b/keyboards/keychron/q1/ansi/config.h
index 0a30f7d82d..0a30f7d82d 100644
--- a/keyboards/keychron/q1/rev_0100/config.h
+++ b/keyboards/keychron/q1/ansi/config.h
diff --git a/keyboards/keychron/q1/ansi/info.json b/keyboards/keychron/q1/ansi/info.json
new file mode 100644
index 0000000000..3b17f9c53a
--- /dev/null
+++ b/keyboards/keychron/q1/ansi/info.json
@@ -0,0 +1,104 @@
+{
+ "keyboard_name": "Q1",
+ "manufacturer": "Keychron",
+ "url": "https://github.com/Keychron",
+ "maintainer": "lalalademaxiya1",
+ "usb": {
+ "vid": "0x3434",
+ "pid": "0x0100",
+ "device_version": "1.0.0"
+ },
+ "layouts": {
+ "LAYOUT_ansi_82": {
+ "layout": [
+ {"matrix":[0, 0], "x":0, "y":0},
+ {"matrix":[0, 2], "x":1.25, "y":0},
+ {"matrix":[0, 3], "x":2.25, "y":0},
+ {"matrix":[0, 4], "x":3.25, "y":0},
+ {"matrix":[0, 5], "x":4.25, "y":0},
+ {"matrix":[0, 6], "x":5.5, "y":0},
+ {"matrix":[0, 7], "x":6.5, "y":0},
+ {"matrix":[0, 8], "x":7.5, "y":0},
+ {"matrix":[0, 9], "x":8.5, "y":0},
+ {"matrix":[0,10], "x":9.75, "y":0},
+ {"matrix":[0,11], "x":10.75, "y":0},
+ {"matrix":[0,12], "x":11.75, "y":0},
+ {"matrix":[0,13], "x":12.75, "y":0},
+ {"matrix":[0,14], "x":14, "y":0},
+ {"matrix":[4,14], "x":15.25, "y":0},
+
+ {"matrix":[1, 0], "x":0, "y":1},
+ {"matrix":[1, 1], "x":1, "y":1},
+ {"matrix":[1, 2], "x":2, "y":1},
+ {"matrix":[1, 3], "x":3, "y":1},
+ {"matrix":[1, 4], "x":4, "y":1},
+ {"matrix":[1, 5], "x":5, "y":1},
+ {"matrix":[1, 6], "x":6, "y":1},
+ {"matrix":[1, 7], "x":7, "y":1},
+ {"matrix":[1, 8], "x":8, "y":1},
+ {"matrix":[1, 9], "x":9, "y":1},
+ {"matrix":[1,10], "x":10, "y":1},
+ {"matrix":[1,11], "x":11, "y":1},
+ {"matrix":[1,12], "x":12, "y":1},
+ {"matrix":[1,13], "x":13, "y":1, "w":2},
+ {"matrix":[1,14], "x":15.25, "y":1},
+
+ {"matrix":[2, 0], "x":0, "y":2, "w":1.5},
+ {"matrix":