Skip to content

Instantly share code, notes, and snippets.

@PierreKircher
Created July 11, 2019 21:53
Show Gist options
  • Save PierreKircher/62d7388299544629eaa7921a062b42be to your computer and use it in GitHub Desktop.
Save PierreKircher/62d7388299544629eaa7921a062b42be to your computer and use it in GitHub Desktop.
#include QMK_KEYBOARD_H
#include "keymap_steno.h"
#define _COLEMAK 0
#define _QWERTY 1
#define _MEDIA 2
#define _NAVIGA 3
#define _FUNC_1 4
#define _FUNC_2 5
#define _MOUSE 6
#define _PLOVER 7
#define _FUNC_L 8
#define _MACROS 9
#define _DEBUG 10
#define _MIDI 11
#define CTRLESC MT(MOD_LCTL, KC_ESC)
#define ENT_SHI RSFT_T(KC_ENT)
#define DFBAS DF(_BASE)
#define DFCOL DF(_COLEMAK)
#define DFQOC DF(_Q_ON_COLEMAK)
#define DFPLOV DF(_PLOVER)
#define DFMIDI DF(_MIDI)
#define OSL_FUN OSL(FUNC_L)
#define ST_BOLT QK_STENO_BOLT
#define ST_GEM QK_STENO_GEMINI
enum unicode_names {
M_GA_ALPHA,
M_GA_BETA,
M_GA_DELTA,
M_GA_EPSILON,
M_GA_THETA,
M_GA_LAMDA,
M_GA_MU,
M_GA_PI,
M_GA_PHI,
M_GA_PSI,
M_GA_OMEGA
};
const uint32_t PROGMEM unicode_map[] = {
// greek alphabet
[M_GA_ALPHA] = 945, /* α u+3b1 */
[M_GA_BETA] = 946, /* β u+3b2 */
[M_GA_DELTA] = 948, /* δ u+3b4 */
[M_GA_EPSILON] = 949, /* ε u+3b5 */
[M_GA_THETA] = 952, /* θ u+3b8 */
[M_GA_LAMDA] = 955, /* λ u+3bb */
[M_GA_MU] = 956, /* μ u+3bc */
[M_GA_PI] = 960, /* π u+3c0 */
[M_GA_PHI] = 966, /* φ u+3c6 */
[M_GA_PSI] = 968, /* ψ u+3c8 */
[M_GA_OMEGA] = 937 /* Ω u+3a9 */
// SUPERSCRIPT
};
enum ic60_keycodes {
COLEMAK = SAFE_RANGE,
QWERTY,
Q_ON_COLEMAK,
PLOVER,
FUNC_L,
MIDI,
MACROS,
L_DEBUG,
DYNAMIC_MACRO_RANGE,
};
#include "dynamic_macro.h"
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: ---- COLEMAK ------------------------------
* LQ = LAYER Querty =LFUNC+Q LP LAYER PLOVER = LFUNC+P LFUNC* LAYER OTHER LAYERS
* LC = LAYER Colemak =LFUNC+C LF1 LAYER F1-F12 = LFUNC+1 LDB LAYER KB DEBUG = LFUNC+D
* LMO =* LAYER MOUSE LF2 LAYER F13-F14 LFUNC+2 LME* LAYER MEDIA
* LNAV=* LAYER NAVIGATION LMACR* LAYER MACROS LMI LAYER MIDI = LFUNC+M
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | = | | | |
* | LMO | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | \ | LME |
* | (LAY6)|LAY4 f1|LAY5F13| | | | | | | | | | | | (LAY2)|
* |-----------------------------------------------------------------------------------------------------------------------|
* | | (LAY0)| | | | | | | | | (lay7)| { | } | |
* | TAB | Q | W | F | P | G | J | L | U | Y | : | [ | ] | Bksp |
* | |F BASE | | | | | | | | | PLOVER| | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | tab:ESC | | | | |(LAY10)| | | | | | " | tap:ENTER |
* | Contro | A | R | S | T | D | H | N | E | I | O | ' | shift |
* | | | | | !_! |F DEBUG| | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | (LAY1)| | | |(LAY11)| < | > | ? | | ` |
* | Shift | Z | X | C | V | B | N | M | , | . | / | LEADER | ~ |
* | | | |F COLMA| | | |F MIDI | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | |
* | MEH | META | ALT | Space | LFNC | HYPER | LNAV | LMACR |
* | | | | | (LAY8) | | (LAY3) | (LAY9) |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[COLEMAK] = LAYOUT_60_ansi_split_bs_rshift(
TO(MOUSE) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_NUBS , TO(MEDIA), \
KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_LBRC , KC_RBRC , KC_BSPC , \
CTRLESC , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT , ENT_SHI , \
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM , KC_DOT , KC_SLASH , KC_LEAD , KC_GRV , \
KC_MEH , KC_LGUI , KC_LALT , KC_SPACE , OSL_FUN , KC_HYPR , TO(NAVIGA) , TT(MACROS)) ,
/* Layer 1: ---- QWERTY ------------------------------
* LQ = LAYER Querty =LFUNC+Q LP LAYER PLOVER = LFUNC+P LFUNC* LAYER OTHER LAYERS
* LC = LAYER Colemak =LFUNC+C LF1 LAYER F1-F12 = LFUNC+1 LDB LAYER KB DEBUG = LFUNC+D
* LMO =* LAYER MOUSE LF2 LAYER F13-F14 LFUNC+2 LME* LAYER MEDIA
* LNAV=* LAYER NAVIGATION LMACR* LAYER MACROS LMI LAYER MIDI = LFUNC+M
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | = | | | |
* | LMO | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | \ | LME |
* | (LAY6)|LAY4 f1|LAY5F13| | | | | | | | | | | | (LAY2)|
* |-----------------------------------------------------------------------------------------------------------------------|
* | | (LAY0)| | | | | | | | | (lay7)| { | } | |
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
* | |F BASE | | | | | | | | | PLOVER| | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | tab:ESC | (LAY9)| |(LAY10)| | | | | | | : | " | tap:ENTER |
* | Contro | A | S | D | F | G | H | J | K | L | ; | ' | shift |
* | | MACROS| |F DEBUG| !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | (LAY1)| | | |(LAY11)| < | > | ? | | ` |
* | Shift | Z | X | C | V | B | N | M | , | . | / | LEADER | ~ |
* | | | |F COLMA| | | |F MIDI | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | |
* | MEH | META | ALT | Space | LFNC | HYPER | LNAV | LMACR |
* | | | | | (LAY8) | | (LAY3) | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[QWERTY] = LAYOUT_60_ansi_split_bs_rshift(
TO(MOUSE) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_NUBS , TO(MEDIA), \
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_BSPC , \
CTRLESC , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , ENT_SHI , \
KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLASH , KC_LEAD , KC_GRV , \
KC_MEH , KC_LGUI , KC_LALT , KC_SPACE , OSL_FUN , KC_HYPR , TO(NAVIGA) , TT(MACROS)),
/* Layer 2: ---- MEDIA ---------z.zzzZzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | ----- |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | ------------ | | | | | | | | | | | | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | | | | | | | | | LEADER | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | ------ | ------ | | | ------- | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[MEDIA] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , \
TG(MEDIA) , _______ , _______ , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX) ,
/* Layer 3: ---- NAVIGATION ---------z.zzzZzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | | | up | | | | |pg down| pg up | | | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | ------------ | left | down | right | | | left | down | up | right | | | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | | | | | end | home | | | LEADER | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | exit | ______ | ______ | | | | _______ | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_NAVIGA] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , KC_UP , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PGDN , KC_PGUP , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , KC_LEFT , KC_DOWN , KC_RIGHT, XXXXXXX , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT, XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_END , KC_HOME , XXXXXXX , XXXXXXX , _______ , XXXXXXX , \
TG(_NAVIGA) , _______ , _______ , XXXXXXX , XXXXXXX , _______ , _______ , XXXXXXX) ,
/* layer 4: ---- function f1-f12 --z.zzzzzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12 | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | ____________ | | | | | | | | | | | | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | | | | | | | | | leader | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | ____ | _____ | | | | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_FUNC_1] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , \
TG(_FUNC_1), _______ , _______ , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX) ,
/* layer 5: ---- function f13-f24 --z.zzzzzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | f1 | f2 | f3 | f4 | f5 | f6 | f7 | f8 | f9 | f10 | f11 | f12 | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | ____________ | | | | | | | | | | | | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | | | | | | | | | leader | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | ____ | _____ | | | | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_FUNC_2] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , \
TG(_FUNC_2), _______ , _______ , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX) ,
/* layer 6: ---- MOUSE --z.zzzzzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | _____ | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | ____________ | | | | | | | | | | | | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | | | | | | | | | leader | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | ____ | _____ | | | | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_MOUSE] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , KC_MS_U , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , KC_MS_L , KC_MS_D , KC_MS_R , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
TG(_MOUSE) , _______ , _______ , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX) ,
/* Layer 7: ------ Plover -----------------------------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | # | # | # | # | # | # | # | # | # | # | # | # | # | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | FN | S | T | P | H | * | * | F | P | L | T | D | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | S | K | W | R | * | * | R | B | G | S | Z | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | | | | A | O | | | E | U | PWR | RE1 | RE2 | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | | | | | | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_PLOVER] = LAYOUT_60_ansi_split_bs_rshift(
STN_N1 , STN_N2 , STN_N3 , STN_N4 , STN_N5 , STN_N6 , STN_N7 , STN_N8 , STN_N9 , STN_NA , STN_NB , STN_NC , XXXXXXX , XXXXXXX , XXXXXXX , \
STN_FN , STN_S1 , STN_TL , STN_PL , STN_HL , STN_ST1 , STN_ST3 , STN_FR , STN_PR , STN_LR , STN_TR , STN_DR , XXXXXXX , XXXXXXX , \
XXXXXXX , STN_S2 , STN_KL , STN_WL , STN_RL , STN_ST2 , STN_ST4 , STN_RR , STN_BR , STN_GR , STN_SR , STN_ZR , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , STN_A , STN_O , XXXXXXX , XXXXXXX , STN_E , STN_U , STN_PWR , STN_RE1 , STN_RE2 , XXXXXXX , \
TG(_PLOVER) , _______ , _______ , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX) ,
/* Layer 8: ---- ONE SHOT LAYERNAVIGATION LAYER ------------------------------ */
[_FUNC_L] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , QWERTY , XXXXXXX , XXXXXXX , XXXXXXX , PLOVER , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , PLOVER , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , DEBUG , XXXXXXX , DEBUG , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , COLEMAK , XXXXXXX , XXXXXXX , XXXXXXX , MIDI , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
/* Layer 9: Macros */
[_MACROS] = LAYOUT_60_ansi_split_bs_rshift(
// DYN_REC_STOP
// DYN_REC_START1
// DYN_REC_START2
// DYN_MACRO_PLAY1
// DYN_MACRO_PLAY2
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
/* Layer 10: ---- Keyboard Debug Layer ------------------------------ */
[_DEBUG] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , RESET , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , RESET , DEBUG , XXXXXXX , DEBUG , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
/* Layer 11: ------ midi ------------------------------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | VELO1 | VELO2 | VELO3 | VELO4 | VELO5 | VELO6 | VELO7 | VELO9 | VEL10 | | | | | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | | |
* | CH+ | | C# | D# | | F# | G# | A# | | C# | D# | | | |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | MOD | C | D | E | F | G | A | B | C | D | E | F | |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | SUBSTAIN | OCT- | OCT+ | MOD- | MOD+ | | | | TNS- | TNS+ | TNS0 | SUBSTAIN | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | EXIT | | | ALL NOTES OFF | | | | |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_MIDI] = LAYOUT_60_ansi_split_bs_rshift(
KC_NO , MI_VEL_1 , MI_VEL_2 , MI_VEL_3 , MI_VEL_4 , MI_VEL_5 , MI_VEL_7 , MI_VEL_8 , MI_VEL_9 , MI_VEL_10 , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
MI_CHU , XXXXXXX , MI_Cs , MI_Ds , XXXXXXX , MI_Fs , MI_Gs , MI_As , XXXXXXX , MI_Cs_1 , MI_Ds_1 , XXXXXXX , XXXXXXX , XXXXXXX , \
MI_MOD , MI_C , MI_D , MI_E , MI_F , MI_G , MI_A , MI_B , MI_C_1 , MI_D_1 , MI_E_1 , MI_F_1 , XXXXXXX , \
MI_SUS , MI_OCTD , MI_OCTU , MI_MODSD , MI_MODSU , XXXXXXX , XXXXXXX , XXXXXXX , MI_TRNSD , MI_TRNSU , MI_TRNS_0 , MI_SUS , XXXXXXX , \
TG(MIDI) , XXXXXXX , XXXXXXX , MI_ALLOFF , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef CONSOLE_ENABLE
uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
#endif
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode switched to qwerty\n");
set_single_persistent_default_layer(QWERTY);
}
break;
case COLEMAK:
if(record->event.pressed) {
print("mode switched to colemak\n");
set_single_persistent_default_layer(COLEMAK);
}
break;
case MOUSE:
if(record->event.pressed){
print("mode switched to mouse \n");
}
break;
case MEDIA:
if(record->event.pressed) {
print("mode switched to media \n");
}
break;
case MIDI:
if(record->event.pressed) {
print("mode switched to midi\n");
}
break;
case FUNC_L:
if(record->event.pressed) {
print("mode switched to forward function layer\n")
}
break;
//case QMKBEST:
// if (record->event.pressed) {
// when keycode QMKBEST is pressed
// SEND_STRING("QMK is the best thing ever!");
// } else {
// when keycode QMKBEST is released
// }
// break;
}
return true;
}
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
bool did_leader_succeed;
LEADER_EXTERNS();
void matrix_scan_user(void) {
LEADER_DICTIONARY() {
did_leader_succeed = leading = false;
SEQ_ONE_KEY(KC_M) {
SEND_STRING("LEADER M");
print("Leader M\n");
};
SEQ_ONE_KEY(KC_B) {
SEND_STRING("LEADER B");
print("Leader B\n");
};
leader_end();
}
}
void leader_start(void) {
}
void leader_end(void) {
if (did_leader_succeed) {
} else {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment