Mitosis refactor and Configurator support (#3271)

* Matrix refactor

* Configurator support

* Keymap refactor
This commit is contained in:
noroadsleft 2018-06-30 19:42:06 -07:00 committed by Drashna Jaelre
parent c8e1397e08
commit 585f753ffe
8 changed files with 353 additions and 344 deletions

View file

@ -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}]
}
}
}

View file

@ -3,7 +3,7 @@
// number layer with all the numbers on the home row, and a function layer // number layer with all the numbers on the home row, and a function layer
// that provides mouse keys among other things. // that provides mouse keys among other things.
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@ -27,93 +27,90 @@ enum mitosis_layers
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY /* QWERTY
* .--------------------------------------------..--------------------------------------------. * .--------------------------------------------..--------------------------------------------.
* | Q | W | E | R | T || Y | U | I | O | P | * | Q | W | E | R | T || Y | U | I | O | P |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | A | S | D | F | G || J | H | K | L | ; | * | A | S | D | F | G || J | H | K | L | ; |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | Z | X | C | V | B || N | M | , | . | / | * | Z | X | C | V | B || N | M | , | . | / |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR | * | PGUP | TAB | LCTRL | SPACE || LSHIFT | ENTER | UP | PSCR |
* |--------+--------+--------+--------||--------+--------+--------+--------| * |--------+--------+--------+--------||--------+--------+--------+--------|
* | PGDN | LGUI | LALT | FN || NUM | LEFT | DOWN | RIGHT | * | 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
),
[_STD] = { /* Standard; as compatible with dvorak and qwerty as possible */ /* Number layout, for data entry and programming purposes (Dvorak result in parens)
{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 }, * | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) |
{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 }, * | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 |
{XXXXXXX, KC_PGDN, KC_LGUI, KC_LALT, MO(_FN), MO(_NUM), KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX } * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
}, * | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
/* Number layout, for data entry and programming purposes (Dvorak result in parens) * | F11 | F12 | | || | | | |
* .--------------------------------------------..--------------------------------------------. * |--------+--------+--------+--------||--------+--------+--------+--------|
* | TAB | (,<) | (.>) | - ([{) | = (]}) || ] (=+) | pad * | pad + | pad - | [ (/?) | * | | | | || | | | |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * '-----------------------------------''-----------------------------------'
* | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | */
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| [_NUM] = LAYOUT( /* Number layout along the home row for maximum speed*/
* | F1 | F2 | F3 | F4 | F5 || F6 | F7 | F8 | F9 | F10 | 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,
* | F11 | F12 | | || | | | | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
* |--------+--------+--------+--------||--------+--------+--------+--------| KC_F11, KC_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) /* Fn layout, for typing purposes (Dvorak result in parens)
* .--------------------------------------------..--------------------------------------------. * .--------------------------------------------..--------------------------------------------.
* | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) | * | ` | | MS_U | | || WH_U | WH_L | BTN3 | WH_R | [ (/?) |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) | * | ESC | MS_L | MS_D | MS_R | || WH_D | BTN1 | BTN2 | | ' (-_) |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| * |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ | * | APP | MPRV | MPLY | MSTP | MNXT || | BSPC | DEL | INS | \ |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------' * '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | VOLU | | | || | | PGUP | | * | VOLU | | | || | | PGUP | |
* |--------+--------+--------+--------||--------+--------+--------+--------| * |--------+--------+--------+--------||--------+--------+--------+--------|
* | VOLD | | | || | HOME | PGDN | END | * | 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
),
[_FN] = { /* Function Layer, primary alternative layer featuring numpad on right hand, /* blank key layout template
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 * |--------+--------+--------+--------||--------+--------+--------+--------|
* .--------------------------------------------..--------------------------------------------. * | | | | || | | | |
* | | | | | || | | | | | * '-----------------------------------''-----------------------------------'
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------| */
* | | | | | || | | | | |
* |--------+--------+--------+--------+--------||--------+--------+--------+--------+--------|
* | | | | | || | | | | |
* '--------+--------+--------+--------+--------||--------+--------+--------+--------+--------'
* | | | | || | | | |
* |--------+--------+--------+--------||--------+--------+--------+--------|
* | | | | || | | | |
* '-----------------------------------''-----------------------------------'
*/
}; };
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); uint8_t layer = biton32(layer_state);
switch (layer) { switch (layer) {
case _STD: case _STD:
set_led_off; set_led_off;

View file

@ -1,4 +1,4 @@
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@ -26,41 +26,41 @@ enum mitosis_layers
// other is released. Which doesn't bother me. // other is released. Which doesn't bother me.
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_xQ] = { [_xQ] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, 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_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_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}, KC_LSUP, KC_LCTL, MO(_xN), SFT_T(KC_TAB), KC_RSFT, MO(_xN), KC_RCTL, KC_RSUP,
{XXXXXXX, KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP, XXXXXXX} KC_LHYP, KC_LMTA, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RMTA, KC_RHYP
}, ),
[_xW] = { [_xW] = LAYOUT(
{KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN}, 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_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}, 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] = { [_xS] = LAYOUT(
{KC_ESC, _______, KC_UP, _______, _______, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TILD}, 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_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}, 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}, _______, _______, MO(_xF), _______, _______, MO(_xF), _______, _______,
{XXXXXXX, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______, XXXXXXX}, _______, _______, _______, KC_DEL, KC_ENT, _______, _______, _______
}, ),
[_xN] = { [_xN] = LAYOUT(
{_______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0}, _______, _______, _______, _______, KC_NLCK, KC_PSLS, KC_P7, KC_P8, KC_P9, KC_P0,
{_______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS}, _______, _______, _______, _______, _______, KC_PAST, KC_P4, KC_P5, KC_P6, KC_PPLS,
{_______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL}, _______, _______, _______, _______, _______, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PEQL,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______, XXXXXXX}, _______, _______, MO(_xF), _______, KC_PENT, MO(_xF), _______, _______
}, ),
[_xF] = { [_xF] = LAYOUT(
{_______, _______, KC_PGUP, _______, KC_VOLU, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10}, _______, _______, 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}, _______, 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}, TG(_xW), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX}, _______, _______, _______, _______, _______, _______, _______, _______
}, ),
}; };
// This is a hack to place <question mark> on <shift-comma> and <exclaimation // This is a hack to place <question mark> on <shift-comma> and <exclaimation

