~ruther/qmk_firmware

585f753ffee5b81c5c7262d1d288d95342e28cd6 — noroadsleft 7 years ago c8e1397
Mitosis refactor and Configurator support (#3271)

* Matrix refactor

* Configurator support

* Keymap refactor
A keyboards/mitosis/info.json => keyboards/mitosis/info.json +12 -0
@@ 0,0 1,12 @@
{
  "keyboard_name": "Mitosis",
  "url": "",
  "maintainer": "qmk",
  "width": 12,
  "height": 5.75,
  "layouts": {
    "LAYOUT": {
      "layout": [{"x":0, "y":0.75}, {"x":1, "y":0.25}, {"x":2, "y":0}, {"x":3, "y":0.25}, {"x":4, "y":0.125}, {"x":7, "y":0.125}, {"x":8, "y":0.25}, {"x":9, "y":0}, {"x":10, "y":0.25}, {"x":11, "y":0.75}, {"x":0, "y":1.75}, {"x":1, "y":1.25}, {"x":2, "y":1}, {"x":3, "y":1.25}, {"x":4, "y":1.125}, {"x":7, "y":1.125}, {"x":8, "y":1.25}, {"x":9, "y":1}, {"x":10, "y":1.25}, {"x":11, "y":1.75}, {"x":0, "y":2.75}, {"x":1, "y":2.25}, {"x":2, "y":2}, {"x":3, "y":2.25}, {"x":4, "y":2.125}, {"x":7, "y":2.125}, {"x":8, "y":2.25}, {"x":9, "y":2}, {"x":10, "y":2.25}, {"x":11, "y":2.75}, {"x":1.5, "y":3.75}, {"x":2.5, "y":3.75}, {"x":3.5, "y":3.75}, {"x":4.5, "y":3.75}, {"x":6.5, "y":3.75}, {"x":7.5, "y":3.75}, {"x":8.5, "y":3.75}, {"x":9.5, "y":3.75}, {"x":1.5, "y":4.75}, {"x":2.5, "y":4.75}, {"x":3.5, "y":4.75}, {"x":4.5, "y":4.75}, {"x":6.5, "y":4.75}, {"x":7.5, "y":4.75}, {"x":8.5, "y":4.75}, {"x":9.5, "y":4.75}]
    }
  }
}

M keyboards/mitosis/keymaps/carvac_dv/keymap.c => keyboards/mitosis/keymaps/carvac_dv/keymap.c +80 -83
@@ 3,7 3,7 @@
//  number layer with all the numbers on the home row, and a function layer
//  that provides mouse keys among other things.

#include "mitosis.h"
#include QMK_KEYBOARD_H

enum mitosis_layers
{


@@ 27,93 27,90 @@ enum mitosis_layers

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

/* QWERTY
 * .--------------------------------------------..--------------------------------------------.
 * | Q      | W      | E      | R      | T      || Y      | U      | I      | O      | P      |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | A      | S      | D      | F      | G      || J      | H      | K      | L      | ;      |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | Z      | X      | C      | V      | B      || N      | M      | ,      | .      | /      |
 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
 *          | PGUP   | TAB    | LCTRL  | SPACE  || LSHIFT | ENTER  | UP     | PSCR   |
 *          |--------+--------+--------+--------||--------+--------+--------+--------|
 *          | PGDN   | LGUI   | LALT   | FN     || NUM    | LEFT   | DOWN   | RIGHT  |
 *          '-----------------------------------''-----------------------------------'
 */

[_STD] = { /* Standard; as compatible with dvorak and qwerty as possible */
  {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,           KC_Y,    KC_U,    KC_I,    KC_O,    KC_P    },
  {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,           KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN },
  {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,           KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH },
  {XXXXXXX, KC_PGUP, KC_TAB,  KC_LCTL, KC_SPC,         KC_LSFT, KC_ENT,  KC_UP,   KC_PSCR, XXXXXXX },
  {XXXXXXX, KC_PGDN, KC_LGUI, KC_LALT, MO(_FN),       MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX }
},

/* Number layout, for data entry and programming purposes (Dvorak result in parens)
 * .--------------------------------------------..--------------------------------------------.
 * | TAB    |   (,<) |   (.>) | - ([{) | = (]}) || ] (=+) | pad *  | pad +  | pad -  | [ (/?) |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | 1      | 2      | 3      | 4      | 5      || 6      | 7      | 8      | 9      | 0      |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | F1     | F2     | F3     | F4     | F5     || F6     | F7     | F8     | F9     | F10    |
 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
 *          | F11    | F12    |        |        ||        |        |        |        |
 *          |--------+--------+--------+--------||--------+--------+--------+--------|
 *          |        |        |        |        ||        |        |        |        |
 *          '-----------------------------------''-----------------------------------'
 */

[_NUM] = { /* Number layout along the home row for maximum speed*/
  {KC_TAB,  _______, _______, KC_MINS, KC_EQL,        KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC },
  {KC_1,    KC_2,    KC_3,    KC_4,    KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0    },
  {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,         KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10  },
  {XXXXXXX, KC_F11,  KC_F12,  _______, _______,       _______, _______, _______, _______, XXXXXXX },
  {XXXXXXX, _______, _______, _______, _______,       _______, _______, _______, _______, XXXXXXX }
},


/* Fn layout, for typing purposes (Dvorak result in parens)
 * .--------------------------------------------..--------------------------------------------.
 * | `      |        | MS_U   |        |        || WH_U   | WH_L   | BTN3   | WH_R   | [ (/?) |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | ESC    | MS_L   | MS_D   | MS_R   |        || WH_D   | BTN1   | BTN2   |        | ' (-_) |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * | APP    | MPRV   | MPLY   | MSTP   | MNXT   ||        | BSPC   | DEL    | INS    | \      |
 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
 *          | VOLU   |        |        |        ||        |        | PGUP   |        |
 *          |--------+--------+--------+--------||--------+--------+--------+--------|
 *          | VOLD   |        |        |        ||        | HOME   | PGDN   | END    |
 *          '-----------------------------------''-----------------------------------'
 */

[_FN] = { /* Function Layer, primary alternative layer featuring numpad on right hand,
                                   cursor keys on left hand, and all symbols*/
  {KC_GRV,  _______, KC_MS_U, _______, _______,       KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC },
  {KC_ESC,  KC_MS_L, KC_MS_D, KC_MS_R, _______,       KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT },
  {KC_APP,  KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT,       _______, KC_BSPC, KC_DEL,  KC_INS,  KC_BSLS },
  {XXXXXXX, KC_VOLU, _______, _______, _______,       _______, _______, KC_PGUP, _______, XXXXXXX },
  {XXXXXXX, KC_VOLD, _______, _______, _______,       _______, KC_HOME, KC_PGDN, KC_END,  XXXXXXX }
},

/* blank key layout template
 * .--------------------------------------------..--------------------------------------------.
 * |        |        |        |        |        ||        |        |        |        |        |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * |        |        |        |        |        ||        |        |        |        |        |
 * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
 * |        |        |        |        |        ||        |        |        |        |        |
 * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
 *          |        |        |        |        ||        |        |        |        |
 *          |--------+--------+--------+--------||--------+--------+--------+--------|
 *          |        |        |        |        ||        |        |        |        |
 *          '-----------------------------------''-----------------------------------'
 */
  /* QWERTY
   * .--------------------------------------------..--------------------------------------------.
   * | Q      | W      | E      | R      | T      || Y      | U      | I      | O      | P      |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | A      | S      | D      | F      | G      || J      | H      | K      | L      | ;      |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | Z      | X      | C      | V      | B      || N      | M      | ,      | .      | /      |
   * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
   *          | PGUP   | TAB    | LCTRL  | SPACE  || LSHIFT | ENTER  | UP     | PSCR   |
   *          |--------+--------+--------+--------||--------+--------+--------+--------|
   *          | PGDN   | LGUI   | LALT   | FN     || NUM    | LEFT   | DOWN   | RIGHT  |
   *          '-----------------------------------''-----------------------------------'
   */
  [_STD] = LAYOUT( /* Standard; as compatible with dvorak and qwerty as possible */
    KC_Q, KC_W,    KC_E,    KC_R,    KC_T,      KC_Y,      KC_U,    KC_I,    KC_O,    KC_P,
    KC_A, KC_S,    KC_D,    KC_F,    KC_G,      KC_H,      KC_J,    KC_K,    KC_L,    KC_SCLN,
    KC_Z, KC_X,    KC_C,    KC_V,    KC_B,      KC_N,      KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
          KC_PGUP, KC_TAB,  KC_LCTL, KC_SPC,    KC_LSFT,  KC_ENT,  KC_UP,   KC_PSCR,
          KC_PGDN, KC_LGUI, KC_LALT, MO(_FN),   MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT
  ),

  /* Number layout, for data entry and programming purposes (Dvorak result in parens)
   * .--------------------------------------------..--------------------------------------------.
   * | TAB    |   (,<) |   (.>) | - ([{) | = (]}) || ] (=+) | pad *  | pad +  | pad -  | [ (/?) |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | 1      | 2      | 3      | 4      | 5      || 6      | 7      | 8      | 9      | 0      |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | F1     | F2     | F3     | F4     | F5     || F6     | F7     | F8     | F9     | F10    |
   * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
   *          | F11    | F12    |        |        ||        |        |        |        |
   *          |--------+--------+--------+--------||--------+--------+--------+--------|
   *          |        |        |        |        ||        |        |        |        |
   *          '-----------------------------------''-----------------------------------'
   */
  [_NUM] = LAYOUT( /* Number layout along the home row for maximum speed*/
    KC_TAB,  _______, _______, KC_MINS, KC_EQL,        KC_RBRC, KC_PAST, KC_PPLS, KC_PMNS, KC_LBRC,
    KC_1,    KC_2,    KC_3,    KC_4,    KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
    KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,         KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,
             KC_F11,  KC_F12,  _______, _______,       _______, _______, _______, _______,
             _______, _______, _______, _______,       _______, _______, _______, _______
  ),


  /* Fn layout, for typing purposes (Dvorak result in parens)
   * .--------------------------------------------..--------------------------------------------.
   * | `      |        | MS_U   |        |        || WH_U   | WH_L   | BTN3   | WH_R   | [ (/?) |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | ESC    | MS_L   | MS_D   | MS_R   |        || WH_D   | BTN1   | BTN2   |        | ' (-_) |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * | APP    | MPRV   | MPLY   | MSTP   | MNXT   ||        | BSPC   | DEL    | INS    | \      |
   * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
   *          | VOLU   |        |        |        ||        |        | PGUP   |        |
   *          |--------+--------+--------+--------||--------+--------+--------+--------|
   *          | VOLD   |        |        |        ||        | HOME   | PGDN   | END    |
   *          '-----------------------------------''-----------------------------------'
   */
  [_FN] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
                                     cursor keys on left hand, and all symbols*/
    KC_GRV,  _______, KC_MS_U, _______, _______,       KC_WH_U, KC_WH_L, KC_BTN3, KC_WH_R, KC_LBRC,
    KC_ESC,  KC_MS_L, KC_MS_D, KC_MS_R, _______,       KC_WH_D, KC_BTN1, KC_BTN2, _______, KC_QUOT,
    KC_APP,  KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT,       _______, KC_BSPC, KC_DEL,  KC_INS,  KC_BSLS,
             KC_VOLU, _______, _______, _______,       _______, _______, KC_PGUP, _______,
             KC_VOLD, _______, _______, _______,       _______, KC_HOME, KC_PGDN, KC_END
  ),

  /* blank key layout template
   * .--------------------------------------------..--------------------------------------------.
   * |        |        |        |        |        ||        |        |        |        |        |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * |        |        |        |        |        ||        |        |        |        |        |
   * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
   * |        |        |        |        |        ||        |        |        |        |        |
   * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
   *          |        |        |        |        ||        |        |        |        |
   *          |--------+--------+--------+--------||--------+--------+--------+--------|
   *          |        |        |        |        ||        |        |        |        |
   *          '-----------------------------------''-----------------------------------'
   */

};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    

    switch (layer) {
    	case _STD:
    		set_led_off;

M keyboards/mitosis/keymaps/datagrok/keymap.c => keyboards/mitosis/keymaps/datagrok/keymap.c +36 -36
@@ 1,4 1,4 @@
#include "mitosis.h"
#include QMK_KEYBOARD_H

enum mitosis_layers
{


@@ 26,41 26,41 @@ enum mitosis_layers
// other is released. Which doesn't bother me.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_xQ] = {
    {KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P},
    {KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN},
    {KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_QUOT},
    {XXXXXXX, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP, XXXXXXX},
    {XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC,  MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX}
  },
  [_xW] = {
    {KC_Q,    KC_D,    KC_R,    KC_W,    KC_B,    KC_J,    KC_F,    KC_U,    KC_P,    KC_SCLN},
    {KC_A,    KC_S,    KC_H,    KC_T,    KC_G,    KC_Y,    KC_N,    KC_E,    KC_O,    KC_I},
    {KC_Z,    KC_X,    KC_M,    KC_C,    KC_V,    KC_K,    KC_L,    KC_COMM, KC_DOT,  KC_QUOT},
    {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX},
    {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}
  },
  [_xS] = {
    {KC_ESC,  _______, KC_UP,   _______, _______, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_TILD},
    {KC_TAB,  KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV,  KC_UNDS},
    {KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH},
    {XXXXXXX, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______, XXXXXXX},
    {XXXXXXX, _______, _______, _______, KC_DEL,  KC_ENT,  _______, _______, _______, XXXXXXX},
  },
  [_xN] = {
    {_______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7,   KC_P8,   KC_P9,   KC_P0},
    {_______, _______, _______, _______, _______, KC_PAST, KC_P4,   KC_P5,   KC_P6,   KC_PPLS},
    {_______, _______, _______, _______, _______, KC_PMNS, KC_P1,   KC_P2,   KC_P3,   KC_PEQL},
    {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX},
    {XXXXXXX, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______, XXXXXXX},
  },
  [_xF] = {
    {_______, _______, KC_PGUP, _______, KC_VOLU, KC_F13,  KC_F7,   KC_F8,   KC_F9,   KC_F10},
    {_______, KC_HOME, KC_PGDN, KC_END,  KC_VOLD, KC_F14,  KC_F4,   KC_F5,   KC_F6,   KC_F11},
    {TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15,  KC_F1,   KC_F2,   KC_F3,   KC_F12},
    {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX},
    {XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX},
  },
  [_xQ] = LAYOUT(
    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,          KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,          KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,
    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,          KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_QUOT,
             KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP,
             KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC,       KC_SPC,  MO(_xS), KC_RMTA, KC_RHYP
  ),
  [_xW] = LAYOUT(
    KC_Q,    KC_D,    KC_R,    KC_W,    KC_B,    KC_J,    KC_F,    KC_U,    KC_P,    KC_SCLN,
    KC_A,    KC_S,    KC_H,    KC_T,    KC_G,    KC_Y,    KC_N,    KC_E,    KC_O,    KC_I,
    KC_Z,    KC_X,    KC_M,    KC_C,    KC_V,    KC_K,    KC_L,    KC_COMM, KC_DOT,  KC_QUOT,
             _______, _______, _______, _______, _______, _______, _______, _______,
             _______, _______, _______, _______, _______, _______, _______, _______
  ),
  [_xS] = LAYOUT(
    KC_ESC,  _______, KC_UP,   _______, _______, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_TILD,
    KC_TAB,  KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_CIRC, KC_AMPR, KC_PIPE, KC_GRV,  KC_UNDS,
    KC_BSLS, KC_RPRN, KC_RCBR, KC_RBRC, KC_RABK, KC_LABK, KC_LBRC, KC_LCBR, KC_LPRN, KC_SLSH,
             _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______,
             _______, _______, _______, KC_DEL,  KC_ENT,  _______, _______, _______
  ),
  [_xN] = LAYOUT(
    _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7,   KC_P8,   KC_P9,   KC_P0,
    _______, _______, _______, _______, _______, KC_PAST, KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
    _______, _______, _______, _______, _______, KC_PMNS, KC_P1,   KC_P2,   KC_P3,   KC_PEQL,
             _______, _______, _______, _______, _______, _______, _______, _______,
             _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______
  ),
  [_xF] = LAYOUT(
    _______, _______, KC_PGUP, _______, KC_VOLU, KC_F13,  KC_F7,   KC_F8,   KC_F9,   KC_F10,
    _______, KC_HOME, KC_PGDN, KC_END,  KC_VOLD, KC_F14,  KC_F4,   KC_F5,   KC_F6,   KC_F11,
    TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15,  KC_F1,   KC_F2,   KC_F3,   KC_F12,
             _______, _______, _______, _______, _______, _______, _______, _______,
             _______, _______, _______, _______, _______, _______, _______, _______
  ),
};

// This is a hack to place <question mark> on <shift-comma> and <exclaimation

M keyboards/mitosis/keymaps/default/keymap.c => keyboards/mitosis/keymaps/default/keymap.c +44 -43
@@ 1,7 1,7 @@
// this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,

#include "mitosis.h"
#include QMK_KEYBOARD_H

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.


@@ 15,7 15,7 @@ enum mitosis_layers
	_FUNCSHIFT
};

enum mitosis_keycodes 
enum mitosis_keycodes
{
  FNKEY = SAFE_RANGE,
  SHIFT


@@ 38,44 38,45 @@ enum mitosis_macros
#define XXXXXXX KC_NO

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MALT] = { /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
  {KC_Q,    KC_P,    KC_Y,    KC_C,    KC_B,           KC_V,    KC_M,    KC_U,    KC_Z,    KC_L    },
  {KC_A,    KC_N,    KC_I,    KC_S,    KC_F,           KC_D,    KC_T,    KC_H,    KC_O,    KC_R    },
  {KC_COMM, KC_DOT,  KC_J,    KC_G,    KC_SLSH,        KC_SCLN, KC_W,    KC_K,    KC_QUOT, KC_X    },
  {XXXXXXX, M(VOLU), M(ESCM), KC_TAB,  KC_LCTL,        KC_LALT, KC_ENT,  KC_DEL,  KC_PGUP, XXXXXXX },
  {XXXXXXX, M(VOLD), KC_LGUI, KC_E,    FNKEY,          SHIFT,   KC_SPC,  KC_BSPC, KC_PGDN, XXXXXXX }
},


