Skip to content

Instantly share code, notes, and snippets.

@PierreKircher
Created July 10, 2019 15:30
Show Gist options
  • Save PierreKircher/e65ac26a1b059d072f19d7dfc381f2a1 to your computer and use it in GitHub Desktop.
Save PierreKircher/e65ac26a1b059d072f19d7dfc381f2a1 to your computer and use it in GitHub Desktop.
#include QMK_KEYBOARD_H
#include "keymap_steno.h"
//Define Layer Names
#define _BASE 0
#define _COLEMAK 1
#define _Q_ON_COLEMAK 2
#define _PLOVER 3
#define _FUNC_L 4
#define _MACROS 5
#define _DEBUG 6
#define _MIDI 7
#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 {
MC_ALPHA, /* 𝚨 */
MC_BETA, /* 𝚩 */
MC_GAMMA, /* 𝚪 */
MC_DELTA, /* 𝚫 */
MC_EPSILON, /* 𝚬 */
MC_ZETA, /* 𝚭 */
MC_ETA, /* 𝚮 */
MC_THETA, /* 𝚯 */
MC_IOTA, /* 𝚰 */
MC_KAPPA, /* 𝚱 */
MCLAMDA, /* 𝚲 */
MC_MU, /* 𝚳 */
MC_NU, /* 𝚴 */
MC_XI, /* 𝚵 */
MC_OMICRON, /* 𝚶 */
MC_PI, /* 𝚷 */
MC_RHO, /* 𝚸 */
MC_THETA_SYMB /* 𝚹 */
MC_SIGMA, /* 𝚺 */
MC_TAU, /* 𝚻 */
MC_UPSILON, /* 𝚼 */
MC_PHI, /* 𝚽 */
MC_CHI, /* 𝚾 */
MC_PSI, /* 𝚿 */
MC_OMEGA, /* 𝛀 */
MC_NABLA, /* 𝛁 */
// --------------- //
MS_ALPHA, /* 𝛂 */
MS_BETA, /* 𝛃 */
MS_GAMMA, /* 𝛄 */
MS_DELTA, /* 𝛅 */
MS_EPSILON, /* 𝛆 */
MS_ZETA, /* 𝛇 */
MS_ETA, /* 𝛈 */
MS_THETA, /* 𝛉 */
MS_IOTA, /* 𝛊 */
MS_KAPPA, /* 𝛋 */
MS_LAMDA, /* 𝛌 */
MS_MU, /* 𝛍 */
MS_NU, /* 𝛎 */
MS_XI, /* 𝛏 */
MS_OMICRON, /* 𝛐 */
MS_PI, /* 𝛑 */
MS_RHO, /* 𝛒 */
MS_SIGMA_FIN, /* 𝛓 */
MS_SIGMA, /* 𝛔 */
MS_TAU, /* 𝛕 */
MS_UPSILON, /* 𝛖 */
MS_PHY, /* 𝛗 */
MS_CHI, /* 𝛘 */
MS_PSI, /* 𝛙 */
MS_OMEGA, /* 𝛚 */
M_DIFFERENTIAL/* 𝛛 */
};
const uint32_t PROGMEM unicode_map[] = {
[THETA] = 398, // Θ
};
enum ic60_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
Q_ON_COLEMAK,
PLOVER,
FUNC_L,
MACROS,
L_DEBUG,
DYNAMIC_MACRO_RANGE,
};
#include "dynamic_macro.h"
uint8_t current_layer_global = _BASE;
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: ---- _BaseLayer ---------z.zzzZzz-------------
* LQ = LAYER Querty LP LAYER PLOVER LFUNC *LAYER OTHER LAYERS
* LC = LAYER Colemak LF1 LAYER F1-F12 LQC LAYER QUERTY ON COLMAK
* LMO =*LAYER MOUSE LF2 LAYER F13-F14
* LNAV=*LAYER NAVIGATION LMACR*LAYER MACROS LME *LAYER MEDIA
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | = | | | |
* | LMO | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | \ | L_MED |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | { | } | |
* | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | tab:ESC | | | | | | | | | | : | " | tap:ENTER |
* | Contro | A | S | D | F | G | H | J | K | L | ; | ' | shift |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | < | > | ? | | ` |
* | Shift | Z | X | C | V | B | N | M | , | . | / | LEADER | ~ |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | |
* | MEH | META | ALT | Space | FUNC_LAY| HYPER | NAV_LAY | LMACR |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_BASE] = LAYOUT_60_ansi_split_bs_rshift(
_______ , 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 , KC_NO , \
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 , _______ , _______),
/* Layer 1: ---- colemak ---------z.zzzZzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | |
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | ; | | | |
* | ________ | _____ | _____ | F | P | G | J | L | U | Y | : | _____ | _____ | _________ |
* | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | | | | | |
* | _________ | _____ | R | S | T | D | _____ | N | E | I | O | _____ | ___________ |
* | | | | | !_! | | | !_! | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------|
* | | | | | | | | | < | > | ? | | |
* | ____________ | _____ | _____ | _____ | _____ | _____ | K | _____ | , | . | / | LEADER | _____ |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | _______ | ______ | ______ | __________ | _______ | _______ | _______ | _______ |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT_60_ansi_split_bs_rshift(
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , _______ , _______ , _______ , _______ , \
_______ , _______ , KC_R , KC_S , KC_T , KC_D , KC_TRNS , KC_N , KC_E , KC_I , KC_O , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , KC_K , _______ , _______ , _______ , _______ , _______ , _______ , \
_______ , _______ , _______ , _______ , _______ , _______ , _______ , _______) ,
[_PLOVER] = LAYOUT_60_ansi_split_bs_rshift(
DFBAS , XXXXXXX , XXXXXXX , STN_N3 , STN_N3 , STN_N4 , STN_N5 , STN_N6 , STN_N7 , STN_N8 , STN_N9 , STN_NA , STN_NB , STN_NC , 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 , STN_E , STN_U , STN_PWR , STN_RE1 , STN_RE2 , XXXXXXX , XXXXXXX , \
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
[_FUNC_L] = LAYOUT_60_ansi_split_bs_rshift(
XXXXXXX , DFBAS , DFCOL , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , \
XXXXXXX , DFMIDI , DFPLOV , 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 , KC_5) ,
[_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 , 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 7: ---- midi ---------z.zzzZzz-------------
* ,-----------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* | BASE | 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 | |
* | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------------------'
* | | | | | | | | |
* | _______ | ______ | ______ | ALL NOTES OFF | _______ | _______ | _______ | _______ |
* | | | | | | | | |
* `-----------------------------------------------------------------------------------------------------------------------'
*/
[_MIDI] = LAYOUT_60_ansi_split_bs_rshift(
DFBAS , 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 , \
XXXXXXX , XXXXXXX , XXXXXXX , MI_ALLOFF , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX) ,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_record_dynamic_macro(keycode, record)) {
return false;
}
switch (keycode) {
//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");
};
SEQ_ONE_KEY(KC_B) {
SEND_STRING("LEADER B");
};
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