View file

@ -1,7 +1,7 @@
// this is the style you want to emulate. // 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, // 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. // 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. // 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 _FUNCSHIFT
}; };
enum mitosis_keycodes enum mitosis_keycodes
{ {
FNKEY = SAFE_RANGE, FNKEY = SAFE_RANGE,
SHIFT SHIFT
@ -38,44 +38,45 @@ enum mitosis_macros
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 }, [_MALT] = LAYOUT( /* Malt Layout, customised for reduced columns (ex: quote and shift locations) */
{KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R }, KC_Q, KC_P, KC_Y, KC_C, KC_B, KC_V, KC_M, KC_U, KC_Z, KC_L,
{KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X }, KC_A, KC_N, KC_I, KC_S, KC_F, KC_D, KC_T, KC_H, KC_O, KC_R,
{XXXXXXX, M(VOLU), M(ESCM), KC_TAB, KC_LCTL, KC_LALT, KC_ENT, KC_DEL, KC_PGUP, XXXXXXX }, KC_COMM, KC_DOT, KC_J, KC_G, KC_SLSH, KC_SCLN, KC_W, KC_K, KC_QUOT, KC_X,
{XXXXXXX, M(VOLD), KC_LGUI, KC_E, FNKEY, SHIFT, KC_SPC, KC_BSPC, KC_PGDN, XXXXXXX } 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] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
able to modify individual key's shifted behaviour */ able to modify individual key's shifted behaviour */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } _______, _______, _______, _______, _______, _______, _______, _______
}, ),
[_FUNCTION] = { /* Function Layer, primary alternative layer featuring numpad on right hand, [_FUNCTION] = LAYOUT( /* Function Layer, primary alternative layer featuring numpad on right hand,
cursor keys on left hand, and all symbols*/ 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_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_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_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 }, KC_HOME, KC_GRV, KC_PWR, _______, _______, KC_EQL, KC_TILD, KC_DOT,
{XXXXXXX, KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR, XXXXXXX } KC_END, _______, _______, _______, _______, KC_0, _______, KC_PSCR
}, ),
[_FUNCSHIFT] = { /* Function Shifted Layer, secondary alternative layer with closing brackets, [_FUNCSHIFT] = LAYOUT( /* Function Shifted Layer, secondary alternative layer with closing brackets,
and F-keys under their numpad equivalents*/ and F-keys under their numpad equivalents*/
{_______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10 }, _______, _______, _______, _______, _______, KC_RBRC, KC_F7, KC_F8, KC_F9, KC_F10,
{_______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11 }, _______, _______, _______, _______, _______, KC_RPRN, KC_F4, KC_F5, KC_F6, KC_F11,
{_______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12 }, _______, _______, _______, _______, _______, KC_RCBR, KC_F1, KC_F2, KC_F3, KC_F12,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX }, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX } _______, _______, _______, _______, _______, _______, _______, _______
} )
}; };
@ -128,7 +129,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO(T(ESC), END); return MACRO(T(ESC), END);
} }
} }
break; 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 //FUNCSHIFT has been shifted by the SHIFT handling, some keys need to be excluded
if (layer == _FUNCSHIFT) { 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 } //and ] needs to be unshifted or it is sent as }
if ( (keycode >= KC_F1 && keycode <= KC_F12) if ( (keycode >= KC_F1 && keycode <= KC_F12)
|| keycode == KC_RBRC ) { || keycode == KC_RBRC ) {
@ -200,7 +201,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
void matrix_scan_user(void) { void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); uint8_t layer = biton32(layer_state);
switch (layer) { switch (layer) {
case _MALT: case _MALT:
set_led_off; set_led_off;

View file

@ -1,11 +1,10 @@
// this is the style you want to emulate. // 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, // 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 #ifdef AUDIO_ENABLE
#include "audio.h" #include "audio.h"
#endif #endif
#include "eeconfig.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below. // 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. // 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 #define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = { /* QWERTY adapted to this crazy thing */ [_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_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_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) }, 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 }, KC_LCTL, M(ESCM), KC_TAB, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
{XXXXXXX, KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST), XXXXXXX } KC_LALT, KC_LGUI, KC_SPC, SHIFT, FNKEY, KC_BSPC, KC_ENT, MO(_ADJUST)
}, ),
[_SHIFTED] = { /* Shifted Layer, layered so that tri_layer can be used, or selectively [_SHIFTED] = LAYOUT( /* Shifted Layer, layered so that tri_layer can be used, or selectively
able to modify individual key's shifted behaviour */ able to modify individual key's shifted behaviour */
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXXXXXX, __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______, XXXXXXX }, __MOD__, KC_DEL, _______, _______, _______, _______, _______, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, XXXXXXX
}, ),
[_FUNCTIONPC] = { /* Function Layer mimicks planck's raise layer somewhat */ [_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 }, 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_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 }, 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 }, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
}, ),
[_FUNCTIONMAC] = { /* Function Layer mimicks planck's raise layer somewhat */ [_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 }, 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_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 }, 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 }, __MOD__, KC_DEL, _______, KC_GRV, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, KC_NO, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, KC_PSCR, XXXXXXX
}, ),
[_FUNCSHIFT] = { /* Function Shifted Layer mimicks planck's lower layer somewhat */ [_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_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, _______, _______, _______, _______ }, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______,
{XXXXXXX, __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______, XXXXXXX }, __MOD__, KC_DEL, _______, KC_TILD, _______, _______, _______, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, _______
}, ),
[_ADJUST] = { /* Adjust layer for fancy stuff and macros */ [_ADJUST] = LAYOUT( /* Adjust layer for fancy stuff and macros */
{RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______ }, RESET, FNPC, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______,
{FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______ }, FNMAC, _______, AU_ON, AU_OFF, _______, _______, _______, _______, MACSLEEP, _______,
{MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY }, 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 }, __MOD__, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______,
{XXXXXXX, __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__, XXXXXXX } __MOD__, __MOD__, _______, __MOD__, __MOD__, _______, _______, __MOD__
} )
}; };