[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively
                                 able to modify individual key's shifted behaviour */
  {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
  {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
  {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
  {XXXXXXX, _______, _______, _______, _______,       _______, _______, _______, _______, XXXXXXX },
  {XXXXXXX, _______, _______, _______, _______,       _______, _______, _______, _______, XXXXXXX }
},



[_FUNCTION] = { /* Function Layer, primary alternative layer featuring numpad on right hand,
                                   cursor keys on left hand, and all symbols*/
  {KC_AMPR, KC_PERC, KC_UP,   KC_CIRC, KC_PIPE,       KC_LBRC, KC_7,    KC_8,    KC_9,    KC_MINS },
  {KC_AT,   KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH,       KC_LPRN, KC_4,    KC_5,    KC_6,    KC_PLUS },
  {KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR,  KC_BSLS,       KC_LCBR, KC_1,    KC_2,    KC_3,    KC_ENT  },
  {XXXXXXX, KC_HOME, KC_GRV,  KC_PWR,  _______,       _______, KC_EQL,  KC_TILD, KC_DOT,  XXXXXXX },
  {XXXXXXX, KC_END,  _______, _______, _______,       _______, KC_0,    _______, KC_PSCR, XXXXXXX }
},


[_FUNCSHIFT] = { /* Function Shifted Layer, secondary alternative layer with closing brackets,
                                            and F-keys under their numpad equivalents*/
  {_______, _______, _______, _______, _______,       KC_RBRC, KC_F7,   KC_F8,   KC_F9,   KC_F10  },
  {_______, _______, _______, _______, _______,       KC_RPRN, KC_F4,   KC_F5,   KC_F6,   KC_F11  },
  {_______, _______, _______, _______, _______,       KC_RCBR, KC_F1,   KC_F2,   KC_F3,   KC_F12  },
  {XXXXXXX, _______, _______, _______, _______,       _______, _______, _______, _______, XXXXXXX },
  {XXXXXXX, _______, _______, _______, _______,       _______, _______, _______, _______, XXXXXXX }
}

  [_MALT] = LAYOUT( /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
    KC_Q,    KC_P,    KC_Y,    KC_C,    KC_B,           KC_V,    KC_M,    KC_U,    KC_Z,    KC_L,
    KC_A,    KC_N,    KC_I,    KC_S,    KC_F,           KC_D,    KC_T,    KC_H,    KC_O,    KC_R,
    KC_COMM, KC_DOT,  KC_J,    KC_G,    KC_SLSH,        KC_SCLN, KC_W,    KC_K,    KC_QUOT, KC_X,
             M(VOLU), M(ESCM), KC_TAB,  KC_LCTL,        KC_LALT, KC_ENT,  KC_DEL,  KC_PGUP,
             M(VOLD), KC_LGUI, KC_E,    FNKEY,          SHIFT,   KC_SPC,  KC_BSPC, KC_PGDN
  ),


  [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
                                         able to modify individual key's shifted behaviour */
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
             _______, _______, _______, _______,       _______, _______, _______, _______,
             _______, _______, _______, _______,       _______, _______, _______, _______
  ),



  [_FUNCTION] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
                                           cursor keys on left hand, and all symbols*/
    KC_AMPR, KC_PERC, KC_UP,   KC_CIRC, KC_PIPE,       KC_LBRC, KC_7,    KC_8,    KC_9,    KC_MINS,
    KC_AT,   KC_LEFT, KC_DOWN, KC_RGHT, KC_HASH,       KC_LPRN, KC_4,    KC_5,    KC_6,    KC_PLUS,
    KC_ASTR, KC_UNDS, KC_EXLM, KC_DLR,  KC_BSLS,       KC_LCBR, KC_1,    KC_2,    KC_3,    KC_ENT,
             KC_HOME, KC_GRV,  KC_PWR,  _______,       _______, KC_EQL,  KC_TILD, KC_DOT,
             KC_END,  _______, _______, _______,       _______, KC_0,    _______, KC_PSCR
  ),


  [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer, secondary alternative layer with closing brackets,
                                                    and F-keys under their numpad equivalents*/
    _______, _______, _______, _______, _______,       KC_RBRC, KC_F7,   KC_F8,   KC_F9,   KC_F10,
    _______, _______, _______, _______, _______,       KC_RPRN, KC_F4,   KC_F5,   KC_F6,   KC_F11,
    _______, _______, _______, _______, _______,       KC_RCBR, KC_F1,   KC_F2,   KC_F3,   KC_F12,
             _______, _______, _______, _______,       _______, _______, _______, _______,
             _______, _______, _______, _______,       _______, _______, _______, _______
  )

};



@@ 128,7 129,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
                  return MACRO(T(ESC), END);
                }
          	}
          	break;     
          	break;

        break;
    }


