summaryrefslogtreecommitdiffstats
path: root/keyboards/dz60
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/dz60')
-rw-r--r--keyboards/dz60/keymaps/split_space_arrows/keymap.c67
-rw-r--r--keyboards/dz60/keymaps/split_space_arrows/rules.mk7
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/config.h24
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/keymap.c123
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/layout.json4877
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/rules.mk15
-rw-r--r--keyboards/dz60/rules.mk6
7 files changed, 5116 insertions, 3 deletions
diff --git a/keyboards/dz60/keymaps/split_space_arrows/keymap.c b/keyboards/dz60/keymaps/split_space_arrows/keymap.c
new file mode 100644
index 0000000000..6dbfaa9375
--- /dev/null
+++ b/keyboards/dz60/keymaps/split_space_arrows/keymap.c
@@ -0,0 +1,67 @@
+#include QMK_KEYBOARD_H
+
+/* DZ60 layout using following options (from layouts diagram on KBDfans):
+ * - plate B (2.25u lshift)
+ * - opt 4 (1.75, 1, 1 on rshift)
+ * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys)
+ * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c
+ */
+
+#define LAYOUT_b_4_10( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
+ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
+ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
+ K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
+ ) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
+ { K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
+ { K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
+ { K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
+ { K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Layer 0: basic qwerty */
+ LAYOUT_b_4_10(
+ // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||------2.0-------|
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
+ //
+ // |----1.5-----||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|----1.5-----|
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
+ //
+ // |----1.75------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------2.25--------||
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
+ //
+ // |------2.25--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----1.75------|--------|--------||
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH), KC_UP, KC_HYPR,
+ // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
+ //
+ // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
+ KC_MEH, KC_LALT, KC_LGUI, KC_SPC, TT(1), MO(1), TG(1), TT(2), KC_LEFT, KC_DOWN, KC_RGHT
+ // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
+ ),
+
+ /* Layer 1: primary fn layer */
+ LAYOUT_b_4_10(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ KC_TAB, KC_NO, KC_HOME, KC_UP, KC_END, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_CAPS, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_NO, KC_ENT,
+ KC_LSFT, KC_MPRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_LOCK, KC_PGUP, KC_INS,
+ KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
+ ),
+
+ /* Layer 2: mouse navigation */
+ /* Layer 3: numpad */
+ /* Layer 4: RGB lighting controls and keyboard config, reset */
+ LAYOUT_b_4_10(
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5),
+ KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_VAI, RGB_HUI,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_SAD, RGB_VAD, RGB_SAI
+ ),
+};
diff --git a/keyboards/dz60/keymaps/split_space_arrows/rules.mk b/keyboards/dz60/keymaps/split_space_arrows/rules.mk
new file mode 100644
index 0000000000..5d38b9d367
--- /dev/null
+++ b/keyboards/dz60/keymaps/split_space_arrows/rules.mk
@@ -0,0 +1,7 @@
+# Build Options
+# override the options specified in dz60/rules.mk
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+KEY_LOCK_ENABLE = yes # Enables use of KC_LOCK
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/config.h b/keyboards/dz60/keymaps/twschum_b_4_10/config.h
new file mode 100644
index 0000000000..15cabda364
--- /dev/null
+++ b/keyboards/dz60/keymaps/twschum_b_4_10/config.h
@@ -0,0 +1,24 @@
+#pragma once
+
+// number of taps for TT Tap-Toggle keys to toggle
+#ifdef TAPPING_TOGGLE
+#undef TAPPING_TOGGLE
+#endif
+#define TAPPING_TOGGLE 2
+
+// time in ms that counts as a "tap" for various features
+#ifdef TAPPING_TERM
+#undef TAPPING_TERM
+#endif
+#define TAPPING_TERM 100
+
+// https://docs.qmk.fm/features/mouse-keys#configuring-the-behavior-of-mousekeys
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 10
+#define MOUSEKEY_TIME_TO_MAX 15
+#define MOUSEKEY_WHEEL_MAX_SPEED 1
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
+
+// flags from user/twschum/
+#define TWSCHUM_TAPPING_CTRL_PREFIX 1
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c
new file mode 100644
index 0000000000..6efb567133
--- /dev/null
+++ b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c
@@ -0,0 +1,123 @@
+#include QMK_KEYBOARD_H
+#include "twschum.h"
+
+/* DZ60 layout using following options (from layouts diagram on KBDfans):
+ * - plate B (2.25u lshift)
+ * - opt 4 (1.75, 1, 1 on rshift)
+ * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys)
+ * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c
+ */
+
+
+#define LAYOUT_b_4_10( \
+ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
+ K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
+ K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
+ K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
+ K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
+ ) { \
+ { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXXXXX, K014 }, \
+ { K100, XXXXXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
+ { K200, XXXXXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXXXXX }, \
+ { K300, XXXXXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, XXXXXXX, K312, K313, K314 }, \
+ { K400, K401, XXXXXXX, K403, K404, XXXXXXX, K406, XXXXXXX, K408, XXXXXXX, K410, K411, K412, K413, K414 } \
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* base 60% qwerty */
+ LAYOUT_b_4_10(
+ // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
+ //
+ // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
+ //
+ // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
+ //
+ // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
+ KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, /*SFT_T*/KC_SLSH, KC_UP, VIM_START,
+ // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
+ //
+ // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
+ MO(_Fn), KC_LALT, KC_LGUI, KC_SPC, TT(_Nav), MO(_Fn), TG(_Num), TT(_Cfg), KC_LEFT, KC_DOWN, KC_RGHT
+ // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
+ ),
+
+ /* vim mode */
+ LAYOUT_b_4_10(
+ VIM_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, VIM_W, VIM_E, KC_R, _______, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, _______, _______, _______,
+ _______, VIM_A, VIM_S, VIM_D, _______, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, _______, _______, _______,
+ VIM_SHIFT, _______, VIM_X, VIM_C, VIM_V, VIM_B, _______, _______, VIM_COMMA, VIM_PERIOD, _______, _______, VIM_ESC,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* primary fn layer */
+ LAYOUT_b_4_10(
+ // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
+ //
+ // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
+ KC_TAB, CODE_PASTE, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LESS_PD, XXXXXXX, XXXXXXX, CODE_PASTE,
+ // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
+ //
+ // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
+ KC_CAPS, SALT_CMD, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_ENT,
+ // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
+ //
+ // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
+ KC_LSHIFT, KC_MPRV, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, XXXXXXX, XXXXXXX, KC_LOCK, KC_PGUP, KC_INS,
+ // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
+ //
+ // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
+ KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
+ ),
+
+ /* mouse navigation */
+ LAYOUT_b_4_10(
+ TO(_Base), KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, XXXXXXX, XXXXXXX, KC_SLEP, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_LCTL, KC_MS_BTN3, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_LSHIFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ /* numpad layer */
+ LAYOUT_b_4_10(
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_PLUS, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_KP_ASTERISK, XXXXXXX, KC_ENT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_KP_ENTER, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+
+
+ /* RGB lighting controls and keyboard config, reset */
+ LAYOUT_b_4_10(
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_L0_RGB, XXXXXXX, XXXXXXX, TO(_None),
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD,
+ EN_CTRL_SHORTCUTS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_LAYER_RGB, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSHIFT,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAI, RGB_HUI,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_VAD, RGB_SAI
+ ),
+
+ /* soft "off" state where none of the keystroke register */
+ LAYOUT_b_4_10(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_Base),
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
+ ),
+};
+
+uint8_t vim_cmd_layer(void) {
+ return _Vim;
+}
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json
new file mode 100644
index 0000000000..cd484f9d89
--- /dev/null
+++ b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json
@@ -0,0 +1,4877 @@
+{
+ "configKeymap":{
+ "keys":[
+ "K00",
+ "K01",
+ "K02",
+ "K03",
+ "K04",
+ "K05",
+ "K06",
+ "K07",
+ "K08",
+ "K09",
+ "K0A",
+ "K0B",
+ "K0C",
+ "K0D",
+ "K2D",
+ "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",
+ "K30",
+ "K31",
+ "K32",
+ "K33",
+ "K34",
+ "K35",
+ "K36",
+ "K37",
+ "K38",
+ "K39",
+ "K3A",
+ "K3B",
+ "K3C",
+ "K3D",
+ "K40",
+ "K41",
+ "K42",
+ "K44",
+ "K45",
+ "K46",
+ "K48",
+ "K49",
+ "K4A",
+ "K4B",
+ "K4C"
+ ],
+ "positions":[
+ [
+ "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",
+ "KC_NO",
+ "K44",
+ "K45",
+ "K46",
+ "KC_NO",
+ "K48",
+ "K49",
+ "K4A",
+ "K4B",
+ "K4C",
+ "KC_NO"
+ ]
+ ]
+ },
+ "keySections":[
+ {
+ "row1":[
+ {
+ "id":"k00",
+ "value":"ESC",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k01",
+ "value":"1",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k02",
+ "value":"2",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k03",
+ "value":"3",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k04",
+ "value":"4",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k05",
+ "value":"5",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k06",
+ "value":"6",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k07",
+ "value":"7",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k08",
+ "value":"8",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k09",
+ "value":"9",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k0A",
+ "value":"0",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k0B",
+ "value":"MINS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k0C",
+ "value":"EQL",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ }
+ ],
+ "backspace":[
+ [
+ {
+ "id":"k0D",
+ "value":"BSPC",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k200",
+ "zone":"Backspace"
+ },
+ {
+ "id":"k2D",
+ "value":"NO",
+ "type":"nodisplay",
+ "showMenu":false
+ }
+ ],
+ [
+ {
+ "id":"k0D",
+ "value":"PSCR",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Backspace"
+ },
+ {
+ "id":"k2D",
+ "value":"PAUS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Backspace"
+ }
+ ]
+ ],
+ "row2":[
+ {
+ "id":"k10",
+ "value":"TAB",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k150"
+ },
+ {
+ "id":"k11",
+ "value":"Q",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k12",
+ "value":"W",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k13",
+ "value":"E",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k14",
+ "value":"R",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k15",
+ "value":"T",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k16",
+ "value":"Y",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k17",
+ "value":"U",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k18",
+ "value":"I",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k19",
+ "value":"O",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k1A",
+ "value":"P",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k1B",
+ "value":"LBRC",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k1C",
+ "value":"RBRC",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ }
+ ],
+ "row2pipe":[
+ [
+ {
+ "id":"k1D",
+ "value":"BSLS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k150",
+ "zone":"Enter"
+ }
+ ],
+ [
+ {
+ "id":"k1D",
+ "value":"ENT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"kISO",
+ "zone":"Enter"
+ }
+ ]
+ ],
+ "caps":[
+ [
+ {
+ "id":"k20",
+ "value":"LCTL",
+ "type":"normal",
+ "secondary":"LCTL",
+ "showMenu":false,
+ "shape":"k175",
+ "zone":"Caps Lock"
+ }
+ ],
+ [
+ {
+ "id":"k20",
+ "value":"CAPS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k175stepped",
+ "zone":"Caps Lock"
+ }
+ ]
+ ],
+ "row3":[
+ {
+ "id":"k21",
+ "value":"A",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k22",
+ "value":"S",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k23",
+ "value":"D",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k24",
+ "value":"F",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k25",
+ "value":"G",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k26",
+ "value":"H",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k27",
+ "value":"J",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k28",
+ "value":"K",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k29",
+ "value":"L",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k2A",
+ "value":"SCLN",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k2B",
+ "value":"QUOT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ }
+ ],
+ "enter":[
+ [
+ {
+ "id":"k2C",
+ "value":"ENT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k225",
+ "zone":"Enter"
+ }
+ ],
+ [
+ {
+ "id":"k2C",
+ "value":"NUHS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Enter"
+ }
+ ]
+ ],
+ "leftShift":[
+ [
+ {
+ "id":"k30",
+ "value":"LSFT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k225",
+ "zone":"Left Shift"
+ },
+ {
+ "id":"k31",
+ "value":"NO",
+ "type":"nodisplay",
+ "showMenu":false
+ }
+ ],
+ [
+ {
+ "id":"k30",
+ "value":"LSFT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k125",
+ "zone":"Left Shift"
+ },
+ {
+ "id":"k31",
+ "value":"NUBS",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Left Shift"
+ }
+ ]
+ ],
+ "row4":[
+ {
+ "id":"k32",
+ "value":"Z",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k33",
+ "value":"X",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k34",
+ "value":"C",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k35",
+ "value":"V",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k36",
+ "value":"B",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k37",
+ "value":"N",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k38",
+ "value":"M",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k39",
+ "value":"COMM",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ },
+ {
+ "id":"k3A",
+ "value":"DOT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100"
+ }
+ ],
+ "rightShift":[
+ [
+ {
+ "id":"k3B",
+ "value":"SLSH",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3C",
+ "value":"RSFT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k275",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3D",
+ "value":"NO",
+ "type":"nodisplay"
+ }
+ ],
+ [
+ {
+ "id":"k3B",
+ "value":"SLSH",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3C",
+ "value":"RSFT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k175",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3D",
+ "value":"L1",
+ "type":"momentary",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Right Shift"
+ }
+ ],
+ [
+ {
+ "id":"k3B",
+ "value":"SLSH",
+ "type":"tapkey",
+ "secondary":"RSFT",
+ "showMenu":false,
+ "shape":"k175",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3C",
+ "value":"UP",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Right Shift"
+ },
+ {
+ "id":"k3D",
+ "value":"HYPR",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k100",
+ "zone":"Right Shift"
+ }
+ ]
+ ],
+ "row5":[
+ [
+ {
+ "id":"k40",
+ "value":"MEH",
+ "type":"normal",
+ "secondary":"MEH",
+ "showMenu":false,
+ "shape":"k125",
+ "zone":"Bottom Row"
+ },
+ {
+ "id":"k41",
+ "value":"LALT",
+ "type":"normal",
+ "secondary":null,
+ "showMenu":false,
+ "shape":"k125",
+ "zone":"Bottom Row"
+ },
+ {
+ "id":"k42",
+ "value":"LGUI",