View file

@ -1,6 +1,6 @@
#include "mitosis.h" #include QMK_KEYBOARD_H
enum mitosis_layers enum mitosis_layers
{ {
@ -25,154 +25,154 @@ enum mitosis_layers
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 #define MOUSEKEY_WHEEL_TIME_TO_MAX 40
// Fillers to make layering more clear // Fillers to make layering more clear
#define ___ KC_TRNS #define _______ KC_TRNS
#define XXX KC_NO #define XXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt // https://github.com/nhou7/qmk_firmware_amj40/blob/master/doc/keycode.txt
/* QWERTY /* QWERTY
['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ], ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P' ],
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ], ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ],
['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ], ['Z', 'X', 'C', 'V', 'B',// 'N', 'M', ', <', '. >', '\' "' ],
[ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ], [ 'back', 'del', 'ctrl', 'L_n',// 'L_p', 'ctrl', 'ent', 'back', ],
[ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ] [ 'alt', '0', 'shif', 'spac',// 'spac', 'shif', 'cap', 'alt', ]
*/ */
[_QWERTY] = { [_QWERTY] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P}, 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_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_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}, KC_BSPACE, KC_DELETE, KC_LCTRL, TG( 2 ), TG( 3 ), KC_RCTRL, KC_ENTER, KC_BSPACE,
{XXX, KC_LALT, KC_0, KC_LSHIFT, KC_SPACE, KC_SPACE, KC_RSHIFT, KC_CAPSLOCK, KC_RALT, XXX} 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', '; :' ], ['Q', 'D', 'R', 'W', 'B',/ ** / 'J', 'F', 'U', 'P', '; :' ],
['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ], ['A', 'S', 'H', 'T', 'G',/ ** / 'Y', 'N', 'E', 'O', 'I' ],
['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ], ['Z', 'X', 'M', 'C', 'V',/ ** / 'K', 'L', ', <', '. >', '\' "' ],
[ '', '', '', '',/ ** / '', '', '', '', ], [ '', '', '', '',/ ** / '', '', '', '', ],
[ '', '4', '', '',/ ** / '', '', '', '', ] [ '', '4', '', '',/ ** / '', '', '', '', ]
*/ */
[_WORKMAN] = { [_WORKMAN] = LAYOUT(
{KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCOLON}, 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_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_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} _______, KC_1, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ], ['9', '8', '7', '6', '5',/ ** / 'F2', 'pDn', *up* /, '*tab* /, 'pUp' ],
[' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ], [' 4', ' 3', ' 2', ' 1', ' 0',/ ** / 'home', *lf* /, '*dn* /, *rt* /, 'end' ],
['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ], ['undo', 'cut', 'copy', 'paste', 'os',/ ** / 'D', '_', ',', '-', '.' ],
// -- // --
[ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ], [ '', '', '', 'L_=6',/ ** / 'L_7', '', '', '', ],
[ '', '6', '', '',/ ** / '', '', '', '', ] [ '', '6', '', '',/ ** / '', '', '', '', ]
*/ */
[_NUMBERS] = { [_NUMBERS] = LAYOUT(
{KC_9, KC_8, KC_7, KC_6, KC_5, KC_F2, KC_PGDOWN, KC_UP, KC_TAB, KC_PGUP}, 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}, 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}, 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}, _______, _______, _______, TG( 2 ), TG( 3 ), _______, _______, _______,
{XXX, ___, KC_2, ___, ___, ___, ___, ___, ___, XXX} _______, KC_2, _______, _______, _______, _______, _______, _______
}, ),
/* /*
[ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ], [ '#', '@', '&', '.', ';',/ ** / '_', ',', '|', '^', '%' ],
[ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ], [ '*', '+', '{', '(', ':',/ ** / '"', ')', '}', '-', '=' ],
[ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ], [ '\\', '?', '<', '[', '$',/ ** / '~', ']', '>', '!', '/' ],
// -- // --
['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ], ['', '', '', 'L_8',/ ** / 'L_=7', '', '', '', ],
['', '7', '', '',/ ** / '', '', '', '', ] ['', '7', '', '',/ ** / '', '', '', '', ]
*/ */
[_PUNCT] = { [_PUNCT] = LAYOUT(
{KC_HASH, KC_AT, KC_AMPERSAND, KC_DOT, KC_SCOLON, KC_UNDERSCORE, KC_COMMA, KC_PIPE, KC_CIRCUMFLEX, KC_PERCENT}, 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_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}, 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}, _______, _______, _______, TG( 4 ), TG( 3 ), _______, _______, _______,
{XXX, ___, KC_3, ___, ___, ___, ___, ___, ___, XXX} _______, KC_3, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ], ['F6', 'F7', 'F8', 'F9', 'F10',/ ** / 'app', 'mb1', 'mmU', 'mb2', 'mwU' ],
['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ], ['F1', 'F2', 'F3', 'F4', 'F5',/ ** / 'mnu', 'mmL', 'mmD', 'mmR', 'mwD' ],
['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ], ['F11', 'F12', '`', 'mute', 'ESC',/ ** / 'prtSc', 'scrLk', 'mwL', 'mwR', 'mb3' ],
// -- // --
[ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ], [ '', '', '', 'L_=8',/ ** / 'L_9', '', '', '', ],
[ '', '8', '', '',/ ** / '', '', '', '', ] [ '', '8', '', '',/ ** / '', '', '', '', ]
*/ */
[_MOUSE] = { [_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_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_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}, 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}, _______, _______, _______, TG( 4 ), TG( 5 ), _______, _______, _______,
{XXX, ___, KC_4, ___, ___, ___, ___, ___, ___, XXX} _______, KC_4, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ], ['L_ma1', '!', 'L_dv2', '!', 'L_cl3',/ ** / 'L_wk4', '!', 'L_ar5', '!', '!' ],
['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ], ['!', '!', '!', '!', '!',/ ** / '!', '!', '!', '!', '!' ],
['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ], ['L_gmA', '!', 'L_ucB', '!', 'L_npC',/ ** / '!', '!', '!', '!', '!' ],
// -- // --
[ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ], [ '', '', '', 'L_=9',/ ** / 'L_=9', '', '', '', ],
[ '', '9', '', '',/ ** / '', '', '', '', ] [ '', '9', '', '',/ ** / '', '', '', '', ]
*/ */
[_LAYERS] = { [_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, 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}, 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( 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}, _______, _______, _______, TG( 5 ), TG( 5 ), _______, _______, _______,
{XXX, ___, KC_5, ___, ___, ___, ___, ___, ___, XXX} _______, KC_5, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ], ['Q', 'W', 'E', 'R', 'T',/ ** / 'P', 'Y', '\u2191'*up* /, 'K', '1' ],
['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ], ['A', 'S', 'D', 'F', 'G',/ ** / 'H', '\u2190'*lf* /, '\u2193'*dn* /, '\u2192'*rt* /, '2' ],
['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ], ['Z', 'X', 'C', 'V', 'B',/ ** / 'M', '*', '*', '*', '3' ],
// -- // --
[ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ], [ '', '', '', 'L_=A',/ ** / 'A', '', '', '', ],
[ '', 'A', '', '',/ ** / '', '', '', '', ] [ '', 'A', '', '',/ ** / '', '', '', '', ]
*/ */
[_GAMING] = { [_GAMING] = LAYOUT(
{KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P, KC_Y, KC_UP, KC_K, KC_1}, 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_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}, 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}, _______, _______, _______, TG( 6 ), KC_6, _______, _______, _______,
{XXX, ___, KC_6, ___, ___, ___, ___, ___, ___, XXX} _______, 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* / ], ['\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* / ], ['\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* / ], ['\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', '', '', '', ], [ '', '', '', 'L_=B',/ ** / 'B', '', '', '', ],
[ '', 'B', '', '',/ ** / '', '', '', '', ] [ '', 'B', '', '',/ ** / '', '', '', '', ]
*/ */
[_UNICODE] = { [_UNICODE] = LAYOUT(
{UC(0x00A2), UC(0x00BC), UC(0x00BD), UC(0x03A3), UC(0x00D8), UC(0x250F), UC(0x2533), UC(0x2513), UC(0x03BB), UC(0x2018)}, 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(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)}, 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}, _______, _______, _______, TG( 7 ), KC_7, _______, _______, _______,
{XXX, ___, KC_7, ___, ___, ___, ___, ___, ___, XXX} _______, KC_7, _______, _______, _______, _______, _______, _______
}, ),
/* /*
['n-.', 'n-7', 'n-8', 'n-9', 'n--',/ ** / 'n-=', 'volU', 'volD', 'volU', 'volD' ], ['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-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' ], ['n -*', 'n-1', 'n-2', 'n-3', 'n-/',/ ** / 'n-ent', 'PLAY', 'PREV', 'NEXT', 'insr' ],
// -- // --
[ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ], [ '', '', '', 'L_=C',/ ** / 'C', '', '', '', ],
[ '', 'C', '', '',/ ** / '', '', '', '', ] [ '', 'C', '', '',/ ** / '', '', '', '', ]
*/ */
[_NUMPAD] = { [_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/*sic on double underscore here*/}, 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_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}, 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}, _______, _______, _______, TG( 8 ), KC_8, _______, _______, _______,
{XXX, ___, KC_8, ___, ___, ___, ___, ___, ___, XXX} _______, KC_8, _______, _______, _______, _______, _______, _______
}// , )// ,
/* /*
* / * /
[_] = { [_] = LAYOUT(
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{, , , , , , , , ,}, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
{XXX, ___, ___, ___, TG( ), TG( ), ___, ___, ___, XXX}, _______, _______, _______, _______, _______, _______, _______, _______,
{XXX, ___, KC_, ___, ___, ___, ___, ___, ___, XXX} _______, _______, _______, _______, _______, _______, _______, _______
} )
*/ */
}; };
void matrix_scan_user(void) { void matrix_scan_user(void) {

View file

@ -18,7 +18,7 @@ Bottom cluster is the same on all levels and mostly symmetric. The 'ring fingers
* back del/enter ctrl toggle-layer * back del/enter ctrl toggle-layer
* alt N/caps shift space * 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' ['Q', 'W', 'E', 'R', 'T',// 'Y', 'U', 'I', 'O', 'P'
['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :' ['A', 'S', 'D', 'F', 'G',// 'H', 'J', 'K', 'L', '; :'

View file

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