@ -4,33 +4,42 @@
# include "action_layer.h"
# include "action_util.h"
# define BASE 0 // default layer
# define LOCK 1 // shift-lock layer
# define SYMB_SH 2 // symbols shift layer
# define SYMB_LK 3 // symbols lock layer
# define SYMB_UN 4 // symbols unlock layer
# define MDIA_SH 5 // media shift layer
# define MDIA_LK 6 // media lock layer
# define MDIA_UN 7 // media unlock layer
# define UNLOCK 8 // clear to base layer
# define BASE 0 // default layer
# define SYMB 1 // symbols layer
# define MDIA 2 // media layer
# define LOCK 3 // shift-lock layer
# define LSymb 0 // left symbol-shift key
# define LMdia 1 // left media-shift key
# define LLock 2 // left shift-lock key
# define RSymb 3 // right symbol-shift key
# define RMdia 4 // right media-shift key
# define RLock 5 // right shift-lock key
# define MUL 6 // mouse up left
# define MUR 7 // mouse up right
# define MDL 8 // mouse down left
# define MDR 9 // mouse down right
/*
* The Ordinary Layout for the Ergodox EZ keyboard , v3 .1
* modifications from default by Nicholas Keene ergodoxez @ nicholaskeene . com
* The Ordinary Layout for the Ergodox EZ keyboard , v3 .14
*
* Modifications from default by Nicholas Keene ergodoxez @ nicholaskeene . com
*
* Details : readme . md
* https : //github.com/nrrkeene/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/ordinary
*/
const uint16_t PROGMEM keymaps [ ] [ MATRIX_ROWS ] [ MATRIX_COLS ] = {
/* Keymap 0: Base Layer
/* ****** Base Layer ********************************************************************************************************
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | L OCK ` ~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = LOCK |
* | L ock ` ~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | = + Lock |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ Media |
* | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | Media |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Symbol | A | S | D | F | G | - - - - - - | | - - - - - - | H | J | K | L | ; | ' Symbol |
* | Symbol | A | S | D | F | G | - - - - - - | | - - - - - - | H | J | K | L | ; | ' " Symbol |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | Shift | | Tab | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | LShift | Z | X | C | V | B | - Tab | | | N | M | , | . | / | RShift |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - '
@ -46,128 +55,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[ BASE ] = KEYMAP (
// left hand
LT ( LOCK , KC_GRV ) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_ESC
, LT ( MDIA_SH , KC_TAB ) , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LBRC
, MO ( SYMB_SH ) , KC_A , KC_S , KC_D , KC_F , KC_G
, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LSFT ( KC_TAB )
, KC_LCTL , MEH_T ( KC_NO ) , ALL_T ( KC_NO ) , KC_LALT , KC_LGUI
, KC_HOME , KC_END
, KC_PGUP
, KC_BSPC , KC_DEL , KC_PGDN
// right hand
, KC_MINS , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , LT ( LOCK , KC_EQL )
, KC_RBRC , KC_Y , KC_U , KC_I , KC_O , KC_P , LT ( MDIA_SH , KC_BSLS )
, KC_H , KC_J , KC_K , KC_L , KC_SCLN , LT ( SYMB_SH , KC_QUOT )
, KC_TAB , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT
, KC_RGUI , KC_RALT , ALL_T ( KC_NO ) , MEH_T ( KC_NO ) , KC_RCTL
, KC_LEFT , KC_RGHT
, KC_UP
, KC_DOWN , KC_ENT , KC_SPC
F ( LLock ) , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_ESC
, F ( LMdia ) , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_LBRC
, M ( LSymb ) , KC_A , KC_S , KC_D , KC_F , KC_G
, KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LSFT ( KC_TAB )
, KC_LCTL , KC_MEH , KC_HYPR , KC_LALT , KC_LGUI
, KC_HOME , KC_END
, KC_PGUP
, KC_BSPC , KC_DEL , KC_PGDN
// right hand
, KC_MINS , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , F ( RLock )
, KC_RBRC , KC_Y , KC_U , KC_I , KC_O , KC_P , F ( RMdia )
, KC_H , KC_J , KC_K , KC_L , KC_SCLN , F ( RSymb )
, KC_TAB , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT
, KC_RGUI , KC_RALT , KC_HYPR , KC_MEH , KC_RCTL
, KC_LEFT , KC_RGHT
, KC_UP
, KC_DOWN , KC_ENT , KC_SPC
) ,
/* Keymap 1: Layer Lock Keys
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | Esc | | | | | | | | | | | | Bspc | |
* | - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |
* | Media LOCK | | | | | | | | | | | | | | Media LOCK |
* | - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |
* | Symbol LOCK | | | | | | - - - - - - | | - - - - - - | | | | | | Symbol LOCK |
* | - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - |
* | Caps LOCK | | | | | | | | | | | | | | Caps LOCK |
* ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - '
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | | | | | |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | | | | | | | |
* | | | - - - - - - | | - - - - - - | | |
* | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ LOCK ] = KEYMAP (
// left hand
KC_TRNS , KC_ESC , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_FN3 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_FN2 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_CAPS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
// right hand
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BSPC , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_FN3
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_FN2
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_CAPS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
) ,
/* Keymap 2: Symbol Shift Layer
/******* Symbols Layer *****************************************************************************************************
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK |
* | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media |
* | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Symbol | # | $ | ( | ) | ` | - - - - - - | | - - - - - - | / | 4 | 5 | 6 | * | Symbol |
* | | # | $ | ( | ) | ` | - - - - - - | | - - - - - - | / | 4 | 5 | 6 | * | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | Tab | | Shift | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | LShift | % | ^ | [ | ] | ~ | | | - Tab | \ | 1 | 2 | 3 | - | RShift |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - '
* | | | | | | | 0 | . | = | + | Entr |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | Left | Right | | Home | End |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | | | Up | | PgUp | | |
* | Space | Enter | - - - - - - | | - - - - - - | BackSp | Del |
* | | | Down | | PgDn | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ SYMB_SH ] = KEYMAP (
// left hand
KC_FN2 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS
, MO ( MDIA_SH ) , KC_EXLM , KC_AT , KC_LCBR , KC_RCBR , KC_AMPR , LSFT ( KC_COMM )
, MO ( SYMB_SH ) , KC_HASH , KC_DLR , KC_LPRN , KC_RPRN , KC_GRV
, KC_LSFT , KC_PERC , KC_CIRC , KC_LBRC , KC_RBRC , KC_TILD , KC_TAB
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_LEFT , KC_RGHT
, KC_UP
, KC_SPC , KC_ENT , KC_DOWN
// right hand
, KC_MINS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_FN2
, LSFT ( KC_DOT ) , KC_PIPE , KC_7 , KC_8 , KC_9 , KC_SLSH , MO ( MDIA_SH )
, KC_SLSH , KC_4 , KC_5 , KC_6 , KC_ASTR , MO ( SYMB_SH )
, LSFT ( KC_TAB ) , KC_BSLS , KC_1 , KC_2 , KC_3 , KC_MINS , KC_RSFT
, GUI_T ( KC_0 ) , ALT_T ( KC_DOT ) , ALL_T ( KC_EQL ) , MEH_T ( KC_PLUS ) , CTL_T ( KC_ENT )
, KC_HOME , KC_END
, KC_PGUP
, KC_PGDN , KC_BSPC , KC_DEL
) ,
/* Keymap 3: Symbol Lock Layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | LOCK | F1 | F2 | F3 | F4 | F5 | | | - | F6 | F7 | F8 | F9 | F10 | LOCK |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Media | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | Media |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Symbol | # | $ | ( | ) | ` | - - - - - - | | - - - - - - | / | 4 | 5 | 6 | * | Symbol |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | Tab | | Shift | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | LShift | % | ^ | [ | ] | ~ | | | - Tab | \ | 1 | 2 | 3 | - | RShift |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - '
* | | | | | | | 0 | . | = | + | Entr |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* | | % | ^ | [ | ] | ~ | | | - Tab | \ | 1 | 2 | 3 | - | |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - '
* | LCtrl | Meh | Hyper | LAlt | LGui | | RGui / 0 | RAlt / . | Hypr / = | Meh / + | RCtrl / Ent |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | Left | Right | | Home | End |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
@ -176,159 +95,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | Down | | PgDn | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ SYMB_LK ] = KEYMAP (
// left hand
MO ( SYMB_UN ) , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS
, MO ( MDIA_SH ) , KC_EXLM , KC_AT , KC_LCBR , KC_RCBR , KC_AMPR , LSFT ( KC_COMM )
, MO ( UNLOCK ) , KC_HASH , KC_DLR , KC_LPRN , KC_RPRN , KC_GRV
, KC_LSFT , KC_PERC , KC_CIRC , KC_LBRC , KC_RBRC , KC_TILD , KC_TAB
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_LEFT , KC_RGHT
, KC_UP
, KC_SPC , KC_ENT , KC_DOWN
// right hand
, KC_MINS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , MO ( SYMB_UN )
, LSFT ( KC_DOT ) , KC_PIPE , KC_7 , KC_8 , KC_9 , KC_SLSH , MO ( MDIA_SH )
, KC_SLSH , KC_4 , KC_5 , KC_6 , KC_ASTR , MO ( UNLOCK )
, LSFT ( KC_TAB ) , KC_BSLS , KC_1 , KC_2 , KC_3 , KC_MINS , KC_RSFT
, GUI_T ( KC_0 ) , ALT_T ( KC_DOT ) , ALL_T ( KC_EQL ) , MEH_T ( KC_PLUS ) , CTL_T ( KC_ENT )
, KC_HOME , KC_END
, KC_PGUP
, KC_PGDN , KC_BSPC , KC_DEL
) ,
/* Keymap 4: Symbol Unlock Layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | Esc | | | | | | | | | | | | Bspc | |
* | - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - |
* | Media LOCK | | | | | | | | | | | | | | Media LOCK |
* | - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - |
* | UNLOCK | | | | | | - - - - - - | | - - - - - - | | | | | | UNLOCK |
* | - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - |
* | Caps LOCK | | | | | | | | | | | | | | Caps LOCK |
* ` - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - '
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | | | | | |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | | | | | | | |
* | | | - - - - - - | | - - - - - - | | |
* | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ SYMB_UN ] = KEYMAP (
[ SYMB ] = KEYMAP (
// left hand
KC_TRNS , KC_ESC , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, TG ( MDIA_LK ) , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ FN1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ CAPS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_ESC
, KC_TRNS , KC_EXLM , KC_AT , KC_LCBR , KC_RCBR , KC_AMPR , LSFT ( KC_COMM )
, KC_TRNS , KC_HASH , KC_DLR , KC_LPRN , KC_RPRN , KC_GRV
, KC_TRNS , KC_PERC , KC_CIRC , KC_LBRC , KC_RBRC , KC_TILD , KC_TAB
, KC_LCTL , KC_MEH , KC_HYPR , KC_LALT , KC_LGUI
, KC_LEFT , KC_RGHT
, KC_UP
, KC_SPC , KC_ENT , KC_DOWN
// right hand
, KC_ TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BSPC , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , TG ( MDIA_LK )
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_FN1
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_CAP S
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ TRNS , KC_TRNS
, KC_ TRNS
, KC_ TRNS , KC_TRNS , KC_TRNS
, KC_MINS , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_TRNS
, LSFT ( KC_DOT ) , KC_PIPE , KC_7 , KC_8 , KC_9 , KC_SLSH , KC_TRNS
, KC_SLSH , KC_4 , KC_5 , KC_6 , KC_ASTR , KC_TRNS
, LSFT ( KC_TAB ) , KC_BSLS , KC_1 , KC_2 , KC_3 , KC_MINS , KC_TRNS
, GUI_T ( KC_0 ) , ALT_T ( KC_DOT ) , ALL_T ( KC_EQL ) , MEH_T ( KC_PLUS ) , CTL_T ( KC_ENT )
, KC_HOME , KC_END
, KC_PGUP
, KC_PGDN , KC_BSPC , KC_DEL
) ,
/* Keymap 5: Media Shift Layer
/******* Media Layer *******************************************************************************************************
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK |
* | - - - - - - -- - - - + - - - - - - + - - - - - - +- - - - - - + - - - - - - +- - - - - - - - - - - - - | | - - - - - - + - - - - - - +- - - - - - + - - - - - - +- - - - - - + - - - - - - +- - - - - - - - - - - |
* | Media | ShutDn | LClick | MsUp | RClick | Vol Up | ScrlUp | | ScrlUp | PrtScr | Home | Up | PgUp | Mail | Media |
* | - - - - - - -- - - - + - - - - - - +- -- - - - + - - - - - - +- - - - - - +- - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - +- - - - - - +- - - - - - - - - - - |
* | Symbol | Sleep | MsLeft | MsDown | MsRght | Vol Dn | - - - - - - | | - - - - - - | NumLok | Left | Down | Right | MyComp | Symbol |
* | - - - - - - -- - - - + - - - - - - +- - - - - - + - - - - - - + - - - - - - +- - - - - - | | | | - - - - - - + - - - - - - +- - - - - - + - - - - - - + - - - - - - +- - - - - - - - - - - |
* | LShift | | | MsDown | | Mute | ScrlDn | | ScrlDn | | End | Down | PgDn | | RShift |
* ` - - - - - - -- - - - + - - - - - - + - - - - - - +- - - - - - + - - - - - - +- - - - - - - - - - - - - ' ` - - - - - - - - - - - - - +- - - - - - + - - - - - - +- - - - - - + - - - - - - +- - - - - - - - - - - '
* | LCtrl | Meh | Hyper | LAlt | LGui | | Insert | Delete | Hyper | LAlt | LGui |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | Stop | Refrsh | | Prev | Next |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | Brwser | Brwser | Search | | VolUp | | |
* | Back | Fwd | - - - - - - | | - - - - - - | Stop | Play - |
* | | | Home | | VolDn | | Pause |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | |
* | - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - - - - - - - - | | - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - |
* | | Shut Down | MouseUpLf | Mouse Up | MouseUpRg | Volume Up | Scroll | | Scroll | PrintScrn | Home | Up | PgUp | Mail | |
* | - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - | Up | | Up | - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - |
* | | Sleep | MouseLeft | MouseDown | MouseRght | Volume Dn | - - - - - - | | - - - - - - | Num Lock | Left | Down | Right | MyComp | |
* | - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - | Scroll | | Scroll | - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - |
* | | | MouseDnLf | MouseDown | MouseDnRg | Mute | Down | | Down | | End | Down | PgDn | | |
* ` - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - - - - + - - - - - - '
* | LCtrl | Meh | MClick | LClick | R Click | | Cmd / Insrt | Optn / Del | Hyper | Meh | RCtrl |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | Stop | Refrsh | | Prev | Next |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | Brwser | Brwser | Search | | VolUp | | |
* | Back | Fwd | - - - - - - | | - - - - - - | Stop | Play - |
* | | | Home | | VolDn | | Pause |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ MDIA _SH ] = KEYMAP (
[ MDIA ] = KEYMAP (
// left hand
KC_ FN3 , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_ NO
, MO ( MDIA_SH ) , KC_POWER , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_VOLU , KC_WH_U
, MO ( SYMB_SH ) , KC_SLEP , KC_MS_L , KC_MS_D , KC_MS_R , KC_VOLD
, KC_ LSFT , KC_NO , KC_NO , KC_MS_D , KC_NO , KC_MUTE , KC_WH_D
, KC_LCTL , MEH_T ( KC_NO ) , ALL_T ( KC_NO ) , KC_LALT , KC_LGUI
, KC_WSTP , KC_WREF
, KC_WSCH
, KC_WBAK , KC_NO , KC_WHOM
KC_ TRNS , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_ ESC
, KC_TRNS , KC_POWER , M ( MUL ) , KC_MS_U , M ( MUR ) , KC_VOLU , KC_WH_U
, KC_TRNS , KC_SLEP , KC_MS_L , KC_MS_D , KC_MS_R , KC_VOLD
, KC_ TRNS , KC_NO , M ( MDL ) , KC_MS_D , M ( MDR ) , KC_MUTE , KC_WH_D
, KC_LCTL , KC_MEH , KC_BTN3 , KC_BTN1 , KC_BTN2
, KC_WSTP , KC_WREF
, KC_WSCH
, KC_WBAK , KC_NO , KC_WHOM
// right hand
, KC_NO , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_ FN3
, KC_WH_U , KC_PSCR , KC_HOME , KC_UP , KC_PGUP , KC_MAIL , MO ( MDIA_SH )
, KC_NLCK , KC_LEFT , KC_DOWN , KC_RIGHT , KC_MYCM , MO ( SYMB_SH )
, KC_WH_D , KC_NO , KC_END , KC_DOWN , KC_PGDN , KC_NO , KC_ RSFT
, GUI_T ( KC_INS ) , ALT_T ( KC_DEL ) , ALL_T ( KC_NO ) , MEH_T ( KC_NO ) , KC_RCTL
, KC_NO , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_ TRNS
, KC_WH_U , KC_PSCR , KC_HOME , KC_UP , KC_PGUP , KC_MAIL , KC_TRNS
, KC_NLCK , KC_LEFT , KC_DOWN , KC_RIGHT , KC_MYCM , KC_TRNS
, KC_WH_D , KC_NO , KC_END , KC_DOWN , KC_PGDN , KC_NO , KC_ T RN S
, GUI_T ( KC_INS ) , ALT_T ( KC_DEL ) , KC_HYPR , KC_MEH , KC_RCTL
, KC_MPRV , KC_MNXT
, KC_VOLU
, KC_VOLD , KC_MSTP , KC_MPLY
) ,
/* Keymap 6: Media Lock Layer
/* ****** Lock Layer ********************************************************************************************************
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | LOCK | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | LOCK |
* | | Esc | | | | | | | | | | | | Bspc | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | Media | ShutDn | LClick | MsUp | RClick | Vol Up | ScrlUp | | ScrlUp | PrtScr | Home | Up | PgUp | Mail | Media |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | | Sleep | MsLeft | MsDown | MsRght | Vol Dn | - - - - - - | | - - - - - - | NumLok | Left | Down | Right | MyComp | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | LShift | | | MsDown | | Mute | ScrlDn | | ScrlDn | | End | Down | PgDn | | RShift |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - '
* | LCtrl | Meh | Hyper | LAlt | LGui | | Insert | Delete | Hyper | LAlt | LGui |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | Stop | Refrsh | | Prev | Next |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | Brwser | Brwser | Search | | VolUp | | |
* | Back | Fwd | - - - - - - | | - - - - - - | Stop | Play - |
* | | | Home | | VolDn | | Pause |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ MDIA_LK ] = KEYMAP (
// left hand
MO ( MDIA_UN ) , KC_F11 , KC_F12 , KC_F13 , KC_F14 , KC_F15 , KC_NO
, MO ( UNLOCK ) , KC_POWER , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_VOLU , KC_WH_U
, KC_NO , KC_SLEP , KC_MS_L , KC_MS_D , KC_MS_R , KC_VOLD
, KC_LSFT , KC_NO , KC_NO , KC_MS_D , KC_NO , KC_MUTE , KC_WH_D
, KC_LCTL , MEH_T ( KC_NO ) , ALL_T ( KC_NO ) , KC_LALT , KC_LGUI
, KC_WSTP , KC_WREF
, KC_WSCH
, KC_WBAK , KC_NO , KC_WHOM
// right hand
, KC_NO , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , MO ( MDIA_UN )
, KC_WH_U , KC_PSCR , KC_HOME , KC_UP , KC_PGUP , KC_MAIL , MO ( UNLOCK )
, KC_NLCK , KC_LEFT , KC_DOWN , KC_RIGHT , KC_MYCM , KC_NO
, KC_WH_D , KC_NO , KC_END , KC_DOWN , KC_PGDN , KC_NO , KC_RSFT
, GUI_T ( KC_INS ) , ALT_T ( KC_DEL ) , ALL_T ( KC_NO ) , MEH_T ( KC_NO ) , KC_RCTL
, KC_MPRV , KC_MNXT
, KC_VOLU
, KC_VOLD , KC_MSTP , KC_MPLY
) ,
/* Keymap 7: Media Unlock Layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | | Esc | | | | | | | | | | | | Bspc | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | UNLOCK | | | | | | | | | | | | | | UNLOCK |
* | | | | | | | | | | | | | | | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | | | | | | | - - - - - - | | - - - - - - | | | | | | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
@ -344,94 +179,215 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ MDIA_UN ] = KEYMAP (
[ LOCK ] = KEYMAP (
// left hand
KC_TRNS , KC_ESC , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ FN1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_ TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_CAPS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
// right hand
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BSPC , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_FN1
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_CAPS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
) ,
/* Keymap 8: Unlock Layer
*
* , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - . , - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - .
* | UNLOCK | | | | | | | | | | | | | | UNLOCK |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | | | | | | | | | | | | | | | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | | | | | | | - - - - - - | | - - - - - - | | | | | | |
* | - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - | | | | - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - |
* | | | | | | | | | | | | | | | |
* ` - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - - - - - '
* | | | | | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '
* , - - - - - - - - - - - - - . , - - - - - - - - - - - - - .
* | | | | | |
* , - - - - - - | - - - - - - | - - - - - - | | - - - - - - + - - - - - - + - - - - - - .
* | | | | | | | |
* | | | - - - - - - | | - - - - - - | | |
* | | | | | | | |
* ` - - - - - - - - - - - - - - - - - - - - ' ` - - - - - - - - - - - - - - - - - - - - '
*/
[ UNLOCK ] = KEYMAP (
// left hand
KC_FN1 , KC_ESC , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
// right hand
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_BSPC , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_CAPS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
// right hand
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_FN1
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
, KC_TRNS , KC_TRNS
, KC_TRNS
, KC_TRNS , KC_TRNS , KC_TRNS
)
} ;
const uint16_t PROGMEM fn_actions [ ] = {
[ 1 ] = ACTION_LAYER_CLEAR ( ON_PRESS ) // FN1 - clear to base layer
, [ 2 ] = ACTION_LAYER_INVERT ( SYMB_LK , ON_PRESS ) // FN2 - toggle to Symbols on press
, [ 3 ] = ACTION_LAYER_INVERT ( MDIA_LK , ON_PRESS ) // FN3 - toggle to Media on press
// the six faux shift keys are implemented as macro taps
[ LSymb ] = ACTION_MACRO_TAP ( LSymb )
, [ LMdia ] = ACTION_MACRO_TAP ( LMdia )
, [ LLock ] = ACTION_MACRO_TAP ( LLock )
, [ RSymb ] = ACTION_MACRO_TAP ( RSymb )
, [ RMdia ] = ACTION_MACRO_TAP ( RMdia )
, [ RLock ] = ACTION_MACRO_TAP ( RLock )
} ;
uint16_t symb_shift = 0 ; // there are two shift keys for each layer, and two lock
uint16_t mdia_shift = 0 ; // keys; we increment a counter for each key pressed and
uint16_t shift_lock = 0 ; // decrement when released.
bool symb_lock = false ; // when shift-lock is used in conjunction with a shift
bool mdia_lock = false ; // key the lock flag is toggled
const macro_t * action_get_macro ( keyrecord_t * record , uint8_t id , uint8_t opt )
{
// MACRODOWN only works in this function
switch ( id ) {
case 0 :
switch ( id ) {
// shift and lock between layers
case LSymb :
if ( record - > event . pressed ) {
symb_shift + + ;
if ( shift_lock ) symb_lock = ! symb_lock ;
layer_on ( SYMB ) ;
} else {
symb_shift - - ;
if ( ( ! symb_shift ) & & ( ! symb_lock ) ) layer_off ( SYMB ) ;
}
break ;
case LMdia :
if ( record - > event . pressed ) {
register_code ( KC_RSFT ) ;
if ( record - > tap . count & & ! shift_lock ) {
register_code ( KC_TAB ) ;
} else {
mdia_shift + + ;
if ( shift_lock ) mdia_lock = ! mdia_lock ;
layer_on ( MDIA ) ;
}
} else {
unregister_code ( KC_RSFT ) ;
if ( record - > tap . count & & ! shift_lock ) {
unregister_code ( KC_TAB ) ;
} else {
mdia_shift - - ;
if ( ( ! mdia_shift ) & & ( ! mdia_lock ) ) layer_off ( MDIA ) ;
}
}
break ;
case LLock :
if ( record - > event . pressed ) {
shift_lock + + ;
if ( symb_shift ) symb_lock = ! symb_lock ;
if ( mdia_shift ) mdia_lock = ! mdia_lock ;
if ( ! record - > tap . count & & ( keyboard_report - > mods & ( MOD_BIT ( KC_LSFT ) | MOD_BIT ( KC_RSFT ) ) ) ) {
register_code ( KC_CAPS ) ;
unregister_code ( KC_CAPS ) ;
}
layer_on ( LOCK ) ;
} else {
if ( record - > tap . count & & ! record - > tap . interrupted & & ! symb_shift & & ! mdia_shift ) {
register_code ( KC_GRV ) ;
unregister_code ( KC_GRV ) ;
}
shift_lock - - ;
if ( ! shift_lock ) layer_off ( LOCK ) ;
}
break ;
}
case RSymb :
if ( record - > event . pressed ) {
if ( record - > tap . count & & ! shift_lock ) {
register_code ( KC_QUOT ) ;
} else {
symb_shift + + ;
if ( shift_lock ) symb_lock = ! symb_lock ;
layer_on ( SYMB ) ;
}
} else {
if ( record - > tap . count & & ! shift_lock ) {
unregister_code ( KC_QUOT ) ;
} else {
symb_shift - - ;
if ( ( ! symb_shift ) & & ( ! symb_lock ) ) layer_off ( SYMB ) ;
}
}
break ;
case RMdia :
if ( record - > event . pressed ) {
if ( record - > tap . count & & ! shift_lock ) {
register_code ( KC_BSLS ) ;
} else {
mdia_shift + + ;
if ( shift_lock ) mdia_lock = ! mdia_lock ;
layer_on ( MDIA ) ;
}
} else {
if ( record - > tap . count & & ! shift_lock ) {
unregister_code ( KC_BSLS ) ;
} else {
mdia_shift - - ;
if ( ( ! mdia_shift ) & & ( ! mdia_lock ) ) layer_off ( MDIA ) ;
}
}
break ;
case RLock :
if ( record - > event . pressed ) {
shift_lock + + ;
if ( symb_shift ) symb_lock = ! symb_lock ;
if ( mdia_shift ) mdia_lock = ! mdia_lock ;
if ( ! record - > tap . count & & ( keyboard_report - > mods & ( MOD_BIT ( KC_LSFT ) | MOD_BIT ( KC_RSFT ) ) ) ) {
register_code ( KC_CAPS ) ;
unregister_code ( KC_CAPS ) ;
}
layer_on ( LOCK ) ;
} else {
if ( record - > tap . count & & ! record - > tap . interrupted & & ! symb_shift & & ! mdia_shift ) {
register_code ( KC_EQL ) ;
unregister_code ( KC_EQL ) ;
}
shift_lock - - ;
if ( ! shift_lock ) layer_off ( LOCK ) ;
}
break ;
// mouse diagonals
case MUL : // mouse up left
if ( record - > event . pressed ) {
mousekey_on ( KC_MS_UP ) ;
mousekey_on ( KC_MS_LEFT ) ;
mousekey_send ( ) ;
} else {
mousekey_off ( KC_MS_UP ) ;
mousekey_off ( KC_MS_LEFT ) ;
mousekey_send ( ) ;
}
break ;
case MUR : // mouse up right
if ( record - > event . pressed ) {
mousekey_on ( KC_MS_UP ) ;
mousekey_on ( KC_MS_RIGHT ) ;
mousekey_send ( ) ;
} else {
mousekey_off ( KC_MS_UP ) ;
mousekey_off ( KC_MS_RIGHT ) ;
mousekey_send ( ) ;
}
break ;
case MDL : // mouse down left
if ( record - > event . pressed ) {
mousekey_on ( KC_MS_DOWN ) ;
mousekey_on ( KC_MS_LEFT ) ;
mousekey_send ( ) ;
} else {
mousekey_off ( KC_MS_DOWN ) ;
mousekey_off ( KC_MS_LEFT ) ;
mousekey_send ( ) ;
}
break ;
case MDR : // mouse down right
if ( record - > event . pressed ) {
mousekey_on ( KC_MS_DOWN ) ;
mousekey_on ( KC_MS_RIGHT ) ;
mousekey_send ( ) ;
} else {
mousekey_off ( KC_MS_DOWN ) ;
mousekey_off ( KC_MS_RIGHT ) ;
mousekey_send ( ) ;
}
break ;
default :
// none
break ;
}
return MACRO_NONE ;
} ;
@ -442,8 +398,6 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user ( void ) {
uint8_t layer = biton32 ( layer_state ) ;
// shift or caps lock turns on red light
if ( ( keyboard_report - > mods & ( MOD_BIT ( KC_LSFT ) | MOD_BIT ( KC_RSFT ) ) ) | | ( host_keyboard_leds ( ) & ( 1 < < USB_LED_CAPS_LOCK ) ) ) {
ergodox_right_led_1_on ( ) ;
@ -451,22 +405,15 @@ void matrix_scan_user(void) {
ergodox_right_led_1_off ( ) ;
}
// do not change lights while locking and unlocking
if ( layer = = LOCK | | layer = = SYMB_UN | | layer = = MDIA_UN | | layer = = UNLOCK ) {
return ;
}
//ergodox_board_led_off();
// symbol turns on green light
if ( layer = = SYMB_SH | | layer = = SYMB_LK ) {
// Symbol layer turns on green light
if ( layer_state & ( 1UL < < SYMB ) ) {
ergodox_right_led_2_on ( ) ;
} else {
ergodox_right_led_2_off ( ) ;
}
// media turns on blue light
if ( layer = = MDIA_SH | | layer = = MDIA_LK ) {
// Media layer turns on blue light
if ( layer_state & ( 1UL < < MDIA ) ) {
ergodox_right_led_3_on ( ) ;
} else {
ergodox_right_led_3_off ( ) ;