aboutsummaryrefslogtreecommitdiff
path: root/keyboards/mitosis/keymaps
diff options
context:
space:
mode:
authornoroadsleft <18669334+noroadsleft@users.noreply.github.com>2018-06-30 19:42:06 -0700
committerDrashna Jaelre <drashna@live.com>2018-06-30 19:42:06 -0700
commit585f753ffee5b81c5c7262d1d288d95342e28cd6 (patch)
tree5ec84e28d0e2e42395bb4a9d0e7cafefd8fa2fae /keyboards/mitosis/keymaps
parentc8e1397e08fad2d4747f77e8027ad60e26241fb0 (diff)
downloadqmk_firmware-585f753ffee5b81c5c7262d1d288d95342e28cd6.tar.gz
qmk_firmware-585f753ffee5b81c5c7262d1d288d95342e28cd6.zip
Mitosis refactor and Configurator support (#3271)
* Matrix refactor * Configurator support * Keymap refactor
Diffstat (limited to 'keyboards/mitosis/keymaps')
-rw-r--r--keyboards/mitosis/keymaps/carvac_dv/keymap.c163
-rw-r--r--keyboards/mitosis/keymaps/datagrok/keymap.c72
-rw-r--r--keyboards/mitosis/keymaps/default/keymap.c87
-rw-r--r--keyboards/mitosis/keymaps/mjt/keymap.c105
-rw-r--r--keyboards/mitosis/keymaps/nzen/keymap.c292
-rw-r--r--keyboards/mitosis/keymaps/nzen/readme.md2
6 files changed, 359 insertions, 362 deletions
diff --git a/keyboards/mitosis/keymaps/carvac_dv/keymap.c b/keyboards/mitosis/keymaps/carvac_dv/keymap.c
index 81b559a46..d97cb600e 100644
--- a/keyboards/mitosis/keymaps/carvac_dv/keymap.c
+++ b/keyboards/mitosis/keymaps/carvac_dv/keymap.c
@@ -3,7 +3,7 @@
3// number layer with all the numbers on the home row, and a function layer 3// number layer with all the numbers on the home row, and a function layer
4// that provides mouse keys among other things. 4// that provides mouse keys among other things.
5 5
6#include "mitosis.h" 6#include QMK_KEYBOARD_H
7 7
8enum mitosis_layers 8enum mitosis_layers
9{ 9{
@@ -27,93 +27,90 @@ enum mitosis_layers
27 27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 29
30/* QWERTY 30 /* QWERTY
31 * .--------------------------------------------..--------------------------------------------. 31 * .--------------------------------------------..--------------------------------------------.
32 * | Q | W | E | R | T || Y | U | I | O | P | 32 * | Q | W | E | R | T || Y | U | I | O | P |
33 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 33 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
34 * | A | S | D | F | G || J | H | K | L | ; | 34 * | A | S | D | F | G || J | H | K | L | ; |
35 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 35 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
36 * | Z | X | C | V | B || N | M | , | . | / | 36 * | Z | X | C | V | B || N | M | , | . | / |
37 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' 37 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
38 * | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR | 38 * | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR |
39 * |--------+--------+--------+--------||--------+--------+--------+--------| 39 * |--------+--------+--------+--------||--------+--------+--------+--------|
40 * | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT | 40 * | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT |
41 * '-----------------------------------''-----------------------------------' 41 * '-----------------------------------''-----------------------------------'
42 */ 42 */
43 43 [_STD] = LAYOUT( /* Standard; as compatible with dvorak and qwerty as possible */
44[_STD] = { /* Standard; as compatible with dvorak and qwerty as possible */ 44 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
45 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P }, 45 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
46 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, 46 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
47 {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH }, 47 KC_PGUP, KC_TAB, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_UP, KC_PSCR,
48 {XXXXXXX, KC_PGUP, KC_TAB, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_UP, KC_PSCR, XXXXXXX }, 48 KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT
49 {XXXXXXX, KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX } 49 ),
50}, 50
51 51 /* Number layout, for data entry and programming purposes (Dvorak result in parens)
52/* Number layout, for data entry and programming purposes (Dvorak result in parens) 52 * .--------------------------------------------..--------------------------------------------.
53 * .--------------------------------------------..--------------------------------------------. 53 * | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) |
54 * | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) | 54 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
55 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 55 * | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 |
56 * | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | 56 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
57 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 57 * | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 |
58 * | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | 58 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
59 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' 59 * | F11 | F12 | | || | | | |
60 * | F11 | F12 | | || | | | | 60 * |--------+--------+--------+--------||--------+--------+--------+--------|
61 * |--------+--------+--------+--------||--------+--------+--------+--------| 61 * | | | | || | | | |
62 * | | | | || | | | | 62 * '-----------------------------------''-----------------------------------'
63 * '-----------------------------------''-----------------------------------' 63 */
64 */ 64 [_NUM] = LAYOUT( /* Number layout along the home row for maximum speed*/
65 65 KC_TAB, _______, _______, KC_MINS, KC_EQL, KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC,
66[_NUM] = { /* Number layout along the home row for maximum speed*/ 66 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
67 {KC_TAB, _______, _______, KC_MINS, KC_EQL, KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC }, 67 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
68 {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 }, 68 KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
69 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 }, 69 _______, _______, _______, _______, _______, _______, _______, _______
70 {XXXXXXX, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, XXXXXXX }, 70 ),
71 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } 71
72}, 72
73 73 /* Fn layout, for typing purposes (Dvorak result in parens)
74 74 * .--------------------------------------------..--------------------------------------------.
75/* Fn layout, for typing purposes (Dvorak result in parens) 75 * | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) |
76 * .--------------------------------------------..--------------------------------------------. 76 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
77 * | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) | 77 * | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) |
78 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 78 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
79 * | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) | 79 * | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ |
80 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 80 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
81 * | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ | 81 * | VOLU | | | || | | PGUP | |
82 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' 82 * |--------+--------+--------+--------||--------+--------+--------+--------|
83 * | VOLU | | | || | | PGUP | | 83 * | VOLD | | | || | HOME | PGDN | END |
84 * |--------+--------+--------+--------||--------+--------+--------+--------| 84 * '-----------------------------------''-----------------------------------'
85 * | VOLD | | | || | HOME | PGDN | END | 85 */
86 * '-----------------------------------''-----------------------------------' 86 [_FN] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
87 */ 87 cursor keys on left hand, and all symbols*/
88 88 KC_GRV, _______, KC_MS_U, _______, _______, KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC,
89[_FN] = { /* Function Layer, primary alternative layer featuring numpad on right hand, 89 KC_ESC, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT,
90 cursor keys on left hand, and all symbols*/ 90 KC_APP, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, KC_BSPC, KC_DEL, KC_INS, KC_BSLS,
91 {KC_GRV, _______, KC_MS_U, _______, _______, KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC }, 91 KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, _______,
92 {KC_ESC, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT }, 92 KC_VOLD, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
93 {KC_APP, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, KC_BSPC, KC_DEL, KC_INS, KC_BSLS }, 93 ),
94 {XXXXXXX, KC_VOLU, _______, _______, _______, _______, _______, KC_PGUP, _______, XXXXXXX }, 94
95 {XXXXXXX, KC_VOLD, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END, XXXXXXX } 95 /* blank key layout template
96}, 96 * .--------------------------------------------..--------------------------------------------.
97 97 * | | | | | || | | | | |
98/* blank key layout template 98 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
99 * .--------------------------------------------..--------------------------------------------. 99 * | | | | | || | | | | |
100 * | | | | | || | | | | | 100 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
101 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 101 * | | | | | || | | | | |
102 * | | | | | || | | | | | 102 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
103 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| 103 * | | | | || | | | |
104 * | | | | | || | | | | | 104 * |--------+--------+--------+--------||--------+--------+--------+--------|
105 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' 105 * | | | | || | | | |
106 * | | | | || | | | | 106 * '-----------------------------------''-----------------------------------'
107 * |--------+--------+--------+--------||--------+--------+--------+--------| 107 */
108 * | | | | || | | | |
109 * '-----------------------------------''-----------------------------------'
110 */
111 108
112}; 109};
113 110
114void matrix_scan_user(void) { 111void matrix_scan_user(void) {
115 uint8_t layer = biton32(layer_state); 112 uint8_t layer = biton32(layer_state);
116 113
117 switch (layer) { 114 switch (layer) {
118 case _STD: 115 case _STD:
119 set_led_off; 116 set_led_off;
diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c
index 24d9d6500..fc08d36ce 100644
--- a/keyboards/mitosis/keymaps/datagrok/keymap.c
+++ b/keyboards/mitosis/keymaps/datagrok/keymap.c
@@ -1,4 +1,4 @@
1#include "mitosis.h" 1#include QMK_KEYBOARD_H
2 2
3enum mitosis_layers 3enum mitosis_layers
4{ 4{
@@ -26,41 +26,41 @@ enum mitosis_layers
26// other is released. Which doesn't bother me. 26// other is released. Which doesn't bother me.
27 27
28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 28const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 [_xQ] = { 29 [_xQ] = LAYOUT(
30 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, 30 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
31 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, 31 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
32 {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT}, 32 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
33 {XXXXXXX, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, XXXXXXX}, 33 KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP,
34 {XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX} 34 KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP
35 }, 35 ),
36 [_xW] = { 36 [_xW] = LAYOUT(
37 {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN}, 37 KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,
38 {KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, 38 KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
39 {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT}, 39 KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_QUOT,
40 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, 40 _______, _______, _______, _______, _______, _______, _______, _______,
41 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX} 41 _______, _______, _______, _______, _______, _______, _______, _______
42 }, 42 ),
43 [_xS] = { 43 [_xS] = LAYOUT(
44 {KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD}, 44 KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD,
45 {KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS}, 45 KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV, KC_UNDS,
46 {KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH}, 46 KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH,
47 {XXXXXXX, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______, XXXXXXX}, 47 _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______,
48 {XXXXXXX, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______, XXXXXXX}, 48 _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______
49 }, 49 ),
50 [_xN] = { 50 [_xN] = LAYOUT(
51 {_______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0}, 51 _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0,
52 {_______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, 52 _______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS,
53 {_______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL}, 53 _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL,
54 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, 54 _______, _______, _______, _______, _______, _______, _______, _______,
55 {XXXXXXX, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______, XXXXXXX}, 55 _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______
56 }, 56 ),
57 [_xF] = { 57 [_xF] = LAYOUT(
58 {_______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10}, 58 _______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10,
59 {_______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11}, 59 _______, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11,
60 {TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12}, 60 TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12,
61 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, 61 _______, _______, _______, _______, _______, _______, _______, _______,
62 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, 62 _______, _______, _______, _______, _______, _______, _______, _______
63 }, 63 ),
64}; 64};
65 65
66// This is a hack to place <question mark> on <shift-comma> and <exclaimation 66// This is a hack to place <question mark> on <shift-comma> and <exclaimation
diff --git a/keyboards/mitosis/keymaps/default/keymap.c b/keyboards/mitosis/keymaps/default/keymap.c
index 320d33db6..99f57c55f 100644
--- a/keyboards/mitosis/keymaps/default/keymap.c
+++ b/keyboards/mitosis/keymaps/default/keymap.c
@@ -1,7 +1,7 @@
1// this is the style you want to emulate. 1// this is the style you want to emulate.
2// This is the canonical layout file for the Quantum project. If you want to add another keyboard, 2// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
3 3
4#include "mitosis.h" 4#include QMK_KEYBOARD_H
5 5
6// Each layer gets a name for readability, which is then used in the keymap matrix below. 6// Each layer gets a name for readability, which is then used in the keymap matrix below.
7// The underscores don't mean anything - you can have a layer called STUFF or any other name. 7// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -15,7 +15,7 @@ enum mitosis_layers
15 _FUNCSHIFT 15 _FUNCSHIFT
16}; 16};
17 17
18enum mitosis_keycodes 18enum mitosis_keycodes
19{ 19{
20 FNKEY = SAFE_RANGE, 20 FNKEY = SAFE_RANGE,
21 SHIFT 21 SHIFT
@@ -38,44 +38,45 @@ enum mitosis_macros
38#define XXXXXXX KC_NO 38#define XXXXXXX KC_NO
39 39
40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 40const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41[_MALT] = { /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */ 41
42 {KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L }, 42 [_MALT] = LAYOUT( /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
43 {KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R }, 43 KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L,
44 {KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X }, 44 KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R,
45 {XXXXXXX, M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP, XXXXXXX }, 45 KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X,
46 {XXXXXXX, M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN, XXXXXXX } 46 M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP,
47}, 47 M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN
48 48 ),
49 49
50[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively 50
51 able to modify individual key's shifted behaviour */ 51 [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
52 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 52 able to modify individual key's shifted behaviour */
53 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 53 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
54 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 54 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
55 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, 55 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
56 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } 56 _______, _______, _______, _______, _______, _______, _______, _______,
57}, 57 _______, _______, _______, _______, _______, _______, _______, _______
58 58 ),
59 59
60 60
61[_FUNCTION] = { /* Function Layer, primary alternative layer featuring numpad on right hand, 61
62 cursor keys on left hand, and all symbols*/ 62 [_FUNCTION] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
63 {KC_AMPR, KC_PERC, KC_UP, KC_CIRC, KC_PIPE, KC_LBRC, KC_7, KC_8, KC_9, KC_MINS }, 63 cursor keys on left hand, and all symbols*/
64 {KC_AT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH, KC_LPRN, KC_4, KC_5, KC_6, KC_PLUS }, 64 KC_AMPR, KC_PERC, KC_UP, KC_CIRC, KC_PIPE, KC_LBRC, KC_7, KC_8, KC_9, KC_MINS,
65 {KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR, KC_BSLS, KC_LCBR, KC_1, KC_2, KC_3, KC_ENT }, 65 KC_AT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH, KC_LPRN, KC_4, KC_5, KC_6, KC_PLUS,
66 {XXXXXXX, KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT, XXXXXXX }, 66 KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR, KC_BSLS, KC_LCBR, KC_1, KC_2, KC_3, KC_ENT,
67 {XXXXXXX, KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR, XXXXXXX } 67 KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT,
68}, 68 KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR
69 69 ),
70 70
71[_FUNCSHIFT] = { /* Function Shifted Layer, secondary alternative layer with closing brackets, 71
72 and F-keys under their numpad equivalents*/ 72 [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer, secondary alternative layer with closing brackets,
73 {_______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10 }, 73 and F-keys under their numpad equivalents*/
74 {_______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11 }, 74 _______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10,
75 {_______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12 }, 75 _______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11,
76 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, 76 _______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12,
77 {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } 77 _______, _______, _______, _______, _______, _______, _______, _______,
78} 78 _______, _______, _______, _______, _______, _______, _______, _______
79 )
79 80
80}; 81};
81 82
@@ -128,7 +129,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
128 return MACRO(T(ESC), END); 129 return MACRO(T(ESC), END);
129 } 130 }
130 } 131 }
131 break; 132 break;
132 133
133 break; 134 break;
134 } 135 }
@@ -183,7 +184,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
183 184
184 //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded 185 //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded
185 if (layer == _FUNCSHIFT) { 186 if (layer == _FUNCSHIFT) {
186 //F1-F12 should be sent as unshifted keycodes, 187 //F1-F12 should be sent as unshifted keycodes,
187 //and ] needs to be unshifted or it is sent as } 188 //and ] needs to be unshifted or it is sent as }
188 if ( (keycode >= KC_F1 && keycode <= KC_F12) 189 if ( (keycode >= KC_F1 && keycode <= KC_F12)
189 || keycode == KC_RBRC ) { 190 || keycode == KC_RBRC ) {
@@ -200,7 +201,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
200 201
201void matrix_scan_user(void) { 202void matrix_scan_user(void) {
202 uint8_t layer = biton32(layer_state); 203 uint8_t layer = biton32(layer_state);
203 204
204 switch (layer) { 205 switch (layer) {
205 case _MALT: 206 case _MALT:
206 set_led_off; 207 set_led_off;
diff --git a/keyboards/mitosis/keymaps/mjt/keymap.c b/keyboards/mitosis/keymaps/mjt/keymap.c
index 4663c0acf..260fa133f 100644
--- a/keyboards/mitosis/keymaps/mjt/keymap.c
+++ b/keyboards/mitosis/keymaps/mjt/keymap.c
@@ -1,11 +1,10 @@
1// this is the style you want to emulate. 1// this is the style you want to emulate.
2// This is the canonical layout file for the Quantum project. If you want to add another keyboard, 2// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
3 3
4#include "mitosis.h" 4#include QMK_KEYBOARD_H
5#ifdef AUDIO_ENABLE 5#ifdef AUDIO_ENABLE
6 #include "audio.h" 6 #include "audio.h"
7#endif 7#endif
8#include "eeconfig.h"
9 8
10// Each layer gets a name for readability, which is then used in the keymap matrix below. 9// Each layer gets a name for readability, which is then used in the keymap matrix below.
11// The underscores don't mean anything - you can have a layer called STUFF or any other name. 10// The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -53,57 +52,57 @@ enum mitosis_macros
53#define XXXXXXX KC_NO 52#define XXXXXXX KC_NO
54 53
55const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 54const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56 [_QWERTY] = { /* QWERTY adapted to this crazy thing */ 55 [_QWERTY] = LAYOUT( /* QWERTY adapted to this crazy thing */
57 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P }, 56 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
58 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN }, 57 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
59 {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) }, 58 SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
60 {XXXXXXX, KC_LCTL, M(ESCM), KC_TAB, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX }, 59 KC_LCTL, M(ESCM), KC_TAB, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
61 {XXXXXXX, KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST), XXXXXXX } 60 KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST)
62 }, 61 ),
63 62
64 63
65 [_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively 64 [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
66 able to modify individual key's shifted behaviour */ 65 able to modify individual key's shifted behaviour */
67 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
68 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
69 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
70 {XXXXXXX, __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______, XXXXXXX }, 69 __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______,
71 {XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, KC_NO, XXXXXXX } 70 __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, XXXXXXX
72 }, 71 ),
73 72
74 73
75 [_FUNCTIONPC] = { /* Function Layer mimicks planck's raise layer somewhat */ 74 [_FUNCTIONPC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
76 {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 }, 75 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
77 {LCTL(KC_A), LCTL(KC_S), _______, LCTL(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC }, 76 LCTL(KC_A), LCTL(KC_S), _______, LCTL(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
78 {LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT }, 77 LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT,
79 {XXXXXXX, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX }, 78 __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
80 {XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } 79 __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
81 }, 80 ),
82 81
83 [_FUNCTIONMAC] = { /* Function Layer mimicks planck's raise layer somewhat */ 82 [_FUNCTIONMAC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
84 {KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 }, 83 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
85 {LGUI(KC_A), LGUI(KC_S), _______, LGUI(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC }, 84 LGUI(KC_A), LGUI(KC_S), _______, LGUI(KC_F),_______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
86 {LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT }, 85 LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______, _______, KC_BSLS, _______, _______, KC_QUOT,
87 {XXXXXXX, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX }, 86 __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
88 {XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } 87 __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
89 }, 88 ),
90 89
91 [_FUNCSHIFT] = { /* Function Shifted Layer mimicks planck's lower layer somewhat */ 90 [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer mimicks planck's lower layer somewhat */
92 {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, 91 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
93 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_LCBR, KC_RCBR }, 92 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_LCBR, KC_RCBR,
94 {KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______ }, 93 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
95 {XXXXXXX, __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______, XXXXXXX }, 94 __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______,
96 {XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______, XXXXXXX } 95 __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______
97 }, 96 ),
98 97
99 98
100 [_ADJUST] = { /* Adjust layer for fancy stuff and macros */ 99 [_ADJUST] = LAYOUT( /* Adjust layer for fancy stuff and macros */
101 {RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______ }, 100 RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______,
102 {FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______ }, 101 FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______,
103 {MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY }, 102 MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY,
104 {XXXXXXX, __MOD__, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, XXXXXXX }, 103 __MOD__, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______,
105 {XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__, XXXXXXX } 104 __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__
106 } 105 )
107 106
108}; 107};
109 108
diff --git a/keyboards/mitosis/keymaps/nzen/keymap.c b/keyboards/mitosis/keymaps/nzen/keymap.c
index bdd63a17b..7a276cade 100644
--- a/keyboards/mitosis/keymaps/nzen/keymap.c
+++ b/keyboards/mitosis/keymaps/nzen/keymap.c
@@ -1,6 +1,6 @@
1 1
2 2
3#include "mitosis.h" 3#include QMK_KEYBOARD_H
4 4
5enum mitosis_layers 5enum mitosis_layers
6{ 6{
@@ -25,154 +25,154 @@ enum mitosis_layers
25#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 25#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
26 26
27// Fillers to make layering more clear 27// Fillers to make layering more clear
28#define ___ KC_TRNS 28#define _______ KC_TRNS
29#define XXX KC_NO 29#define XXX KC_NO
30 30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32// https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt 32 // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
33/* QWERTY 33 /* QWERTY
34['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ], 34 ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
35['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ], 35 ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
36['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ], 36 ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
37[ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ], 37 [ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ],
38[ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ] 38 [ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ]
39 */ 39 */
40[_QWERTY] = { 40 [_QWERTY] = LAYOUT(
41 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, 41 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
42 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON}, 42 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCOLON,
43 {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE}, 43 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE,
44 {XXX, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE, XXX}, 44 KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE,
45 {XXX, KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT, XXX} 45 KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT
46}, 46 ),
47/* 47 /*
48['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ], 48 ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
49['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ], 49 ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
50['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ], 50 ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
51[ '', '', '', '',/ ** / '', '', '', '', ], 51 [ '', '', '', '',/ ** / '', '', '', '', ],
52[ '', '4', '', '',/ ** / '', '', '', '', ] 52 [ '', '4', '', '',/ ** / '', '', '', '', ]
53 */ 53 */
54[_WORKMAN] = { 54 [_WORKMAN] = LAYOUT(
55 {KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON}, 55 KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON,
56 {KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I}, 56 KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I,
57 {KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE}, 57 KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE,
58 {XXX, ___, ___, ___, ___, ___, ___, ___, ___, XXX}, 58 _______, _______, _______, _______, _______, _______, _______, _______,
59 {XXX, ___, KC_1, ___, ___, ___, ___, ___, ___, XXX} 59 _______, KC_1, _______, _______, _______, _______, _______, _______
60}, 60 ),
61/* 61 /*
62['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ], 62 ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
63[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ], 63 [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
64['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ], 64 ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
65// -- 65 // --
66[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ], 66 [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ],
67[ '', '6', '', '',/ ** / '', '', '', '', ] 67 [ '', '6', '', '',/ ** / '', '', '', '', ]
68 */ 68 */
69[_NUMBERS] = { 69 [_NUMBERS] = LAYOUT(
70 {KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP}, 70 KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP,
71 {KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END}, 71 KC_4, KC_3, KC_2, KC_1, KC_0, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END,
72 {LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT}, 72 LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT,
73 {XXX, ___, ___, ___, TG( 2 ), TG( 3 ), ___, ___, ___, XXX}, 73 _______, _______, _______, TG( 2 ), TG( 3 ), _______, _______, _______,
74 {XXX, ___, KC_2, ___, ___, ___, ___, ___, ___, XXX} 74 _______, KC_2, _______, _______, _______, _______, _______, _______
75}, 75 ),
76/* 76 /*
77[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ], 77 [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
78[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ], 78 [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
79[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ], 79 [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
80// -- 80 // --
81['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ], 81 ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ],
82['', '7', '', '',/ ** / '', '', '', '', ] 82 ['', '7', '', '',/ ** / '', '', '', '', ]
83 */ 83 */
84[_PUNCT] = { 84 [_PUNCT] = LAYOUT(
85 {KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT}, 85 KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT,
86 {KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL}, 86 KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON, KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL,
87 {KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR, KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH}, 87 KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR, KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH,
88 {XXX, ___, ___, ___, TG( 4 ), TG( 3 ), ___, ___, ___, XXX}, 88 _______, _______, _______, TG( 4 ), TG( 3 ), _______, _______, _______,
89 {XXX, ___, KC_3, ___, ___, ___, ___, ___, ___, XXX} 89 _______, KC_3, _______, _______, _______, _______, _______, _______
90}, 90 ),
91/* 91 /*
92['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ], 92 ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
93['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ], 93 ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
94['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ], 94 ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
95// -- 95 // --
96[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ], 96 [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ],
97[ '', '8', '', '',/ ** / '', '', '', '', ] 97 [ '', '8', '', '',/ ** / '', '', '', '', ]
98 */ 98 */
99[_MOUSE] = { 99 [_MOUSE] = LAYOUT(
100 {KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP}, 100 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MENU, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP,
101 {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN}, 101 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MENU, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
102 {KC_F11, KC_F12, KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3}, 102 KC_F11, KC_F12, KC_GRAVE, KC__MUTE, KC_ESCAPE, KC_PSCREEN, KC_SLCK, KC_MS_WH_LEFT, KC_MS_WH_RIGHT, KC_MS_BTN3,
103 {XXX, ___, ___, ___, TG( 4 ), TG( 5 ), ___, ___, ___, XXX}, 103 _______, _______, _______, TG( 4 ), TG( 5 ), _______, _______, _______,
104 {XXX, ___, KC_4, ___, ___, ___, ___, ___, ___, XXX} 104 _______, KC_4, _______, _______, _______, _______, _______, _______
105}, 105 ),
106/* 106 /*
107['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ], 107 ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
108['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ], 108 ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
109['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ], 109 ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
110// -- 110 // --
111[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ], 111 [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ],
112[ '', '9', '', '',/ ** / '', '', '', '', ] 112 [ '', '9', '', '',/ ** / '', '', '', '', ]
113 */ 113 */
114[_LAYERS] = { 114 [_LAYERS] = LAYOUT(
115 {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, 115 KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
116 {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, 116 KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
117 {TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM}, 117 TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
118 {XXX, ___, ___, ___, TG( 5 ), TG( 5 ), ___, ___, ___, XXX}, 118 _______, _______, _______, TG( 5 ), TG( 5 ), _______, _______, _______,
119 {XXX, ___, KC_5, ___, ___, ___, ___, ___, ___, XXX} 119 _______, KC_5, _______, _______, _______, _______, _______, _______
120}, 120 ),
121/* 121 /*
122['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ], 122 ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
123['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ], 123 ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
124['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ], 124 ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
125// -- 125 // --
126[ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ], 126 [ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ],
127[ '', 'A', '', '',/ ** / '', '', '', '', ] 127 [ '', 'A', '', '',/ ** / '', '', '', '', ]
128 */ 128 */
129[_GAMING] = { 129 [_GAMING] = LAYOUT(
130 {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1}, 130 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1,
131 {KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2}, 131 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2,
132 {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3}, 132 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3,
133 {XXX, ___, ___, ___, TG( 6 ), KC_6, ___, ___, ___, XXX}, 133 _______, _______, _______, TG( 6 ), KC_6, _______, _______, _______,
134 {XXX, ___, KC_6, ___, ___, ___, ___, ___, ___, XXX} 134 _______, KC_6, _______, _______, _______, _______, _______, _______
135}, 135 ),
136/* 136 /*
137['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ], 137 ['\u00a2'cent* /, '\u00bc'1/4* /, '\u00bd'1/2* /, '\u03a3'sum* /, '\u00d8'Oslash* /,/ ** / '\u250f'box ul* /, '\u2533'box um* /, '\u2513'box ur* /, '\u03bb'lambda* /, '\u2018'sm'dn* / ],
138['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ], 138 ['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
139['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ], 139 ['\u00a1'down !* /, '\u00bf'down ?* /, '\u00d7'mult x* /, '\u00f7'div/ * /, '\u03c0'pi* /,/ ** / '\u2517'box ll* /, '\u253b'bos lm* /, '\u251b'box lr* /, '\u201c'sm"dn* /, '\u201d'sm"up* / ],
140// -- 140 // --
141[ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ], 141 [ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ],
142[ '', 'B', '', '',/ ** / '', '', '', '', ] 142 [ '', 'B', '', '',/ ** / '', '', '', '', ]
143 */ 143 */
144[_UNICODE] = { 144 [_UNICODE] = LAYOUT(
145 {UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018)}, 145 UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018),
146 {UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019)}, 146 UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019),
147 {UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D)}, 147 UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D),
148 {XXX, ___, ___, ___, TG( 7 ), KC_7, ___, ___, ___, XXX}, 148 _______, _______, _______, TG( 7 ), KC_7, _______, _______, _______,
149 {XXX, ___, KC_7, ___, ___, ___, ___, ___, ___, XXX} 149 _______, KC_7, _______, _______, _______, _______, _______, _______
150}, 150 ),
151/* 151 /*
152['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ], 152 ['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
153['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ], 153 ['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
154['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ], 154 ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
155// -- 155 // --
156[ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ], 156 [ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ],
157[ '', 'C', '', '',/ ** / '', '', '', '', ] 157 [ '', 'C', '', '',/ ** / '', '', '', '', ]
158 */ 158 */
159[_NUMPAD] = { 159 [_NUMPAD] = LAYOUT(
160 {KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC__VOLUP, KC__VOLDOWN/*sic on double underscore here*/}, 160 KC_KP_DOT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_EQUAL, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC__VOLUP, KC__VOLDOWN,
161 {KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUMLOCK, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE}, 161 KC_KP_0, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_NUMLOCK, KC_WWW_BACK, KC_AUDIO_MUTE, KC_RGUI, KC_PAUSE,
162 {KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT}, 162 KC_KP_ASTERISK, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, KC_KP_ENTER, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_INSERT,
163 {XXX, ___, ___, ___, TG( 8 ), KC_8, ___, ___, ___, XXX}, 163 _______, _______, _______, TG( 8 ), KC_8, _______, _______, _______,
164 {XXX, ___, KC_8, ___, ___, ___, ___, ___, ___, XXX} 164 _______, KC_8, _______, _______, _______, _______, _______, _______
165}// , 165 )// ,
166/* 166 /*
167 * / 167 * /
168[_] = { 168 [_] = LAYOUT(
169 {, , , , , , , , ,}, 169 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
170 {, , , , , , , , ,}, 170 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
171 {, , , , , , , , ,}, 171 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
172 {XXX, ___, ___, ___, TG( ), TG( ), ___, ___, ___, XXX}, 172 _______, _______, _______, _______, _______, _______, _______, _______,
173 {XXX, ___, KC_, ___, ___, ___, ___, ___, ___, XXX} 173 _______, _______, _______, _______, _______, _______, _______, _______
174} 174 )
175 */ 175 */
176}; 176};
177 177
178void matrix_scan_user(void) { 178void matrix_scan_user(void) {
diff --git a/keyboards/mitosis/keymaps/nzen/readme.md b/keyboards/mitosis/keymaps/nzen/readme.md
index d08c3988e..c11981bd4 100644
--- a/keyboards/mitosis/keymaps/nzen/readme.md
+++ b/keyboards/mitosis/keymaps/nzen/readme.md
@@ -18,7 +18,7 @@ Bottom cluster is the same on all levels and mostly symmetric. The 'ring fingers
18* back del/enter ctrl toggle-layer 18* back del/enter ctrl toggle-layer
19* alt N/caps shift space 19* alt N/caps shift space
20 20
21You can preview the layout by cloning [https://gitlab.com/Nzen/impatient-broth-nenem](this webpage). The page imitates qmk's fallthrough. 21You can preview the layout by cloning [this webpage](https://gitlab.com/Nzen/impatient-broth-nenem). The page imitates qmk's fallthrough.
22 22
23['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' 23['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P'
24['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' 24['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :'