Created
July 10, 2019 15:30
-
-
Save PierreKircher/e65ac26a1b059d072f19d7dfc381f2a1 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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