@@ 183,7 184,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

  //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded
  if (layer == _FUNCSHIFT) {
  	//F1-F12 should be sent as unshifted keycodes, 
  	//F1-F12 should be sent as unshifted keycodes,
  	//and ] needs to be unshifted or it is sent as }
  	if ( (keycode >= KC_F1 && keycode <= KC_F12)
  	   || keycode == KC_RBRC ) {


@@ 200,7 201,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    

    switch (layer) {
    	case _MALT:
    		set_led_off;

M keyboards/mitosis/keymaps/mjt/keymap.c => keyboards/mitosis/keymaps/mjt/keymap.c +52 -53
@@ 1,11 1,10 @@
// this is the style you want to emulate.
// This is the canonical layout file for the Quantum project. If you want to add another keyboard,

#include "mitosis.h"
#include QMK_KEYBOARD_H
#ifdef AUDIO_ENABLE
  #include "audio.h"
#endif
#include "eeconfig.h"

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.


@@ 53,57 52,57 @@ enum mitosis_macros
#define XXXXXXX KC_NO

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [_QWERTY] = { /* QWERTY adapted to this crazy thing */
    {KC_Q,       KC_W,    KC_E,    KC_R,    KC_T,           KC_Y,    KC_U,    KC_I,    KC_O,        KC_P    },
    {KC_A,       KC_S,    KC_D,    KC_F,    KC_G,           KC_H,    KC_J,    KC_K,    KC_L,        KC_SCLN },
    {SFT_T(KC_Z), KC_X,   KC_C,    KC_V,    KC_B,           KC_N,    KC_M,    KC_COMM, KC_DOT,      SFT_T(KC_SLSH) },
    {XXXXXXX,    KC_LCTL, M(ESCM),  KC_TAB,  KC_QUOT,       KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT,    XXXXXXX },
    {XXXXXXX,    KC_LALT, KC_LGUI, KC_SPC,  SHIFT,          FNKEY,   KC_BSPC, KC_ENT,  MO(_ADJUST), XXXXXXX }
  },


  [_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively
                                   able to modify individual key's shifted behaviour */
    {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
    {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
    {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
    {XXXXXXX, __MOD__, KC_DEL,  _______, _______,       _______, _______, _______, _______, XXXXXXX },
    {XXXXXXX, __MOD__, __MOD__, _______, __MOD__,       __MOD__, _______, _______, KC_NO,   XXXXXXX }
  },


  [_FUNCTIONPC] = { /* Function Layer mimicks planck's raise layer somewhat */
    {KC_1,       KC_2,          KC_3,    KC_4,      KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0    },
    {LCTL(KC_A), LCTL(KC_S),    _______, LCTL(KC_F),_______,       _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC },
    {LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______,       _______, KC_BSLS, _______, _______, KC_QUOT },
    {XXXXXXX,    __MOD__,        KC_DEL, _______,   KC_GRV,        KC_HOME, KC_PGDN, KC_PGUP, KC_END,  XXXXXXX },
    {XXXXXXX,    __MOD__,       __MOD__, _______,   __MOD__,       __MOD__, _______, KC_PSCR, KC_NO,   XXXXXXX }
  },

  [_FUNCTIONMAC] = { /* Function Layer mimicks planck's raise layer somewhat */
    {KC_1,       KC_2,          KC_3,    KC_4,      KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0    },
    {LGUI(KC_A), LGUI(KC_S),    _______, LGUI(KC_F),_______,       _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC },
    {LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______,       _______, KC_BSLS, _______, _______, KC_QUOT },
    {XXXXXXX,    __MOD__,        KC_DEL, _______,   KC_GRV,        KC_HOME, KC_PGDN, KC_PGUP, KC_END,  XXXXXXX },
    {XXXXXXX,    __MOD__,       __MOD__, _______,   __MOD__,       __MOD__, _______, KC_PSCR, KC_NO,   XXXXXXX }
  },

  [_FUNCSHIFT] = { /* Function Shifted Layer mimicks planck's lower layer somewhat */
    {_______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ },
    {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,         KC_F6,   _______, _______, KC_LCBR, KC_RCBR },
    {KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,        KC_F12,  _______, _______, _______, _______ },
    {XXXXXXX, __MOD__, KC_DEL,  _______, KC_TILD,       _______, _______, _______, _______, XXXXXXX },
    {XXXXXXX, __MOD__, __MOD__, _______, __MOD__,       __MOD__, _______, _______, _______, XXXXXXX }
  },


  [_ADJUST] = { /* Adjust layer for fancy stuff and macros */
    {RESET,   FNPC,    _______, _______,  _______,       _______, DYN_REC_START1,  DYN_REC_START2,  _______,  _______ },
    {FNMAC,   _______,   AU_ON, AU_OFF,   _______,       _______, _______,         _______,         MACSLEEP, _______ },
    {MUV_DE,  MUV_IN,    MU_ON, MU_OFF,   _______,       _______, KC_MUTE,         KC_MPRV,         KC_MNXT,  KC_MPLY },
    {XXXXXXX, __MOD__, _______, _______,  _______,       _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2,  _______,  XXXXXXX },
    {XXXXXXX, __MOD__, __MOD__, _______,  __MOD__,       __MOD__, _______,         _______,         __MOD__,  XXXXXXX }
  }
  [_QWERTY] = LAYOUT( /* QWERTY adapted to this crazy thing */
    KC_Q,       KC_W,    KC_E,    KC_R,    KC_T,           KC_Y,    KC_U,    KC_I,    KC_O,        KC_P,
    KC_A,       KC_S,    KC_D,    KC_F,    KC_G,           KC_H,    KC_J,    KC_K,    KC_L,        KC_SCLN,
    SFT_T(KC_Z), KC_X,   KC_C,    KC_V,    KC_B,           KC_N,    KC_M,    KC_COMM, KC_DOT,      SFT_T(KC_SLSH),
                KC_LCTL, M(ESCM),  KC_TAB,  KC_QUOT,       KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT,
                KC_LALT, KC_LGUI, KC_SPC,  SHIFT,          FNKEY,   KC_BSPC, KC_ENT,  MO(_ADJUST)
  ),


  [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
                                         able to modify individual key's shifted behaviour */
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
             __MOD__, KC_DEL,  _______, _______,       _______, _______, _______, _______,
             __MOD__, __MOD__, _______, __MOD__,       __MOD__, _______, _______, XXXXXXX
  ),


  [_FUNCTIONPC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
    KC_1,       KC_2,          KC_3,    KC_4,      KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
    LCTL(KC_A), LCTL(KC_S),    _______, LCTL(KC_F),_______,       _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC,
    LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V),_______,       _______, KC_BSLS, _______, _______, KC_QUOT,
                __MOD__,        KC_DEL, _______,   KC_GRV,        KC_HOME, KC_PGDN, KC_PGUP, KC_END,
                __MOD__,       __MOD__, _______,   __MOD__,       __MOD__, _______, KC_PSCR, XXXXXXX
  ),

  [_FUNCTIONMAC] = LAYOUT( /* Function Layer mimicks planck's raise layer somewhat */
    KC_1,       KC_2,          KC_3,    KC_4,      KC_5,          KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
    LGUI(KC_A), LGUI(KC_S),    _______, LGUI(KC_F),_______,       _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC,
    LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V),_______,       _______, KC_BSLS, _______, _______, KC_QUOT,
                __MOD__,        KC_DEL, _______,   KC_GRV,        KC_HOME, KC_PGDN, KC_PGUP, KC_END,
                __MOD__,       __MOD__, _______,   __MOD__,       __MOD__, _______, KC_PSCR, XXXXXXX
  ),

  [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer mimicks planck's lower layer somewhat */
    _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______,
    KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,         KC_F6,   _______, _______, KC_LCBR, KC_RCBR,
    KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,        KC_F12,  _______, _______, _______, _______,
             __MOD__, KC_DEL,  _______, KC_TILD,       _______, _______, _______, _______,
             __MOD__, __MOD__, _______, __MOD__,       __MOD__, _______, _______, _______
  ),


  [_ADJUST] = LAYOUT( /* Adjust layer for fancy stuff and macros */
    RESET,   FNPC,    _______, _______,  _______,       _______, DYN_REC_START1,  DYN_REC_START2,  _______,  _______,
    FNMAC,   _______,   AU_ON, AU_OFF,   _______,       _______, _______,         _______,         MACSLEEP, _______,
    MUV_DE,  MUV_IN,    MU_ON, MU_OFF,   _______,       _______, KC_MUTE,         KC_MPRV,         KC_MNXT,  KC_MPLY,
             __MOD__, _______, _______,  _______,       _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2,  _______,
             __MOD__, __MOD__, _______,  __MOD__,       __MOD__, _______,         _______,         __MOD__
  )

};


M keyboards/mitosis/keymaps/nzen/keymap.c => keyboards/mitosis/keymaps/nzen/keymap.c +146 -146
@@ 1,6 1,6 @@


#include "mitosis.h"
#include QMK_KEYBOARD_H

enum mitosis_layers
{


@@ 25,154 25,154 @@ enum mitosis_layers
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40

// Fillers to make layering more clear
#define ___ KC_TRNS
#define _______ KC_TRNS
#define XXX KC_NO

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
/* QWERTY
['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
[  'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back',  ],
[  'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt',  ]
 */
[_QWERTY] = {
  {KC_Q, KC_W, KC_E, KC_R, KC_T,        KC_Y, KC_U, KC_I, KC_O, KC_P},
  {KC_A, KC_S, KC_D, KC_F, KC_G,        KC_H, KC_J, KC_K, KC_L, KC_SCOLON},
  {KC_Z, KC_X, KC_C, KC_V, KC_B,        KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOTE},
  {XXX, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ),        TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE, XXX},
  {XXX, KC_LALT, KC_0, KC_LSHIFT, KC_SPACE,        KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT, XXX}
},
/* 
['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
[ '', '', '', '',/ ** / '', '', '', '',  ],
[ '', '4', '', '',/ ** / '', '', '', '',  ]
 */
[_WORKMAN] = {
  {KC_Q, KC_D, KC_R, KC_W, KC_B,        KC_J, KC_F, KC_U, KC_P, KC_SCOLON},
  {KC_A, KC_S, KC_H, KC_T, KC_G,        KC_Y, KC_N, KC_E, KC_O, KC_I},
  {KC_Z, KC_X, KC_M, KC_C, KC_V,        KC_K, KC_L, KC_COMMA, KC_DOT, KC_QUOTE},
  {XXX, ___, ___, ___, ___,       ___, ___, ___, ___, XXX},
  {XXX, ___, KC_1, ___, ___,       ___, ___, ___, ___, XXX}
},
/* 
['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
// --
[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '',  ],
[ '', '6', '', '',/ ** / '', '', '', '',  ]
 */
[_NUMBERS] = {
  {KC_9, KC_8, KC_7, KC_6, KC_5,        KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP},
  {KC_4, KC_3, KC_2, KC_1, KC_0,        KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END},
  {LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI,        KC_D, KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT},
  {XXX, ___, ___, ___, TG( 2 ),       TG( 3 ), ___, ___, ___, XXX},
  {XXX, ___, KC_2, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
// --
['', '', '', 'L_8',/ ** / 'L_=7', '', '', '',  ],
['', '7', '', '',/ ** / '', '', '', '',  ]
 */
[_PUNCT] = {
  {KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON,        KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT},
  {KC_ASTERISK, KC_PLUS, KC_LCBR, KC_LPRN, KC_COLON,        KC_DQUO, KC_RPRN, KC_RCBR, KC_MINUS, KC_EQUAL},
  {KC_BSLASH, KC_QUESTION, KC_LT, KC_LBRACKET, KC_DOLLAR,        KC_TILDE, KC_RBRACKET, KC_GT, KC_EXCLAIM, KC_SLASH},
  {XXX, ___, ___, ___, TG( 4 ),       TG( 3 ), ___, ___, ___, XXX},
  {XXX, ___, KC_3, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
// --
[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '',  ],
[ '', '8', '', '',/ ** / '', '', '', '',  ]
 */
[_MOUSE] = {
  {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},
  {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},
  {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},
  {XXX, ___, ___, ___, TG( 4 ),       TG( 5 ), ___, ___, ___, XXX},
  {XXX, ___, KC_4, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
// --
[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '',  ],
[ '', '9', '', '',/ ** / '', '', '', '',  ]
 */
[_LAYERS] = {
  {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,        TG( 1 ), KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM},
  {KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,        KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM},
  {TG( 6 ), KC_EXCLAIM, TG( 7 ), KC_EXCLAIM, TG( 8 ),        KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM},
  {XXX, ___, ___, ___, TG( 5 ),       TG( 5 ), ___, ___, ___, XXX},
  {XXX, ___, KC_5, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
// --
[ '', '', '', 'L_=A',/ ** / 'A', '', '', '',  ],
[ '', 'A', '', '',/ ** / '', '', '', '',  ]
 */
[_GAMING] = {
  {KC_Q, KC_W, KC_E, KC_R, KC_T,        KC_P, KC_Y, KC_UP, KC_K, KC_1},
  {KC_A, KC_S, KC_D, KC_F, KC_G,        KC_H, KC_LEFT, KC_DOWN, KC_RIGHT, KC_2},
  {KC_Z, KC_X, KC_C, KC_V, KC_B,        KC_M, KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3},
  {XXX, ___, ___, ___, TG( 6 ),       KC_6, ___, ___, ___, XXX},
  {XXX, ___, KC_6, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
['\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* / ],
['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
['\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* / ],
// --
[ '', '', '', 'L_=B',/ ** / 'B', '', '', '',  ],
[ '', 'B', '', '',/ ** / '', '', '', '',  ]
 */
[_UNICODE] = {
  {UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8),        UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018)},
  {UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F),        UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019)},
  {UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0),        UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D)},
  {XXX, ___, ___, ___, TG( 7 ),       KC_7, ___, ___, ___, XXX},
  {XXX, ___, KC_7, ___, ___,       ___, ___, ___, ___, XXX}
},
/*
['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
// --
[ '', '', '', 'L_=C',/ ** / 'C', '', '', '',  ],
[ '', 'C', '', '',/ ** / '', '', '', '',  ]
 */
[_NUMPAD] = {
  {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*/},
  {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},
  {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},
  {XXX, ___, ___, ___, TG( 8 ),       KC_8, ___, ___, ___, XXX},
  {XXX, ___, KC_8, ___, ___,       ___, ___, ___, ___, XXX}
}// ,
/*
 * /
[_] = {
  {, , , , ,        , , , ,},
  {, , , , ,        , , , ,},
  {, , , , ,        , , , ,},
  {XXX, ___, ___, ___, TG(  ),       TG(  ), ___, ___, ___, XXX},
  {XXX, ___, KC_, ___, ___,       ___, ___, ___, ___, XXX}
}
 */
  // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
  /* QWERTY
  ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
  ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
  ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
  [  'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back',  ],
  [  'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt',  ]
   */
  [_QWERTY] = LAYOUT(
    KC_Q,      KC_W,      KC_E,      KC_R,      KC_T,     KC_Y,      KC_U,        KC_I,        KC_O,   KC_P,
    KC_A,      KC_S,      KC_D,      KC_F,      KC_G,     KC_H,      KC_J,        KC_K,        KC_L,   KC_SCOLON,
    KC_Z,      KC_X,      KC_C,      KC_V,      KC_B,     KC_N,      KC_M,        KC_COMM,     KC_DOT, KC_QUOTE,
               KC_BSPACE, KC_DELETE, KC_LCTRL,  TG( 2 ),  TG( 3 ),   KC_RCTRL,    KC_ENTER,    KC_BSPACE,
               KC_LALT,   KC_0,      KC_LSHIFT, KC_SPACE, KC_SPACE,  KC_RSHIFT,   KC_CAPSLOCK, KC_RALT
  ),
  /*
  ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
  ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
  ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
  [ '', '', '', '',/ ** / '', '', '', '',  ],
  [ '', '4', '', '',/ ** / '', '', '', '',  ]
   */
  [_WORKMAN] = LAYOUT(
    KC_Q, KC_D,    KC_R,    KC_W,    KC_B,    KC_J,    KC_F,    KC_U,     KC_P,    KC_SCOLON,
    KC_A, KC_S,    KC_H,    KC_T,    KC_G,    KC_Y,    KC_N,    KC_E,     KC_O,    KC_I,
    KC_Z, KC_X,    KC_M,    KC_C,    KC_V,    KC_K,    KC_L,    KC_COMMA, KC_DOT,  KC_QUOTE,
          _______, _______, _______, _______, _______, _______, _______,  _______,
          _______, KC_1,    _______, _______, _______, _______, _______,  _______
  ),
  /*
  ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
  [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
  ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
  // --
  [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '',  ],
  [ '', '6', '', '',/ ** / '', '', '', '',  ]
   */
  [_NUMBERS] = LAYOUT(
    KC_9,       KC_8,       KC_7,       KC_6,       KC_5,    KC_F2,   KC_PGDOWN,     KC_UP,    KC_TAB,   KC_PGUP,
    KC_4,       KC_3,       KC_2,       KC_1,       KC_0,    KC_HOME, KC_LEFT,       KC_DOWN,  KC_RIGHT, KC_END,
    LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_LGUI, KC_D,    KC_UNDERSCORE, KC_COMMA, KC_MINUS, KC_DOT,
                _______,    _______,    _______,    TG( 2 ), TG( 3 ), _______,       _______,  _______,
                _______,    KC_2,       _______,    _______, _______, _______,       _______,  _______
  ),
  /*
  [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
  [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
  [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
  // --
  ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '',  ],
  ['', '7', '', '',/ ** / '', '', '', '',  ]
   */
  [_PUNCT] = LAYOUT(
    KC_HASH,     KC_AT,       KC_AMPERSAND, KC_DOT,      KC_SCOLON, KC_UNDERSCORE, KC_COMMA,    KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT,
    KC_ASTERISK, KC_PLUS,     KC_LCBR,      KC_LPRN,     KC_COLON,  KC_DQUO,       KC_RPRN,     KC_RCBR, KC_MINUS,      KC_EQUAL,
    KC_BSLASH,   KC_QUESTION, KC_LT,        KC_LBRACKET, KC_DOLLAR, KC_TILDE,      KC_RBRACKET, KC_GT,   KC_EXCLAIM,    KC_SLASH,
                 _______,     _______,      _______,     TG( 4 ),   TG( 3 ),       _______,     _______, _______,
                 _______,     KC_3,         _______,     _______,   _______,       _______,     _______, _______
  ),
  /*
  ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
  ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
  ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
  // --
  [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '',  ],
  [ '', '8', '', '',/ ** / '', '', '', '',  ]
   */
  [_MOUSE] = LAYOUT(
    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,
    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,
    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,
            _______, _______,  _______,  TG( 4 ),   TG( 5 ),    _______,    _______,       _______,
            _______, KC_4,     _______,  _______,   _______,    _______,    _______,       _______
  ),
  /*
  ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
  ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
  ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
  // --
  [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '',  ],
  [ '', '9', '', '',/ ** / '', '', '', '',  ]
   */
  [_LAYERS] = LAYOUT(
    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, TG( 1 ),    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
    TG( 6 ),    KC_EXCLAIM, TG( 7 ),    KC_EXCLAIM, TG( 8 ),    KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM, KC_EXCLAIM,
                _______,    _______,    _______,    TG( 5 ),    TG( 5 ),    _______,    _______,    _______,
                _______,    KC_5,       _______,    _______,    _______,    _______,    _______,    _______
  ),
  /*
  ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
  ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
  ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
  // --
  [ '', '', '', 'L_=A',/ ** / 'A', '', '', '',  ],
  [ '', 'A', '', '',/ ** / '', '', '', '',  ]
   */
  [_GAMING] = LAYOUT(
    KC_Q, KC_W,    KC_E,    KC_R,    KC_T,    KC_P,    KC_Y,        KC_UP,       KC_K,        KC_1,
    KC_A, KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_LEFT,     KC_DOWN,     KC_RIGHT,    KC_2,
    KC_Z, KC_X,    KC_C,    KC_V,    KC_B,    KC_M,    KC_ASTERISK, KC_ASTERISK, KC_ASTERISK, KC_3,
          _______, _______, _______, TG( 6 ), KC_6,    _______,     _______,     _______,
          _______, KC_6,    _______, _______, _______, _______,     _______,     _______
  ),
  /*
  ['\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* / ],
  ['\u00F1'n~* /, '\u00a9'&copy* /, '\u00b0'degrees* /, '\u00b1'+-* /, '\u2b0f'arrow up* /,/ ** / '\u2523'box ml* /, '\u254B'box mm* /, '\u252B'box mr* /, '\u0394'delta* /, '\u2019'sm'up* / ],
  ['\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* / ],
  // --
  [ '', '', '', 'L_=B',/ ** / 'B', '', '', '',  ],
  [ '', 'B', '', '',/ ** / '', '', '', '',  ]
   */
  [_UNICODE] = LAYOUT(
    UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018),
    UC(0x00F1), UC(0x00A9), UC(0x00B0), UC(0x00B1), UC(0x2B0F), UC(0x2523), UC(0x254B), UC(0x252B), UC(0x0394), UC(0x2019),
    UC(0x00A1), UC(0x00BF), UC(0x00D7), UC(0x00F7), UC(0x03C0), UC(0x2517), UC(0x253B), UC(0x251B), UC(0x201C), UC(0x201D),
                _______,    _______,    _______,    TG( 7 ),    KC_7,       _______,    _______,    _______,
                _______,    KC_7,       _______,    _______,    _______,    _______,    _______,    _______
  ),
  /*
  ['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ],
  ['n-0', 'n-4', 'n-5', 'n-6', 'n-+',/ ** / 'N-lck', 'BACK', 'MUTE', 'RGUI', 'paus' ],
  ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
  // --
  [ '', '', '', 'L_=C',/ ** / 'C', '', '', '',  ],
  [ '', 'C', '', '',/ ** / '', '', '', '',  ]
   */
  [_NUMPAD] = LAYOUT(
    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,
    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,
    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,
                    _______, _______, _______, TG( 8 ),     KC_8,        _______,             _______,             _______,
                    _______, KC_8,    _______, _______,     _______,     _______,             _______,             _______
  )// ,
  /*
   * /
  [_] = LAYOUT(
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
             _______, _______, _______, _______, _______, _______, _______, _______,
             _______, _______, _______, _______, _______, _______, _______, _______
  )
   */
};

void matrix_scan_user(void) {

M keyboards/mitosis/keymaps/nzen/readme.md => keyboards/mitosis/keymaps/nzen/readme.md +1 -1
@@ 18,7 18,7 @@ Bottom cluster is the same on all levels and mostly symmetric. The 'ring fingers
* back del/enter ctrl toggle-layer
* alt N/caps shift space

You can preview the layout by cloning [https://gitlab.com/Nzen/impatient-broth-nenem](this webpage). The page imitates qmk's fallthrough.
You can preview the layout by cloning [this webpage](https://gitlab.com/Nzen/impatient-broth-nenem). The page imitates qmk's fallthrough.

['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P'  
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :'  

M keyboards/mitosis/mitosis.h => keyboards/mitosis/mitosis.h +1 -1
@@ 49,7 49,7 @@
// This a shortcut to help you visually see your layout.
// The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array
#define KEYMAP( \
#define LAYOUT( \
  k00, k01, k02, k03, k04,      k05, k06, k07, k08, k09, \
  k10, k11, k12, k13, k14,      k15, k16, k17, k18, k19, \
  k20, k21, k22, k23, k24,      k25, k26, k27, k28, k29, \