summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Young <18669334+noroadsleft@users.noreply.github.com>2021-07-13 06:46:20 -0700
committerGitHub <noreply@github.com>2021-07-13 06:46:20 -0700
commitbf70db479c6b027c670bb0e261f4202864525970 (patch)
treec0f7279b15ef9e4ef9fbbd5633bd1162a9aaf524
parentb89abc402bdc70362dbb6d938eafaa8716b5d4ac (diff)
AMJ60 Refactor (#13530)
* rename LAYOUT to LAYOUT_all * refactor default keymap - add license header - use layer_names enum - use LAYOUT_all macro - update keymap to be more generic - use QMK-native keycode aliases * info.json: human-friendly formatting * convert LAYOUT_iso into a proper LAYOUT_60_iso * LAYOUT_all bugfix In the physical sense, position k3d is to the left of k3c. * rework LAYOUT_max into LAYOUT_60_ansi_split_bs_rshift * remove LAYOUT_iso_splitrshift and iso_split_rshift keymap * rework LAYOUT_hhkb into LAYOUT_60_hhkb * amj60.h cleanup - add license header - use #pragma once include guard - concatenate layout block comments - remove unnecessary function headers * add license header to amj60.c * align config.h to QMK template * align rules.mk to QMK template * enable Community Layout support * modernize readme.md - add PCB image - convert keyboard data to list - add flashing and bootloader instructions - update Docs links
-rw-r--r--keyboards/amj60/amj60.c16
-rw-r--r--keyboards/amj60/amj60.h158
-rw-r--r--keyboards/amj60/config.h82
-rw-r--r--keyboards/amj60/info.json381
-rw-r--r--keyboards/amj60/keymaps/default/keymap.c75
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/build.sh42
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/keymap.c113
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/readme.md30
-rw-r--r--keyboards/amj60/keymaps/iso_split_rshift/rules.mk20
-rwxr-xr-xkeyboards/amj60/keymaps/iso_split_rshift/updatemerge.sh4
-rw-r--r--keyboards/amj60/keymaps/maximized/keymap.c55
-rw-r--r--keyboards/amj60/readme.md22
-rw-r--r--keyboards/amj60/rules.mk36
13 files changed, 563 insertions, 471 deletions
diff --git a/keyboards/amj60/amj60.c b/keyboards/amj60/amj60.c
index 02aa116d54..af0539a679 100644
--- a/keyboards/amj60/amj60.c
+++ b/keyboards/amj60/amj60.c
@@ -1 +1,17 @@
+/* Copyright 2016 Toni (@toneman77)
+ *
+ * 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 "amj60.h"
diff --git a/keyboards/amj60/amj60.h b/keyboards/amj60/amj60.h
index 07b406868e..feda680030 100644
--- a/keyboards/amj60/amj60.h
+++ b/keyboards/amj60/amj60.h
@@ -1,5 +1,21 @@
-#ifndef AMJ60_H
-#define AMJ60_H
+/* Copyright 2016 Toni (@toneman77)
+ * 2021 James Young for QMK (@noroadsleft)
+ *
+ * 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"
@@ -7,23 +23,43 @@
#define XXX KC_NO
/* AMJ60 layout to the best of my knowledge matrix layout
- * ,-----------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49|
- * |-----------------------------------------------------------|
- * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
- * |-----------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
- * |-----------------------------------------------------------|
- * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3c | 3d |
- * |-----------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
- * `-----------------------------------------------------------'
+ *
+ * I scoured the internet researching this PCB, which near as I know was
+ * discontinued around 2017. Fortunately, the wiring seems to be based on the
+ * GH60, and I own a KC60, which is also based on the GH60. I traced my KC60
+ * (which I already had apart!) and worked out the right shift can be split
+ * 1.75/1 (HHKB style) or 1/1.75 (JIS/ABNT2). With either split, the 1u key
+ * was on column C, so I used that here.
+ *
+ * - noroadsleft
+ *
+ * ┌───────┐
+ * 2u Backspace │0d │
+ * └───────┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │49 │ ┌─────┐
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │ │
+ * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │ ┌──┴┐ │ ISO Enter
+ * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2c │2d │
+ * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │ └───┴────┘
+ * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌──────────┐
+ * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3c │ │3d │ 2.75u RShift
+ * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘
+ * │40 │41 │42 │ 45 │4a │4b │4c │4d │ ┌───┬──────┐
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ │3c │3d │ JIS RShift
+ * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ └───┴──────┘
+ * Tsangan │40 │41 │42 │ 45 │4b │4c │4d │
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+ * ┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
+ * Topre-style │40 │41 │42 │ 45 │4a │4b │4c │4d │
+ * └─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
+ *
*/
-#define LAYOUT( \
+#define LAYOUT_all( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
@@ -34,20 +70,6 @@
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
-/*
- * ANSI
- * ,-----------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
- * |-----------------------------------------------------------|
- * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
- * |-----------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
- * |-----------------------------------------------------------|
- * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
- * |-----------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
- * `-----------------------------------------------------------'
- */
#define LAYOUT_60_ansi( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
@@ -63,107 +85,47 @@
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
-/* AMJ60 HHKB matrix layout
- * ,------------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d| 49 |
- * |------------------------------------------------------------|
- * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
- * |------------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d |
- * |------------------------------------------------------------|
- * | 30 | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
- * |------------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
- * `------------------------------------------------------------'
- */
-
-#define LAYOUT_hhkb( \
+#define LAYOUT_60_hhkb( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
- k40, k41, k42, k45, k4a, k4b, k4c, k4d \
+ k41, k42, k45, k4b, k4c \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
- {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
+ {XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, XXX, k4b, k4c, XXX} \
}
-/* ISO
- * ,-----------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
- * |-----------------------------------------------------------|
- * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
- * |-----------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
- * |-----------------------------------------------------------|
- * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d |
- * |-----------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
- * `-----------------------------------------------------------'
- */
-#define LAYOUT_iso( \
+#define LAYOUT_60_iso( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
- {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
+ {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
}
-/* ISO w/ split right shift key matrix layout
- * ,-----------------------------------------------------------.
- * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d |
- * |-----------------------------------------------------------|
- * | 10 | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c| 1d |
- * |-----------------------------------------------------------|
- * | 20 | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2c|2d |
- * |-----------------------------------------------------------|
- * | 30 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b| 3d | 3c |
- * |-----------------------------------------------------------|
- * | 40 | 41 | 42 | 45 | 4a | 4b | 4c | 4d |
- * `-----------------------------------------------------------'
- */
-#define LAYOUT_iso_splitrshift( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
- k40, k41, k42, k45, k4a, k4b, k4c, k4d \
-) \
-{ \
- {k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
- {k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
- {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
- {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
- {k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d} \
-}
-
-#define LAYOUT_max( \
+#define LAYOUT_60_ansi_split_bs_rshift( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k49,\
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
+ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3c, \
k40, k41, k42, k45, k4a, k4b, k4c, k4d \
) \
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
- {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
+ {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
-
-void matrix_init_user(void);
-void matrix_scan_user(void);
-
-#endif
diff --git a/keyboards/amj60/config.h b/keyboards/amj60/config.h
index 008539368d..8d53efd3f3 100644
--- a/keyboards/amj60/config.h
+++ b/keyboards/amj60/config.h
@@ -15,8 +15,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_H
-#define CONFIG_H
+#pragma once
#include "config_common.h"
@@ -31,46 +30,69 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROWS 5
#define MATRIX_COLS 14
-// ROWS: Top to bottom, COLS: Left to right
-
-#define MATRIX_ROW_PINS { F7, F6, F5, F4, D5}
-#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3}
+/*
+ * 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 { F7, F6, F5, F4, D5 }
+#define MATRIX_COL_PINS { F1, F0, E6, C7, C6, B0, D4, B1, B7, B5, B4, D7, D6, B3 }
#define UNUSED_PINS
-/* COL2ROW or ROW2COL */
+/* COL2ROW, ROW2COL */
#define DIODE_DIRECTION COL2ROW
#define LED_CAPS_LOCK_PIN B2
#define LED_PIN_ON_STATE 0
#define BACKLIGHT_PIN B6
+#define BACKLIGHT_LEVELS 4
+#define BACKLIGHT_BREATHING
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 8
+# define RGBLIGHT_HUE_STEP 10
+# define RGBLIGHT_SAT_STEP 17
+# define RGBLIGHT_VAL_STEP 17
+//# 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 */
+/*== all animations enable ==*/
+# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+//# define RGBLIGHT_EFFECT_BREATHING
+//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+//# define RGBLIGHT_EFFECT_SNAKE
+//# define RGBLIGHT_EFFECT_KNIGHT
+//# define RGBLIGHT_EFFECT_CHRISTMAS
+//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//# define RGBLIGHT_EFFECT_RGB_TEST
+//# define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#endif
-/* define if matrix has ghost */
-//#define MATRIX_HAS_GHOST
-
-/* Set 0 if debouncing isn't needed */
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* Backlight configuration
- */
-#define BACKLIGHT_LEVELS 4
-
-/* Underlight configuration
- */
-
-#define RGB_DI_PIN E2
-#define RGBLIGHT_ANIMATIONS
-#define RGBLED_NUM 8 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
@@ -86,7 +108,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-#endif
+/* disable these deprecated features by default */
+#define NO_ACTION_MACRO
+#define NO_ACTION_FUNCTION
+
+/* Bootmagic Lite key configuration */
+//#define BOOTMAGIC_LITE_ROW 0
+//#define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/amj60/info.json b/keyboards/amj60/info.json
index dd6a7aef0d..3bef63e33b 100644
--- a/keyboards/amj60/info.json
+++ b/keyboards/amj60/info.json
@@ -1,27 +1,360 @@
{
- "keyboard_name": "AMJ60",
- "url": "",
- "maintainer": "qmk",
- "width": 15,
- "height": 5,
- "layouts": {
- "LAYOUT": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3c", "x":12.25, "y":3, "w":1.75}, {"label":"k3d", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_60_ansi": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_hhkb": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":2.25}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_iso": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":2.75}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_iso_splitrshift": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0, "w":2}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2c", "x":12.75, "y":2}, {"label":"k2d", "x":13.75, "y":2, "w":1.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
- },
- "LAYOUT_max": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k03", "x":3, "y":0}, {"label":"k04", "x":4, "y":0}, {"label":"k05", "x":5, "y":0}, {"label":"k06", "x":6, "y":0}, {"label":"k07", "x":7, "y":0}, {"label":"k08", "x":8, "y":0}, {"label":"k09", "x":9, "y":0}, {"label":"k0a", "x":10, "y":0}, {"label":"k0b", "x":11, "y":0}, {"label":"k0c", "x":12, "y":0}, {"label":"k0d", "x":13, "y":0}, {"label":"k49", "x":14, "y":0}, {"label":"k10", "x":0, "y":1, "w":1.5}, {"label":"k11", "x":1.5, "y":1}, {"label":"k12", "x":2.5, "y":1}, {"label":"k13", "x":3.5, "y":1}, {"label":"k14", "x":4.5, "y":1}, {"label":"k15", "x":5.5, "y":1}, {"label":"k16", "x":6.5, "y":1}, {"label":"k17", "x":7.5, "y":1}, {"label":"k18", "x":8.5, "y":1}, {"label":"k19", "x":9.5, "y":1}, {"label":"k1a", "x":10.5, "y":1}, {"label":"k1b", "x":11.5, "y":1}, {"label":"k1c", "x":12.5, "y":1}, {"label":"k1d", "x":13.5, "y":1, "w":1.5}, {"label":"k20", "x":0, "y":2, "w":1.75}, {"label":"k21", "x":1.75, "y":2}, {"label":"k22", "x":2.75, "y":2}, {"label":"k23", "x":3.75, "y":2}, {"label":"k24", "x":4.75, "y":2}, {"label":"k25", "x":5.75, "y":2}, {"label":"k26", "x":6.75, "y":2}, {"label":"k27", "x":7.75, "y":2}, {"label":"k28", "x":8.75, "y":2}, {"label":"k29", "x":9.75, "y":2}, {"label":"k2a", "x":10.75, "y":2}, {"label":"k2b", "x":11.75, "y":2}, {"label":"k2d", "x":12.75, "y":2, "w":2.25}, {"label":"k30", "x":0, "y":3, "w":1.25}, {"label":"k31", "x":1.25, "y":3}, {"label":"k32", "x":2.25, "y":3}, {"label":"k33", "x":3.25, "y":3}, {"label":"k34", "x":4.25, "y":3}, {"label":"k35", "x":5.25, "y":3}, {"label":"k36", "x":6.25, "y":3}, {"label":"k37", "x":7.25, "y":3}, {"label":"k38", "x":8.25, "y":3}, {"label":"k39", "x":9.25, "y":3}, {"label":"k3a", "x":10.25, "y":3}, {"label":"k3b", "x":11.25, "y":3}, {"label":"k3d", "x":12.25, "y":3, "w":1.75}, {"label":"k3c", "x":14, "y":3}, {"label":"k40", "x":0, "y":4, "w":1.25}, {"label":"k41", "x":1.25, "y":4, "w":1.25}, {"label":"k42", "x":2.5, "y":4, "w":1.25}, {"label":"k45", "x":3.75, "y":4, "w":6.25}, {"label":"k4a", "x":10, "y":4, "w":1.25}, {"label":"k4b", "x":11.25, "y":4, "w":1.25}, {"label":"k4c", "x":12.5, "y":4, "w":1.25}, {"label":"k4d", "x":13.75, "y":4, "w":1.25}]
+ "keyboard_name": "AMJ60",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"k00", "x":0, "y":0},
+ {"label":"k01", "x":1, "y":0},
+ {"label":"k02", "x":2, "y":0},
+ {"label":"k03", "x":3, "y":0},
+ {"label":"k04", "x":4, "y":0},
+ {"label":"k05", "x":5, "y":0},
+ {"label":"k06", "x":6, "y":0},
+ {"label":"k07", "x":7, "y":0},
+ {"label":"k08", "x":8, "y":0},
+ {"label":"k09", "x":9, "y":0},
+ {"label":"k0a", "x":10, "y":0},
+ {"label":"k0b", "x":11, "y":0},
+ {"label":"k0c", "x":12, "y":0},
+ {"label":"k0d", "x":13, "y":0},
+ {"label":"k49", "x":14, "y":0},
+
+ {"label":"k10", "x":0, "y":1, "w":1.5},
+ {"label":"k11", "x":1.5, "y":1},
+ {"label":"k12", "x":2.5, "y":1},
+ {"label":"k13", "x":3.5, "y":1},
+ {"label":"k14", "x":4.5, "y":1},
+ {"label":"k15", "x":5.5, "y":1},
+ {"label":"k16", "x":6.5, "y":1},
+ {"label":"k17", "x":7.5, "y":1},
+ {"label":"k18", "x":8.5, "y":1},
+ {"label":"k19", "x":9.5, "y":1},
+ {"label":"k1a", "x":10.5, "y":1},
+ {"label":"k1b", "x":11.5, "y":1},
+ {"label":"k1c", "x":12.5, "y":1},
+ {"label":"k1d", "x":13.5, "y":1, "w":1.5},
+
+ {"label":"k20", "x":0, "y":2, "w":1.75},
+ {"label":"k21", "x":1.75, "y":2},
+ {"label":"k22", "x":2.75, "y":2},
+ {"label":"k23", "x":3.75, "y":2},
+ {"label":"k24", "x":4.75, "y":2},
+ {"label":"k25", "x":5.75, "y":2},
+ {"label":"k26", "x":6.75, "y":2},
+ {"label":"k27", "x":7.75, "y":2},
+ {"label":"k28", "x":8.75, "y":2},
+ {"label":"k29", "x":9.75, "y":2},
+ {"label":"k2a", "x":10.75, "y":2},
+ {"label":"k2b", "x":11.75, "y":2},
+ {"label":"k2c", "x":12.75, "y":2},
+ {"label":"k2d", "x":13.75, "y":2, "w":1.25},
+
+ {"label":"k30", "x":0, "y":3, "w":1.25},
+ {"label":"k31", "x":1.25, "y":3},
+ {"label":"k32", "x":2.25, "y":3},
+ {"label":"k33", "x":3.25, "y":3},
+ {"label":"k34", "x":4.25, "y":3},
+ {"label":"k35", "x":5.25, "y":3},
+ {"label":"k36", "x":6.25, "y":3},
+ {"label":"k37", "x":7.25, "y":3},
+ {"label":"k38", "x":8.25, "y":3},
+ {"label":"k39", "x":9.25, "y":3},
+ {"label":"k3a", "x":10.25, "y":3},
+ {"label":"k3b", "x":11.25, "y":3},
+ {"label":"k3d", "x":12.25, "y":3, "w":1.75},
+ {"label":"k3c", "x":14, "y":3},
+
+ {"label":"k40", "x":0, "y":4, "w":1.25},
+ {"label":"k41", "x":1.25, "y":4, "w":1.25},
+ {"label":"k42", "x":2.5, "y":4, "w":1.25},
+ {"label":"k45", "x":3.75, "y":4, "w":6.25},
+ {"label":"k4a", "x":10, "y":4, "w":1.25},
+ {"label":"k4b", "x":11.25, "y":4, "w":1.25},
+ {"label":"k4c", "x":12.5, "y":4, "w":1.25},
+ {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+ ]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"label":"k00", "x":0, "y":0},
+ {"label":"k01", "x":1, "y":0},
+ {"label":"k02", "x":2, "y":0},
+ {"label":"k03", "x":3, "y":0},
+ {"label":"k04", "x":4, "y":0},
+ {"label":"k05", "x":5, "y":0},
+ {"label":"k06", "x":6, "y":0},
+ {"label":"k07", "x":7, "y":0},
+ {"label":"k08", "x":8, "y":0},
+ {"label":"k09", "x":9, "y":0},
+ {"label":"k0a", "x":10, "y":0},
+ {"label":"k0b", "x":11, "y":0},
+ {"label":"k0c", "x":12, "y":0},
+ {"label":"k0d", "x":13, "y":0, "w":2},
+
+ {"label":"k10", "x":0, "y":1, "w":1.5},
+ {"label":"k11", "x":1.5, "y":1},
+ {"label":"k12", "x":2.5, "y":1},
+ {"label":"k13", "x":3.5, "y":1},
+ {"label":"k14", "x":4.5, "y":1},
+ {"label":"k15", "x":5.5, "y":1},
+ {"label":"k16", "x":6.5, "y":1},
+ {"label":"k17", "x":7.5, "y":1},
+ {"label":"k18", "x":8.5, "y":1},
+ {"label":"k19", "x":9.5, "y":1},
+ {"label":"k1a", "x":10.5, "y":1},
+ {"label":"k1b", "x":11.5, "y":1},
+ {"label":"k1c", "x":12.5, "y":1},
+ {"label":"k1d", "x":13.5, "y":1, "w":1.5},
+
+ {"label":"k20", "x":0, "y":2, "w":1.75},
+ {"label":"k21", "x":1.75, "y":2},
+ {"label":"k22", "x":2.75, "y":2},
+ {"label":"k23", "x":3.75, "y":2},
+ {"label":"k24", "x":4.75, "y":2},
+ {"label":"k25", "x":5.75, "y":2},
+ {"label":"k26", "x":6.75, "y":2},
+ {"label":"k27", "x":7.75, "y":2},
+ {"label":"k28", "x":8.75, "y":2},
+ {"label":"k29", "x":9.75, "y":2},
+ {"label":"k2a", "x":10.75, "y":2},
+ {"label":"k2b", "x":11.75, "y":2},
+ {"label":"k2d", "x":12.75, "y":2, "w":2.25},
+
+ {"label":"k30", "x":0, "y":3, "w":2.25},
+ {"label":"k32", "x":2.25, "y":3},
+ {"label":"k33", "x":3.25, "y":3},
+ {"label":"k34", "x":4.25, "y":3},
+ {"label":"k35", "x":5.25, "y":3},
+ {"label":"k36", "x":6.25, "y":3},
+ {"label":"k37", "x":7.25, "y":3},
+ {"label":"k38", "x":8.25, "y":3},
+ {"label":"k39", "x":9.25, "y":3},
+ {"label":"k3a", "x":10.25, "y":3},
+ {"label":"k3b", "x":11.25, "y":3},
+ {"label":"k3d", "x":12.25, "y":3, "w":2.75},
+
+ {"label":"k40", "x":0, "y":4, "w":1.25},
+ {"label":"k41", "x":1.25, "y":4, "w":1.25},
+ {"label":"k42", "x":2.5, "y":4, "w":1.25},
+ {"label":"k45", "x":3.75, "y":4, "w":6.25},
+ {"label":"k4a", "x":10, "y":4, "w":1.25},
+ {"label":"k4b", "x":11.25, "y":4, "w":1.25},
+ {"label":"k4c", "x":12.5, "y":4, "w":1.25},
+ {"label":"k4d", "x":13.75, "y":4, "w":1.25}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ {"label":"k00", "x":0, "y":0},
+ {"label":"k01", "x":1, "y":0},
+ {"label":"k02", "x":2, "y":0},
+ {"label":"k03", "x":3, "y":0},
+ {"label":"k04", "x":4, "y":0},
+ {"label":"k05", "x":5, "y":0},
+ {"label":"k06", "x":6, "y":0},
+ {"label":"k07", "x":7, "y":0},
+ {"label":"k08", "x":8, "y":0},
+ {"label":"k09", "x":9, "y":0},
+ {"label":"k0a", "x":10, "y":0},
+ {"label":"k0b", "x":11, "y":0},
+ {"label":"k0c", "x":12, "y":0},
+ {"label":"k0d", "x":13, "y":0},
+ {"label":"k49", "x":14, "y":0},
+
+ {"label":"k10", "x":0, "y":1, "w":1.5},
+ {"label":"k11", "x":1.5, "y":1},
+ {"label":"k12", "x":2.5, "y":1},
+ {"label":"k13", "x":3.5, "y":1},
+ {"label":"k14", "x":4.5, "y":1},
+