diff --git a/keyboards/frosty_flake/keymaps/QFR_JM/keymap.c b/keyboards/frosty_flake/keymaps/QFR_JM/keymap.c index 709ab6c2..81899396 100644 --- a/keyboards/frosty_flake/keymaps/QFR_JM/keymap.c +++ b/keyboards/frosty_flake/keymaps/QFR_JM/keymap.c @@ -8,6 +8,7 @@ enum QFR_layers { _COLEMAK, _QWERTY, + _DVORAK, _LOWER, _MOUSE }; @@ -15,18 +16,26 @@ enum QFR_layers { enum QFR_keycodes { COLEMAK = SAFE_RANGE, QWERTY, + DVORAK, LOWER, MOUSE }; +enum custom_macros { + R_PIPE, + R_POINT +}; + const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, - [1] = ACTION_LAYER_TAP_TOGGLE(_LOWER), //Hold for momentary Mouse, Tap for toggle Mouse - [2] = ACTION_LAYER_TAP_TOGGLE(_MOUSE), //Hold for momentary Lower, Tap for toggle Lower + [1] = ACTION_LAYER_MOMENTARY(_MOUSE) //Hold for momentary MOUSE + }; + #define SPC_LW FUNC(0) -#define LWR FUNC(1) -#define MSE FUNC(2) +#define MSE FUNC(1) +#define PIPE M(R_PIPE) +#define POINT M(R_POINT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -48,33 +57,60 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_BSLS, KC_DEL, KC_END, KC_PGDN, \ KC_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \ KC_LSFT,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \ + KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI , KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + +[_DVORAK] = KEYMAP_TKL(\ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \ + KC_GRV, 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_BSPC, KC_INS, KC_HOME, KC_PGUP, \ + KC_TAB, KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, \ + KC_BSPC,KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT, KC_ENT, \ + KC_LSFT,KC_NUBS,KC_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, \ KC_LCTL,KC_LGUI,KC_LALT, SPC_LW, MSE, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), [_LOWER] = KEYMAP_TKL(\ - RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK,_______, \ + RESET, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, _______, KC_MUTE, KC_VOLD, KC_VOLU, QWERTY, COLEMAK,DVORAK, \ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_BSPC, _______,_______,_______, \ - KC_TAB, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE, _______,_______,_______, \ - KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, _______, _______, \ - _______,XXXXXXX,_______,_______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, \ + KC_TAB, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE, _______,_______,_______, \ + KC_CAPS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \ + _______,XXXXXXX,POINT,PIPE, KC_LCBR, KC_LBRC, KC_GRV, KC_PIPE, KC_RBRC, KC_RCBR, _______, _______, _______, _______, \ _______, _______, _______, _______, KC_RALT, _______, _______, _______, _______,_______,_______ \ ), [_MOUSE] = KEYMAP_TKL(\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,_______,_______, \ KC_GRV, 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_DEL, _______,_______,_______, \ - KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______,_______,_______, \ - KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \ - _______,XXXXXXX,KC_Z,KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, \ + KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS, _______,_______,_______, \ + KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, _______, \ + _______,XXXXXXX,PIPE,POINT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, \ _______, _______, _______, KC_ACL2, MSE, _______, _______, _______, _______,_______,_______ \ ) }; +// Macros to send R pointer & dplyr pipe +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + case R_POINT: + if (record->event.pressed) { // pointer + SEND_STRING("<- "); +// return MACRO(D(LSFT), T(COMM), U(LSFT), T(MINS), END); + } + break; + case R_PIPE: + if (record->event.pressed) { // dplyr pipe + SEND_STRING("%>% "); +// return MACRO(D(LSFT), T(5), T(DOT), T(5), U(LSFT), END); + } + break; + } + return MACRO_NONE; +} + bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QWERTY: if (record->event.pressed) { - //print("mode just switched to qwerty and this is a huge string\n"); set_single_persistent_default_layer(_QWERTY); } return false; @@ -85,6 +121,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return false; break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; } return true; } \ No newline at end of file diff --git a/keyboards/frosty_flake/keymaps/QFR_JM/readme.md b/keyboards/frosty_flake/keymaps/QFR_JM/readme.md index 39633744..f12a0ffb 100644 --- a/keyboards/frosty_flake/keymaps/QFR_JM/readme.md +++ b/keyboards/frosty_flake/keymaps/QFR_JM/readme.md @@ -39,7 +39,7 @@ The base layout is Colemak by default, but this can be changed to QWERTY via the ### LOWER ``` ,----. ,-------------------. ,-------------------. ,-------------------. ,--------------. - |ESC | | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 |F10 |F11 |F12 | |QWTY|CLMK|PsBk| + |ESC | | F1 | F2 | F3 | F4 | |>/|||Stop| << | >> | | F9 |MUTE|Vol-|Vol+| |QWTY|CLMK|PsBk| '----' '-------------------' '-------------------' '-------------------' '--------------' ,-------------------------------------------------------------------------. ,--------------. | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | Bspc | | Ins|Home|PgUp| @@ -48,7 +48,7 @@ The base layout is Colemak by default, but this can be changed to QWERTY via the |-------------------------------------------------------------------------| '--------------' | Bckspc|PgDn|Left|Down|Rght| | | | | | | ' | Enter | |-------------------------------------------------------------------------| ,----. - | LSPO | Z | X | C | V | | | | , | . | / | RSPC | | Up | + | LSPO | <- |%>% | { | [ | ` | | | ] | } | . | / | RSPC | | Up | |-------------------------------------------------------------------------| ,--------------. |Ctrl|LGUI|LAlt| |RAlt|RGUI|Menu|Ctrl| |Left|Down|Rght| '-------------------------------------------------------------------------' '--------------' diff --git a/keyboards/frosty_flake/keymaps/QFR_JM/rules.mk b/keyboards/frosty_flake/keymaps/QFR_JM/rules.mk index f29756f2..0ae0b964 100644 --- a/keyboards/frosty_flake/keymaps/QFR_JM/rules.mk +++ b/keyboards/frosty_flake/keymaps/QFR_JM/rules.mk @@ -3,7 +3,7 @@ # the appropriate keymap folder that will get included automatically # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration diff --git a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c index b99280a9..ccfd01bf 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/keymap.c +++ b/keyboards/handwired/terminus_mini/keymaps/default/keymap.c @@ -29,6 +29,8 @@ extern keymap_config_t keymap_config; enum terminus_mini_layers { _COLEMAK, + _QWERTY, + _DVORAK, _LOWER, _RAISE, _FUNCTION, @@ -38,25 +40,32 @@ enum terminus_mini_layers { enum terminus_mini_keycodes { COLEMAK = SAFE_RANGE, + QWERTY, + DVORAK, LOWER, RAISE, FUNCTION, MOUSE }; +enum custom_macros { + R_PIPE, + R_POINT +}; + // Enable these functions using FUNC(n) macro. const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_ENT), //Hold for momentary Mouse layer, Tap for Enter, - [2] = ACTION_LAYER_TAP_TOGGLE(_LOWER), //Hold for momentary Lower, Tap for toggle Lower - [3] = ACTION_LAYER_TAP_TOGGLE(_MOUSE), //Hold for momentary Mouse, Tap for toggle Mouse - [4] = ACTION_LAYER_MOMENTARY(_FUNCTION), //Hold for momentary Function + [2] = ACTION_LAYER_MOMENTARY(_FUNCTION), //Hold for momentary Function + [3] = ACTION_LAYER_MOMENTARY(_MOUSE) //Hold for momentary MOUSE }; #define SPC_LW FUNC(0) #define ENT_RS FUNC(1) -#define LWR FUNC(2) +#define FNC FUNC(2) #define MSE FUNC(3) -#define FNC FUNC(4) +#define PIPE M(R_PIPE) +#define POINT M(R_POINT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -72,16 +81,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----+------+------+------+------+-------------+------+------+------+------+------| * | LSPO| Z | X | C | V | B | K | M | , | . | / | RSPC | * |-----+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl| LGUI | Lower| LAlt | SpaceLW | RSEnter | Fn | Mouse| Menu | Ctrl | + * | Ctrl| LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu | Ctrl | * `----------------------------------------------------------------------------------' */ [_COLEMAK] = TERMINUS_MINI( KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL , \ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ - KC_LCTL, KC_LGUI, LWR, KC_LALT, SPC_LW, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ + ), + +/* QWERTY - + * ,----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |-----+------+------+------+------+-------------+------+------+------+------+------| + * | BS | A | S | D | F | G | H | J | K | L | ; | " | + * |-----+------+------+------+------+-------------+------+------+------+------+------| + * | LSPO| Z | X | C | V | B | N | M | , | . | / | RSPC | + * |-----+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl| LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu | Ctrl | + * `----------------------------------------------------------------------------------' + */ +[_QWERTY] = TERMINUS_MINI( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL , \ + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ ), +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | BS | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | LSPO | ; | Q | J | K | X | B | M | W | V | Z | RSPC | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | LGUI | Lower| LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Menu |Ctrl | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = TERMINUS_MINI( + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, \ + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ +), + /* Lower * ,-----------------------------------------------------------------------------------. * | Tab | PgUp | Home | Up | End | / | 7 | 8 | 9 | * | | Del | @@ -90,7 +135,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | LSPO | Z | X | C | V | = | 1 | 2 | 3 | Enter| | RSPC | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | LGUI | Lower| LAlt | Space/Lower | 0 | . | Fn | Menu | Ctrl | + * | Ctrl | LGUI | Lower| LAlt | Space/Lower | 0 | . | Fn |ADJUST| Ctrl | * `-----------------------------------------------------------------------------------' Want to add tap-dance function to 0 key: Tap=0, doubleTap=Ent */ @@ -99,7 +144,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSLS, KC_7, KC_8, KC_9, KC_PAST, XXXXXXX, _______, \ _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_MINS, KC_4, KC_5, KC_6, KC_PPLS, XXXXXXX, _______, \ _______, _______, _______, _______, _______, KC_EQL, KC_1, KC_2, KC_3, KC_PENT, XXXXXXX, _______, \ - _______, _______, _______, _______, _______, KC_0, KC_DOT, FNC, _______, _______ \ + _______, _______, _______, _______, _______, KC_0, KC_DOT, FNC, RAISE, _______ \ ), /* Raise @@ -108,22 +153,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------+------+------+------+------+------+------| * | BS | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | " | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | LSPO | | | { | [ | ` | \ | ] | } | . | ? | RSPC | + * | LSPO | <- | %>% | { | [ | ` | \ | ] | } | . | ? | RSPC | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | LGUI | | LAlt | Space/Lower | Raise/Enter | Fn | Mouse| Menu | Ctrl | + * | Ctrl | LGUI | | LAlt | Space/Lower | Enter/Raise | Fn | Mouse| Raise| Ctrl | * `-----------------------------------------------------------------------------------' */ [_RAISE] = TERMINUS_MINI( KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, _______, \ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ - _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC, KC_GRV, KC_BSLS, KC_RBRC, KC_RCBR, KC_DOT, KC_SLSH, _______, \ + _______, POINT, PIPE, KC_LCBR, KC_LBRC, KC_GRV, KC_BSLS, KC_RBRC, KC_RCBR, KC_DOT, KC_SLSH, _______, \ _______, _______, XXXXXXX, _______, SPC_LW, ENT_RS, FNC, MSE, _______, _______ \ ), /*Function * ,-----------------------------------------------------------------------------------. - * | Esc | Mute | Vol- | Vol+ | | RESET| POWER| F1 | F2 | F3 | F4 | Ins | + * | Esc | Mute | Vol- | Vol+ | | | | F1 | F2 | F3 | F4 | Ins | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Caps | Stop | |<< | >/|| | >>| | | | F5 | F6 | F7 | F8 |PrtSc | * |------+------+------+------+------+------+------+------+------+------+------+------| @@ -134,17 +179,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_FUNCTION] = TERMINUS_MINI( - _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, RESET, KC_PWR, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS , \ - KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_SLCK, \ - _______, _______, _______, _______, _______, _______, FNC, _______, _______, KC_PAUS \ + _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS , \ + KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_SLCK, \ + _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_PAUS \ ), /* MOUSE * ,---------------------------------------------------------------------------------------. - * | Esc | WhlU | WhlL | MsUp | WhlR | | | M1 | M2 | M3 | | | + * | Esc | WhlU | WhlL | MsUp | WhlR | | | M1 | M2 | M3 | | | * |------+-------+------+-------+------+------+------+-------+-------+------+------+------| - * | | WhlD | MsL | MsDn | MsR | | |LClick |RClick | | | | + * | | WhlD | MsL | MsDn | MsR | | |LClick |RClick | | | | * |------+-------+------+-------+------+------+------+-------+-------+------+------+------| * | LSPO | | | | | | | | | | | RSCB | * |------+-------+------+-------+------+------+------+-------+-------+------+------+------| @@ -156,9 +201,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_ESC, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, \ KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSPC, \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL2, KC_ACL0, XXXXXXX, MSE, XXXXXXX, KC_RCTL \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL2, KC_ACL0, XXXXXXX, MSE, XXXXXXX, KC_RCTL \ ), +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | | | | |RESET | |TermOn|TermOf| | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_ADJUST] = TERMINUS_MINI( + _______, _______, _______, _______, _______, RESET, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ +) + }; void persistant_default_layer_set(uint16_t default_layer) { @@ -166,17 +230,48 @@ void persistant_default_layer_set(uint16_t default_layer) { default_layer_set(default_layer); } +// Macros to send R pointer & dplyr pipe +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + //R Pointer: <- + case R_POINT: + if (record->event.pressed) { // pointer + SEND_STRING("<- "); +// return MACRO(D(LSFT), T(COMM), U(LSFT), T(MINS), END); + } + break; + //dplyr pipe: %>% + case R_PIPE: + if (record->event.pressed) { // dplyr pipe + SEND_STRING("%>% "); +// return MACRO(D(LSFT), T(5), T(DOT), T(5), U(LSFT), END); + } + break; + } + return MACRO_NONE; +} + +// Cases to switch default layer to QWERTY, COLEMAK or DVORAK and to access ADJUST layer bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; case COLEMAK: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); } return false; - break; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER); diff --git a/keyboards/handwired/terminus_mini/keymaps/default/readme.md b/keyboards/handwired/terminus_mini/keymaps/default/readme.md index 216cf41e..b192a88b 100644 --- a/keyboards/handwired/terminus_mini/keymaps/default/readme.md +++ b/keyboards/handwired/terminus_mini/keymaps/default/readme.md @@ -2,51 +2,80 @@ Copyright 2017 James Morgan #MogranJM's terminus_mini layout - A handwired keyboard inspired by the UniKeyboard Terminus Mini 2. +``` +make handwired/terminus_mini:default:teensy +``` + This keymap is modified from the Planck default layout. Credit for the layout name goes to UniKeyboard & reddit's /u/blahlicus) The terminus_mini is a handwired 4x12 ortholinear keyboard with two 2U thumb bar keys. The microcontroller is a Teensy 2.0 The TERMINUS_MINI layout (../../../terminus\_mini/terminus\_mini.h) is handwired and the 2U keys are handled using KC\_NO to detail that two columns do not have a 4th column. ``` -.----------------------------------------. .-----------------------------------------. -| Tab | Q | W | F | P | G | | J | L | U | Y | ; | Del | -|-----+------+------+------+------+------| |------+------+------+------+------+------| -| BS | A | R | S | T | D | | H | N | E | I | O | ' | -|-----+------+------+------+------+------| |------+------+------+------+------+------| -| LSPO| Z | X | C | V | B | | K | M | , | \. | / | RSPC | -|-----+------+------+------+------+------| |------+------+------+------+------+------| -| Ctrl| LGUI | LAlt | Lower| Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl | -'----------------------------------------' '-----------------------------------------' +.---------------------------------------------------------------------------------. +| Tab | Q | W | F | P | G | J | L | U | Y | ; | Del | +|-----+------+------+------+------+------+------+------+------+------+------+------| +| BS | A | R | S | T | D | H | N | E | I | O | ' | +|-----+------+------+------+------+------+------+------+------+------+------+------| +| LSPO| Z | X | C | V | B | K | M | , | . | / | RSPC | +|-----+------+------+------+------+------+------+------+------+------+------+------| +| Ctrl| LGUI | LAlt | Lower| Space/Lower | Enter/Raise | Fn | Mouse| Menu | Ctrl | +'----------------------------------------------------------------------------------' ``` ### Base Layer - Colemak The base layout is Colemak. Since the CapsLock key is replaced with BackSpace, this layout has the delete key in the traditional backspace location. -* QWERTY and Dvorak layers have been removed from the keymap that was initially developed from the default Planck keymap. +* QWERTY and Dvorak layers are accessible via the Adjust layer using the standard case switch macro as defined in the default Planck keymap. * I've implemented COLEMAK = SAFE\_RANGE when enumerating the custom\_keycodes, but I don't actually know what this does... * Space cadet is implemented in the shift keys (hold for shift, tap for respective parentheses) * I never find myself using the right-modifiers on a standard keyboard, so I've only implemented LGUI and LALT. I have intentions of improving my use of the ctrl key in correct hand alternation, so CTRL is implemented in both outside corners of the home row. #### Layer Shifting -* The 4th key on the bottom row of the left hand PCB is a **TAP_TOGGLE** macro for the *LOWER* layer +* The 4th key on the bottom row of the left hand PCB is used to access the *LOWER* layer via Tap/Toggle * The left 2U key is a **TAP_KEY** macro - Hold for momentary *LOWER* layer, Tap for Space. * The right 2U key is a **TAP_KEY** macro - Hold for momentary *RAISE* layer, Tap for Enter * The 2nd key on the bottom row of the right hand PCB is a **LAYER_MOMENTARY** for the *FUNCTION* layer * The 3rd key on the bottom row of the right hand PCB is a **TAP_TOGGLE** macro for the *MOUSE* layer +### Alternate Base Layers - QWERTY & Dvorak +``` +QWERTY + .----------------------------------------------------------------------------------. + | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | + |-----+------+------+------+------+------+------+------+------+------+------+------| + | BS | A | S | D | F | G | H | J | K | L | ; | " | + |-----+------+------+------+------+------+------+------+------+------+------+------| + | LSPO| Z | X | C | V | B | N | M | , | . | / | RSPC | + |-----+------+------+------+------+------+------+------+------+------+------+------| + | Ctrl| LGUI | Lower| LAlt | SpaceLW | RSEnter | Fn | Mouse| Menu | Ctrl | + `----------------------------------------------------------------------------------' + +DVORAK + .----------------------------------------------------------------------------------. + | Tab | " | , | . | P | Y | F | G | C | R | L | \ | + |------+------+------+------+------+-----+------+------+------+------+------+------| + | BS | A | O | E | U | I | D | H | T | N | S | / | + |------+------+------+------+------+-----+------+------+------+------+------+------| + | LSPO | ; | Q | J | K | X | B | M | W | V | Z | RSPC | + |------+------+------+------+------+-----+------+------+------+------+------+------| + | Ctrl | LGUI | Lower| LAlt | SpaceLW | RSEnter | Fn | Mouse| Menu | Ctrl | + `----------------------------------------------------------------------------------' +``` + ### LOWER - Numpad & Navigation keys ``` -,-----------------------------------------. .-----------------------------------------. -| Tab | PgUp | Home | Up | End | | | 7 | 8 | 9 | \+ | | Del | -|------+------+------+------+------+------| |------+------+------+------+------+------| -| BS | PgDn | Left | Down |Right | | | 4 | 5 | 6 | Enter| | ' | -|------+------+------+------+------+------| |------+------+------+------+------+------| -| LSPO | Z | X | C | V | | | 1 | 2 | 3 | Enter| | RSPC | -|------+------+------+------+-------------| |-------------+------+------+------+------| -| Ctrl | LGUI | Alt | LOWER| Space/Lower | | 0 | \. | Fn | Menu | Ctrl | -'-----------------------------------------' '-----------------------------------------' +,-----------------------------------------------------------------------------------. +| Tab | PgUp | Home | Up | End | | 7 | 8 | 9 | + | | Del | +|------+------+------+------+------+------+------+------+------+------+------+------| +| BS | PgDn | Left | Down |Right | | 4 | 5 | 6 | Enter| | ' | +|------+------+------+------+------+------+------+------+------+------+------+------| +| LSPO | Z | X | C | V | | 1 | 2 | 3 | Enter| | RSPC | +|------+------+------+------+-------------+-------------+------+------+------+------| +| Ctrl | LGUI | Alt | LOWER| Space/Lower | 0 | . | Fn | Menu | Ctrl | +'-----------------------------------------------------------------------------------' ``` The *LOWER* layer contains a navigation cluster on the left hand and a numpad on the right. This layer is momentary when the left thumb-bar or LOWER key is held and toggled on/off when the LOWER key is tapped. @@ -61,35 +90,35 @@ The *LOWER* layer contains a navigation cluster on the left hand and a numpad on ### RAISE - Symbol Layer ``` -,-----------------------------------. .-----------------------------------. -| Tab | | | | | | | | | | | | \ | -|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| -| BS | ! | @ | # | $ | % | | ^ | & | * | - | + | ' | -|-----+-----+-----+-----+-----------| |-----+-----+-----+-----+-----+-----| -| LSPO| | | { | [ | ` | | | | ] | } | . | ? |RSPC | -|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| -| Ctrl|LGUI | |Lower|Space/Lower| |Enter/Raise| Fn |Mouse| Menu| Ctrl| -'-----------------------------------' '-----------------------------------' +,-----------------------------------------------------------------------. +| Tab | | | | | | | | | | | \ | +|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| +| BS | ! | @ | # | $ | % | ^ | & | * | - | + | ' | +|-----+-----+-----+-----+-----------+-----+-----+-----+-----+-----+-----| +| LSPO| <- | %>% | { | [ | ` | | | ] | } | . | ? |RSPC | +|-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| +| Ctrl|LGUI | |Lower|Space/Lower|Enter/Raise| Fn |Mouse| Menu| Ctrl| +'-----------------------------------------------------------------------' ``` The *RAISE* layer contains the symbols. This layer is momentary when the right thumb bar is held. * Standard symbols can be found on the home row, in the traditional number row order as they occur on a standard keyboard. * Shifted symbols can be found on the second-from bottom row, abovee the bars - these include brackets, braces, grave and pipe keys. * At this stage, you need to shift to get to the Tilde key. I'd like to remove the shift requirement as I've done with the Pipe, but we'll see. -* The Terminus_Mini implements the symbols on the top row, with numbers implemented on the home row. Implementing a third set of number keys (Base, *LOWER*, * RAISE*) in this keymap is probably overkill, but the current *RAISE* layout replicates the standard number row, so I don't see reason to change it. + * Special operators for R (Pointer: <- and dplyr pipe: %>%) can be found next to the left shift key * The bottom row of this layer is a replication of that of the Base layer, except that the **TAP_TOGGLE** *LOWER* key is blocked with XXXXXXX. ### FUNCTION - Function & Media keys ``` -,-----------------------------------------. .-----------------------------------------. -| Esc | Mute | Vol- | Vol+ | | RESET| | POWER| | | | | Ins | -|------+------+------+------+------+------| |------+------+------+------+------+------| -| Caps | Stop | |<< | >/|| | >>| | | | | | | | |PrtSc | -|------+------+------+------+------+------| |------+------+------+------+------+------| -| LSOB | | | | | | | | | | | |ScrLk | -|------+------+------+------+------+------| |------+------+------+------+------+------| -| Ctrl | LGUI | Alt | | Space/Lower | | Enter/Raise | Fn | Mouse| |PsBrk | -'-----------------------------------------' '-----------------------------------------' +,-----------------------------------------------------------------------------------. +| Esc | Mute | Vol- | Vol+ | | | | | | | | Ins | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Caps | Stop | |<< | >/|| | >>| | | | | | | |PrtSc | +|------+------+------+------+------+------+------+------+------+------+------+------| +| LSOB | | | | | | | | | | |ScrLk | +|------+------+------+------+------+------+------+------+------+------+------+------| +| Ctrl | LGUI | Alt | | Space/Lower | Enter/Raise | Fn | Mouse| |PsBrk | +'-----------------------------------------------------------------------------------' ``` The *FUNCTION* layer contains media keys as well as the F-row. This layer is momentary and requires Fn to be held. @@ -97,19 +126,18 @@ The *FUNCTION* layer contains media keys as well as the F-row. This layer is mom * Mute, and Vol +/- are next to each other in ascending (L->R) volume order, Stop is below Mute. * Insert, Print Screen, Scroll Lock & Pause Break are all implemented on the far right column. I don't really use these keys so their position is not optimised. * Caps lock is implemented on this layer, in the traditional position, in place of BackSpace on the Base layer. -* The RESET key will reset the Teensy for flashing and the Power key will initiate a shutdown of the PC. I've placed these in the far-reach index positions so that they are least likely to be pressed on accident. The power key is particularly dangerous, so I've placed it conciously on the right hand so that it becomes very awkward to activate with one hand (Fn needs to be held with the middle finger at the same time) ### MOUSE - Mouse keys: The functionality of this layer is not as optimal as using a true mouse, generally slower but will work in a pinch. ``` -,----------------------------------------. .----------------------------------------. -| Tab | WhlU | WhlL | MsUp | WhlR | | | | M3 | M4 | M5 | | | -|------+------+------+------+------+-----| |-----+------+------+------+------+------| -| | WhlD | MsL | MsDn | MsR | | | |LClick|RClick| | | | -|------+------+------+------+------+-----| |-----+------+------+------+------+------| -| LSPO | | | | | | | | | | | | RSCB | -|------+------+------+------+------+-----| |-----+------+------+------+------+------| -| Ctrl | | | |Sensitivity | | Sensitivity| |MOUSE | | Ctrl | -'----------------------------------------' '----------------------------------------' +,---------------------------------------------------------------------------------. +| Tab | WhlU | WhlL | MsUp | WhlR | | | M3 | M4 | M5 | | | +|------+------+------+------+------+-----+-----+------+------+------+------+------| +| | WhlD | MsL | MsDn | MsR | | |LClick|RClick| | | | +|------+------+------+------+------+-----+-----+------+------+------+------+------| +| LSPO | | | | | | | | | | | RSCB | +|------+------+------+------+------+-----+-----+------+------+------+------+------| +| Ctrl | | | |Sensitivity | Sensitivity| |MOUSE | | Ctrl | +'---------------------------------------------------------------------------------' ``` The *MOUSE* layer contains keys replicating functions found on the mouse. @@ -117,3 +145,16 @@ The *MOUSE* layer contains keys replicating functions found on the mouse. keys. *) The primary click (right & left) buttons are on the right home row (index & middle fingers) * Secondary click buttons are above the standard keys (M3/Wheel click, M4, M5) but I do not use this function. + +### ADJUST - Keyboard Settings: Primarily used to change the base layer at this stage +``` +,----------------------------------------------------------------------------------. +| | | | | |RESET | |TermOn|TermOf| | | Del | +|------+------+------+------+------+------+-----+------+------+------+------+------| +| | | | | | | |Qwerty|Colemk|Dvorak| | | +|------+------+------+------+------+------+-----+------+------+------+------+------| +| | | | | | | | | | | | | +|------+------+------+------+------+------+-----+------+------+------+------+------| +| | |/LOWER| | | | | |/RAISE| | +`----------------------------------------------------------------------------------' +``` diff --git a/keyboards/nyquist/keymaps/DivergeJM/README.md b/keyboards/nyquist/keymaps/DivergeJM/README.md index 5b9732db..198e3ef8 100644 --- a/keyboards/nyquist/keymaps/DivergeJM/README.md +++ b/keyboards/nyquist/keymaps/DivergeJM/README.md @@ -2,6 +2,10 @@ Copyright 2017 James Morgan #MogranJM's Nyquist layout +``` +make nyquist/rev1:DivergeJM +``` + This keymap is based on my Terminus_Mini (../../../terminus\_mini/default) layout (credit for the names of these layouts goes to UniKeyboard & reddit's /u/blahlicus) The terminus_mini is a handwired 4x12 ortholinear keyboard with two 2U thumb bar keys. This implementation of the layout converts it to a split 5x12 (two halves, each 5x6) keyboard with a 2U thumb key on the inner bottom corner of each half. @@ -23,22 +27,57 @@ The TERMINUS\_MINI layout (../../../terminus_mini/terminus_mini.h) is handwired ``` ### Base Layer - Colemak -The base layout is Colemak. Since the CapsLock key is replaced with BackSpace, this layout has the delete key in the traditional backspace location. +The base layout is Colemak by default. Since the CapsLock key is replaced with BackSpace, this layout has the delete key in the traditional backspace location. -* QWERTY and Dvorak layers have been removed from the keymap that was initially developed from the default Planck keymap. +* QWERTY and Dvorak layers are accessible via the Adjust layer using the standard case switch macro as defined in the default Planck keymap. * I've implemented COLEMAK = SAFE\_RANGE when enumerating the custom\_keycodes, but I don't actually know what this does... - * Space cadet is implemented in the shift keys (hold for shift, tap for respective parentheses) * I never find myself using the right-modifiers on a standard keyboard, so I've only implemented LGUI and LALT. I have intentions of improving my use of the ctrl key in correct hand alternation, so CTRL is implemented in both outside corners of the home row. +### Alternate Base Layers - QWERTY & Dvorak +``` +QWERTY + .----------------------------------------. .-----------------------------------------. + | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |-----+------+------+------+------+------| |------+------+------+------+------+------| + | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + |-----+------+------+------+------+------| |------+------+------+------+------+------| + | BS | A | S | D | F | G | | H | J | K | L | ; | " | + |-----+------+------+------+------+------| |------+------+------+------+------+------| + | LSPO| Z | X | C | V | B | | N | M | , | . | / | RSPC | + |-----+------+------+------+------+------| |------+------+------+------+------+------| + | Ctrl| LGUI | Lower| LAlt | SpaceLW | | RSEnter | Fn | Mouse| Menu | Ctrl | + `----------------------------------------' '-----------------------------------------' + +DVORAK + .----------------------------------------. .-----------------------------------------. + | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + |------+------+------+------+------+-----| |------+------+------+------+------+------| + | Tab | " | , | . | P | Y | | F | G | C | R | L | \ | + |------+------+------+------+------+-----| |------+------+------+------+------+------| + | BS | A | O | E | U | I | | D | H | T | N | S | / | + |------+------+------+------+------+-----| |------+------+------+------+------+------| + | LSPO | ; | Q | J | K | X | | B | M | W | V | Z | RSPC | + |------+------+------+------+------+-----| |------+------+------+------+------+------| + | Ctrl | LGUI | Lower| LAlt | SpaceLW | | RSEnter | Fn | Mouse| Menu | Ctrl | + `----------------------------------------' '-----------------------------------------' +``` #### Layer Shifting -* The 4th key on the bottom row of the left hand PCB is a **TAP_TOGGLE** macro for the *LOWER* layer +* The 4th key on the bottom row of the left hand PCB is used to access the *LOWER* layer via Tap/Toggle * The left 2U key is a **TAP_KEY** macro - Hold for momentary *LOWER* layer, Tap for Space. * The right 2U key is a **TAP_KEY** macro - Hold for momentary *RAISE* layer, Tap for Enter * The 2nd key on the bottom row of the right hand PCB is a **LAYER_MOMENTARY** for the *FUNCTION* layer * The 3rd key on the bottom row of the right hand PCB is a **TAP_TOGGLE** macro for the *MOUSE* layer +The base layout is Colemak. Since the CapsLock key is replaced with BackSpace, this layout has the delete key in the traditional backspace location. + +* QWERTY and Dvorak layers have been removed from the keymap that was initially developed from the default Planck keymap. +* I've implemented COLEMAK = SAFE\_RANGE when enumerating the custom\_keycodes, but I don't actually know what this does... + +* Space cadet is implemented in the shift keys (hold for shift, tap for respective parentheses) +* I never find myself using the right-modifiers on a standard keyboard, so I've only implemented LGUI and LALT. I have intentions of improving my use of the ctrl key in correct hand alternation, so CTRL is implemented in both outside corners of the home row. + ### LOWER - Numpad & Navigation keys ``` ,-----------------------------------------. .-----------------------------------------. @@ -50,14 +89,17 @@ The base layout is Colemak. Since the CapsLock key is replaced with BackSpace, t |------+------+------+------+------+------| |------+------+------+------+------+------| | LSPO | Z | X | C | V | | | 1 | 2 | 3 | Enter| | RSPC | |------+------+------+------+-------------| |-------------+------+------+------+------| - | Ctrl | LGUI | Alt | LOWER| Space/Lower | | 0 | \. | Fn | Menu | Ctrl | + | Ctrl | LGUI | Alt | LOWER| Space/Lower | | 0 | \. | Fn |ADJUST| Ctrl | `-----------------------------------------' `-----------------------------------------' ``` The *LOWER* layer contains a navigation cluster on the left hand and a numpad on the right. This layer is momentary when the left thumb-bar or LOWER key is held and toggled on/off when the LOWER key is tapped. The Navigation cluster is offset to the right compared to the traditional **WASD** nav cluster. With this implementation, you don't need to move your hand from the home position when navigating. Page Up & Down keys are found on the far left of the cluster. -All unused (blank on the above keymap) keys are locked out using the XXXXXXX filler (KC_NO), all modifiers (edge |_| keys \[except 0, \. & Fn\] on the above keymap) and the ZXCV cluster are transparent (_______) to the Base layer. +All unused (blank on the above keymap) keys are locked out using the XXXXXXX filler (KC_NO), all modifiers (edge |_| keys \[except 0, \. & Fn\] on the +above keymap) and the ZXCV cluster are transparent (_______) to the Base layer. + +The ADJUST layer can be accessed via the second from right key on the bottom row. This layer contains a keymap that is used to change the base layer. [] TO DO!! - It would be nice to have a **TAP_DANCE_DOUBLE** implementation whereby a double tap of the right 2U key sends KC_PENT * Couldn't get this to work in Rev1, produced an error in the Make process. @@ -68,21 +110,21 @@ All unused (blank on the above keymap) keys are locked out using the XXXXXXX fil ,-----------------------------------. .-----------------------------------. | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - | Tab | | | | | | | | | | | | \ | + | Tab | ! | @ | # | $ | % | | ^ | & | * | - | + | \ | |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| - | BS | ! | @ | # | $ | % | | ^ | & | * | - | + | ' | + | BS | | | | | | | | | | | | ' | |-----+-----+-----+-----+-----------| |-----+-----+-----+-----+-----+-----| - | LSPO| | | { | [ | ` | | | | ] | } | . | ? |RSPC | + | LSPO| <- | %>% | { | [ | ` | | | | ] | } | . | ? |RSPC | |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----| | Ctrl|LGUI | Alt | |Space/Lower| |Enter/Raise| Fn |Mouse| Menu| Ctrl| '-----------------------------------' '-----------------------------------' ``` The *RAISE* layer contains the symbols. This layer is momentary when the right thumb bar is held. -* Standard symbols can be found on the home row, in the traditional number row order as they occur on a standard keyboard. -* Shifted symbols can be found on the second-from bottom row, abovee the bars - these include brackets, braces, grave and pipe keys. - * At this stage, you need to shift to get to the Tilde key. I'd like to remove the shift requirement as I've done with the Pipe, but we'll see. -* The Terminus_Mini implements the symbols on the top row, with numbers implemented on the home row. Implementing a third set of number keys (Base, *LOWER*, *RAISE*) in this keymap is probably overkill, but the current *RAISE* layout replicates the standard number row, so I don't see reason to change it. +* Standard symbols can be found on the row above home, in the traditional number row order as they occur on a standard keyboard. +* Shifted symbols can be found on the second-from bottom row, above the bars - these include brackets, braces, grave and pipe keys. + * At this stage, you need to shift to get to the Tilde key. I'd like to remove the shift requirement as I've done with the "|" Pipe, but we'll see. + * Special operators for R (Pointer: <- and dplyr pipe: %>%) can be found next to the left shift key * The bottom row of this layer is a replication of that of the Base layer, except that the **TAP_TOGGLE** *LOWER* key is blocked with **XXXXXXX**. ### FUNCTION - Function & Media keys @@ -90,7 +132,7 @@ The *RAISE* layer contains the symbols. This layer is momentary when the right t ,-----------------------------------------. .-----------------------------------------. | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |------+------+------+------+------+------| |------+------+------+------+------+------| -| Esc | Mute | Vol- | Vol+ | | RESET| | POWER| | | | | Ins | +| Esc | Mute | Vol- | Vol+ | | | | | | | | | Ins | |------+------+------+------+------+------| |------+------+------+------+------+------| | Caps | Stop | |<< | >/|| | >>| | | | | | | | |PrtSc | |------+------+------+------+------+------| |------+------+------+------+------+------| @@ -105,7 +147,6 @@ The *FUNCTION* layer contains media keys as well as the F-row. This layer is mom * Mute, and Vol +/- are next to each other in ascending (L->R) volume order, Stop is below Mute. * Insert, Print Screen, Scroll Lock & Pause Break are all implemented on the far right column. I don't really use these keys so their position is not optimised. * Caps lock is implemented on this layer, in the traditional position, in place of BackSpace on the Base layer. -* The RESET key will reset the board for flashing and the Power key will initiate a shutdown of the PC. I've placed these in the far-reach index positions so that they are least likely to be pressed on accident. The power key is particularly dangerous, so I've placed it conciously on the right hand so that it becomes very awkward to activate with one hand (Fn needs to be held with the middle finger at the same time) ### MOUSE - Mouse keys: The functionality of this layer is not as optimal as using a true mouse, generally slower but will work in a pinch. ``` @@ -125,4 +166,19 @@ The *MOUSE* layer contains keys replicating functions found on the mouse. * The navigation cluster (Up, Down, Left, Right) is a replication of the Navigation cluster on the *LOWER* layer. The scroll keys are analagous to the Page Up & down keys. * The primary click (right & left) buttons are on the right home row (index & middle fingers) -* Secondary click buttons are above the standard keys (M3/Wheel click, M4, M5) but I do not use this function. \ No newline at end of file +* Secondary click buttons are above the standard keys (M3/Wheel click, M4, M5) but I do not use this function. + +### ADJUST - Keyboard Settings: Primarily used to change the base layer at this stage +``` +,-----------------------------------------. ,----------------------------------------. +| | | | | |RESET | | | | | | | | +|------+------+------+------+------+------| |-----+------+------+------+------+------| +| | | | | | | | |TermOn|TermOf| | | Del | +|------+------+------+------+------+------| |-----+------+------+------+------+------| +| | | | | | | | |Qwerty|Colemk|Dvorak| | | +|------+------+------+------+------+------| |-----+------+------+------+------+------| +| | | | | | | | | | | | | | +|------+------+------+------+------+------| |-----+------+------+------+------+------| +| | |/LOWER| | | | | | |/RAISE| | +`-----------------------------------------' `----------------------------------------' +``` diff --git a/keyboards/nyquist/keymaps/DivergeJM/config.h b/keyboards/nyquist/keymaps/DivergeJM/config.h index b21fbee9..77683411 100644 --- a/keyboards/nyquist/keymaps/DivergeJM/config.h +++ b/keyboards/nyquist/keymaps/DivergeJM/config.h @@ -20,9 +20,9 @@ along with this program. If not, see . #define USE_SERIAL -#define MASTER_LEFT +// #define MASTER_LEFT // #define MASTER_RIGHT -// #define EE_HANDS +#define EE_HANDS #ifdef SUBPROJECT_rev1 #include "../../rev1/config.h" diff --git a/keyboards/nyquist/keymaps/DivergeJM/keymap.c b/keyboards/nyquist/keymaps/DivergeJM/keymap.c index e77f1b99..a1e93bf7 100644 --- a/keyboards/nyquist/keymaps/DivergeJM/keymap.c +++ b/keyboards/nyquist/keymaps/DivergeJM/keymap.c @@ -10,20 +10,29 @@ extern keymap_config_t keymap_config; // entirely and just use numbers. enum custom_layers { _COLEMAK, + _QWERTY, + _DVORAK, _LOWER, _RAISE, _FUNCTION, _MOUSE, - _ADJUST, + _ADJUST }; enum custom_keycodes { COLEMAK = SAFE_RANGE, + QWERTY, + DVORAK, LOWER, RAISE, FUNCTION, MOUSE, - ADJUST, + ADJUST +}; + +enum custom_macros { + R_PIPE, + R_POINT }; /* // Tap Dance Declarations @@ -40,17 +49,15 @@ enum { const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5 [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC), //Hold for momentary Lower layer, Tap for Space, [1] = ACTION_LAYER_TAP_KEY(_RAISE, KC_ENT), //Hold for momentary Mouse layer, Tap for Enter, - [2] = ACTION_LAYER_TAP_TOGGLE(_LOWER), //Hold for momentary Lower, Tap for toggle Lower - [3] = ACTION_LAYER_TAP_TOGGLE(_MOUSE), //Hold for momentary Mouse, Tap for toggle Mouse - [4] = ACTION_LAYER_MOMENTARY(_FUNCTION) //Hold for momentary Function + [2] = ACTION_LAYER_MOMENTARY(_FUNCTION), //Hold for momentary Function + [3] = ACTION_LAYER_MOMENTARY(_MOUSE) //Hold for momentary MOUSE }; - - #define SPC_LW FUNC(0) #define ENT_RS FUNC(1) -#define LWR FUNC(2) +#define FNC FUNC(2) #define MSE FUNC(3) -#define FNC FUNC(4) +#define PIPE M(R_PIPE) +#define POINT M(R_POINT) // Fillers to make layering more clear #define _______ KC_TRNS @@ -64,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |-----+------+------+------+------+------| |------+------+------+------+------+------| * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ | * |-----+------+------+------+------+------| |------+------+------+------+------+------| - * | BS | A | R | S | T | D | | H | N | E | I | O | ' | + * | BS | A | R | S | T | D | | H | N | E | I | O | " | * |-----+------+------+------+------+------| |------+------+------+------+------+------| * | LSPO| Z | X | C | V | B | | K | M | , | . | / | RSPC | * |-----+------+------+------+------+------| |------+------+------+------+------+------| @@ -76,9 +83,52 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \ KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ - KC_LCTL, KC_LGUI, LWR, KC_LALT, SPC_LW, SPC_LW, ENT_RS, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, SPC_LW, ENT_RS, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ ), +/* QWERTY - + * .----------------------------------------. .-----------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | BS | A | S | D | F | G | | H | J | K | L | ; | " | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | LSPO| Z | X | C | V | B | | N | M | , | . | / | RSPC | + * |-----+------+------+------+------+------| |------+------+------+------+------+------| + * | Ctrl| LGUI | Lower| LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl | + * `----------------------------------------' '-----------------------------------------' + */ + +[_QWERTY] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \ + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \ + KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, SPC_LW, ENT_RS, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ + ), + +/* Dvorak + * .----------------------------------------. .-----------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del | + * |------+------+------+------+------+-----| |------+------+------+------+------+------| + * | Tab | " | , | . | P | Y | | F | G | C | R | L | \ | + * |------+------+------+------+------+-----| |------+------+------+------+------+------| + * | BS | A | O | E | U | I | | D | H | T | N | S | / | + * |------+------+------+------+------+-----| |------+------+------+------+------+------| + * | LSPO | ; | Q | J | K | X | | B | M | W | V | Z | RSPC | + * |------+------+------+------+------+-----| |------+------+------+------+------+------| + * | Ctrl | LGUI | Lower| LAlt | Space/Lower| | Enter/Raise | Fn | Mouse| Menu | Ctrl | + * `----------------------------------------' '-----------------------------------------' + */ + +[_DVORAK] = KEYMAP( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \ + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \ + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \ + KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC, \ + KC_LCTL, KC_LGUI, LOWER, KC_LALT, SPC_LW, SPC_LW, ENT_RS, ENT_RS, FNC, MSE, KC_APP, KC_RCTL \ +), /* Lower * ,-----------------------------------------. .-----------------------------------------. @@ -90,7 +140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | LSPO | Z | X | C | V | | | 1 | 2 | 3 | Enter| | RSPC | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | LGUI | Lower| LAlt | Space/Lower | | 0 | . | Fn | Menu | Ctrl | + * | Ctrl | LGUI | Lower| LAlt | Space/Lower | | 0 | . | Fn |ADJUST| Ctrl | * `-----------------------------------------' `-----------------------------------------' */ [_LOWER] = KEYMAP( \ @@ -98,7 +148,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_7, KC_8, KC_9, KC_PPLS, XXXXXXX, _______,\ _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_4, KC_5, KC_6, KC_PENT, XXXXXXX, _______,\ _______, _______, _______, _______, _______, XXXXXXX, KC_1, KC_2, KC_3, KC_PENT, XXXXXXX, _______,\ - _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, FNC, _______, _______ \ + _______, _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, FNC, RAISE, _______ \ ), /* Raise @@ -109,7 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | BS | | | | | | | | | | | | " | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | LSBO | | | { | [ | ` | | | | ] | } | . | ? | RSBC | + * | LSBO | <- | %>% | { | [ | ` | | | | ] | } | . | ? | RSBC | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Ctrl | LGUI | | LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| Menu | Ctrl | * `-----------------------------------------' `-----------------------------------------' @@ -118,7 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_MINS, KC_EQL, _______, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, \ - _______, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC, KC_GRV, KC_PIPE, KC_RBRC, KC_RCBR, KC_DOT, KC_SLSH, _______, \ + _______, POINT, PIPE, KC_LCBR, KC_LBRC, KC_GRV, KC_PIPE, KC_RBRC, KC_RCBR, KC_DOT, KC_SLSH, _______, \ _______, _______, XXXXXXX, _______, _______, _______, ENT_RS, ENT_RS, FNC, MSE, _______, _______ \ ), @@ -127,19 +177,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,-----------------------------------------. .-----------------------------------------. * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Esc | Mute | Vol- | Vol+ | | RESET| | POWER| | | | | Ins | + * | Esc | Mute | Vol- | Vol+ | | | | | | | | | Ins | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | Caps | Stop | |<< | >/|| | >>| | | | | | | | |PrtSc | * |------+------+------+------+------+------| |------+------+------+------+------+------| * | LSOB | | | | | | | | | | | |ScrLk | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | Ctrl | LGUI | Alt | | Space/Lower | | Enter/Raise | Fn | Mouse| |PsBrk | + * | Ctrl | LGUI | | LAlt | Space/Lower | | Enter/Raise | Fn | Mouse| |PsBrk | * `-----------------------------------------' `-----------------------------------------' */ [_FUNCTION] = KEYMAP( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \ - _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, RESET, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS , \ + _______, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS , \ KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, \ _______, _______, _______, _______, _______, _______, _______, _______, FNC, _______, _______, KC_PAUS \ @@ -160,36 +210,87 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_MOUSE] = KEYMAP( - KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, \ + KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, \ KC_TAB, KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4, KC_BTN5, XXXXXXX, XXXXXXX, \ KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSPC, \ - _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL1, KC_ACL1, KC_ACL0, KC_ACL0, XXXXXXX, MSE, XXXXXXX, KC_RCTL \ + _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_ACL1, KC_ACL1, KC_ACL0, KC_ACL0, XXXXXXX, MSE, XXXXXXX, KC_RCTL \ ), +/* Adjust (Lower + Raise) + * ,-----------------------------------------. ,----------------------------------------. + * | | | | | |RESET | | | | | | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | |TermOn|TermOf| | | Del | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | |Qwerty|Colemk|Dvorak| | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+------| |-----+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------' `----------------------------------------' + */ + +[_ADJUST] = KEYMAP( + _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL, \ + _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ + ) }; -#ifdef AUDIO_ENABLE -float tone_colemak[][2] = SONG(COLEMAK_SOUND); -#endif void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); default_layer_set(default_layer); } +// Macros to send R pointer & dplyr pipe +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch(id) { + //R Pointer: <- + case R_POINT: + if (record->event.pressed) { // Pointer <- + SEND_STRING("<- "); +// return MACRO(D(LSFT), T(COMM), U(LSFT), T(MINS), END); + + } + break; + //dplyr pipe: %>% + case R_PIPE: + if (record->event.pressed) { // dplyr pipe %>% + SEND_STRING("%>% "); +// return MACRO(D(LSFT), T(5), T(DOT), T(5), U(LSFT), END); + } + break; + } + return MACRO_NONE; +} + +/* Cases to switch default layer to QWERTY, COLEMAK or DVORAK + and to access ADJUST layer to access the switch keys */ bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { - case COLEMAK: + case QWERTY: if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistent_default_layer_set(1UL<<_COLEMAK); + set_single_persistent_default_layer(_QWERTY); } return false; break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; case LOWER: if (record->event.pressed) { layer_on(_LOWER);