diff options
Diffstat (limited to 'keyboards/mechwild/mercutio/keymaps/jonavin')
| -rwxr-xr-x | keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c | 47 | ||||
| -rw-r--r-- | keyboards/mechwild/mercutio/keymaps/jonavin/readme.md | 21 |
2 files changed, 51 insertions, 17 deletions
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c index 6fadea489..ed321e79b 100755 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c | |||
| @@ -28,6 +28,7 @@ enum custom_layers { | |||
| 28 | 28 | ||
| 29 | enum custom_keycodes { | 29 | enum custom_keycodes { |
| 30 | ENCFUNC = SAFE_RANGE, // encoder function keys | 30 | ENCFUNC = SAFE_RANGE, // encoder function keys |
| 31 | KC_WINLCK, //Toggles Win key on and off | ||
| 31 | }; | 32 | }; |
| 32 | 33 | ||
| 33 | // Tap Dance Definitions | 34 | // Tap Dance Definitions |
| @@ -40,6 +41,8 @@ qk_tap_dance_action_t tap_dance_actions[] = { | |||
| 40 | [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), | 41 | [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS), |
| 41 | }; | 42 | }; |
| 42 | 43 | ||
| 44 | bool _isWinKeyDisabled = false; | ||
| 45 | |||
| 43 | #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) | 46 | #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK) |
| 44 | #define KC_CAD LALT(LCTL(KC_DEL)) | 47 | #define KC_CAD LALT(LCTL(KC_DEL)) |
| 45 | #define KC_AF4 LALT(KC_F4) | 48 | #define KC_AF4 LALT(KC_F4) |
| @@ -49,8 +52,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 49 | [_BASE] = LAYOUT_all( | 52 | [_BASE] = LAYOUT_all( |
| 50 | KC_MUTE, | 53 | KC_MUTE, |
| 51 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | 54 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, |
| 52 | TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | 55 | TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, |
| 53 | KC_LSFTCAPS, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFTENT, | 56 | KC_LSFTCAPS, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SFTENT, |
| 54 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_LOWER,KC_SPC), KC_SPC, KC_RALT, MO(_FN1), KC_RCTL ), | 57 | KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_LOWER,KC_SPC), KC_SPC, KC_RALT, MO(_FN1), KC_RCTL ), |
| 55 | 58 | ||
| 56 | [_FN1] = LAYOUT_all( | 59 | [_FN1] = LAYOUT_all( |
| @@ -58,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 58 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, | 61 | KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, |
| 59 | KC_CAPS, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, | 62 | KC_CAPS, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, |
| 60 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_SFTENT, | 63 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NLCK, KC_NO, KC_NO, KC_NO, KC_SFTENT, |
| 61 | KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | 64 | KC_TRNS, KC_WINLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), |
| 62 | 65 | ||
| 63 | [_LOWER] = LAYOUT_all( | 66 | [_LOWER] = LAYOUT_all( |
| 64 | KC_TRNS, | 67 | KC_TRNS, |
| @@ -69,13 +72,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 69 | 72 | ||
| 70 | [_RAISE] = LAYOUT_all( | 73 | [_RAISE] = LAYOUT_all( |
| 71 | KC_TRNS, | 74 | KC_TRNS, |
| 72 | KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, | 75 | KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS, |
| 73 | TT(_RAISE), KC_LEFT, KC_DOWN, KC_RIGHT,KC_PGDN, KC_PSLS, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_PEQL, | 76 | TT(_RAISE), KC_LEFT, KC_DOWN, KC_RIGHT,KC_PGDN, KC_PSLS, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_PEQL, |
| 74 | KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, | 77 | KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, |
| 75 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) | 78 | KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) |
| 76 | }; | 79 | }; |
| 77 | 80 | ||
| 78 | /* These are needed whether encoder function is enabled or not when ENCFUNC keycode is pressed. | 81 | /* These are needed whether encoder function is enabled or not when ENCFUNC keycode is pressed.? |
| 79 | Defaults never changes if no encoder present to change it | 82 | Defaults never changes if no encoder present to change it |
| 80 | */ | 83 | */ |
| 81 | typedef struct { | 84 | typedef struct { |
| @@ -93,7 +96,8 @@ static const keycodedescType PROGMEM keyselection[] = { | |||
| 93 | {"Break", KC_PAUS}, | 96 | {"Break", KC_PAUS}, |
| 94 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del | 97 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del |
| 95 | {"AltF4", KC_AF4}, | 98 | {"AltF4", KC_AF4}, |
| 96 | {"PLAY", KC_MEDIA_PLAY_PAUSE} | 99 | {"PLAY", KC_MEDIA_PLAY_PAUSE}, |
| 100 | {"RESET", RESET}, // firmware flash mode | ||
| 97 | }; | 101 | }; |
| 98 | 102 | ||
| 99 | #define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) | 103 | #define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) |
| @@ -119,11 +123,21 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 119 | switch (keycode) { | 123 | switch (keycode) { |
| 120 | case ENCFUNC: | 124 | case ENCFUNC: |
| 121 | if (record->event.pressed) { | 125 | if (record->event.pressed) { |
| 122 | tap_code16(selectedkey_rec.keycode); | 126 | selectedkey_rec.keycode == RESET ? reset_keyboard() : tap_code16(selectedkey_rec.keycode); // handle RESET code |
| 123 | } else { | 127 | } else { |
| 124 | // when keycode is released | 128 | // when keycode is released |
| 125 | } | 129 | } |
| 126 | break; | 130 | break; |
| 131 | case KC_WINLCK: | ||
| 132 | if (record->event.pressed) { | ||
| 133 | _isWinKeyDisabled = !_isWinKeyDisabled; //toggle status | ||
| 134 | if(_isWinKeyDisabled) { | ||
| 135 | process_magic(GUI_OFF, record); | ||
| 136 | } else { | ||
| 137 | process_magic(GUI_ON, record); | ||
| 138 | } | ||
| 139 | } else unregister_code16(keycode); | ||
| 140 | break; | ||
| 127 | } | 141 | } |
| 128 | return true; | 142 | return true; |
| 129 | }; | 143 | }; |
| @@ -163,9 +177,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 163 | } | 177 | } |
| 164 | default: // all other layers | 178 | default: // all other layers |
| 165 | if ( clockwise ) { | 179 | if ( clockwise ) { |
| 166 | if ( selected_layer < 3 && keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers | 180 | if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers |
| 167 | selected_layer ++; | 181 | if(selected_layer < 3) { |
| 168 | layer_move(selected_layer); | 182 | selected_layer ++; |
| 183 | layer_move(selected_layer); | ||
| 184 | } | ||
| 169 | } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word | 185 | } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word |
| 170 | tap_code16(LCTL(KC_RGHT)); | 186 | tap_code16(LCTL(KC_RGHT)); |
| 171 | } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track | 187 | } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track |
| @@ -174,9 +190,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 174 | tap_code(KC_VOLU); // Otherwise it just changes volume | 190 | tap_code(KC_VOLU); // Otherwise it just changes volume |
| 175 | } | 191 | } |
| 176 | } else if ( !clockwise ) { | 192 | } else if ( !clockwise ) { |
| 177 | if ( selected_layer > 0 && keyboard_report->mods & MOD_BIT(KC_LSFT) ) { | 193 | if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { |
| 178 | selected_layer --; | 194 | if (selected_layer > 0) { |
| 179 | layer_move(selected_layer); | 195 | selected_layer --; |
| 196 | layer_move(selected_layer); | ||
| 197 | } | ||
| 180 | } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word | 198 | } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word |
| 181 | tap_code16(LCTL(KC_LEFT)); | 199 | tap_code16(LCTL(KC_LEFT)); |
| 182 | } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track | 200 | } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track |
| @@ -256,6 +274,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||
| 256 | default: | 274 | default: |
| 257 | oled_write_P(PSTR("Layer ?"), false); // Should never display, here as a catchall | 275 | oled_write_P(PSTR("Layer ?"), false); // Should never display, here as a catchall |
| 258 | } | 276 | } |
| 277 | oled_write_P(_isWinKeyDisabled ? PSTR(" WL") : PSTR(" "), false); | ||
| 259 | oled_set_cursor(8,3); | 278 | oled_set_cursor(8,3); |
| 260 | if (get_highest_layer(layer_state) == selected_layer) { | 279 | if (get_highest_layer(layer_state) == selected_layer) { |
| 261 | oled_write_P(PSTR(" "), false); | 280 | oled_write_P(PSTR(" "), false); |
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md index 9180ac215..730bee889 100644 --- a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md +++ b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md | |||
| @@ -13,6 +13,7 @@ Features | |||
| 13 | - shutdown oled when powered down to prevent OLED from showing Mercutio all the time | 13 | - shutdown oled when powered down to prevent OLED from showing Mercutio all the time |
| 14 | - add WPM indicator when wpm is > 20 wpm | 14 | - add WPM indicator when wpm is > 20 wpm |
| 15 | - add double tap of Left Shift to toggle Caps Lock | 15 | - add double tap of Left Shift to toggle Caps Lock |
| 16 | - add WinLock feature with FN + Win; display WL on OLED when enabled | ||
| 16 | 17 | ||
| 17 | - FN layer has encoder selectable key codes and displayed on OLED | 18 | - FN layer has encoder selectable key codes and displayed on OLED |
| 18 | 19 | ||
| @@ -28,8 +29,9 @@ Features | |||
| 28 | {"Break", KC_PAUS}, | 29 | {"Break", KC_PAUS}, |
| 29 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del | 30 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del |
| 30 | {"AltF4", KC_AF4}, | 31 | {"AltF4", KC_AF4}, |
| 31 | {"PLAY", KC_MEDIA_PLAY_PAUSE} | 32 | {"PLAY", KC_MEDIA_PLAY_PAUSE}, |
| 32 | }; | 33 | {"RESET", RESET}, // firmware flash mode |
| 34 | }; | ||
| 33 | 35 | ||
| 34 | - Additional encoder functionality | 36 | - Additional encoder functionality |
| 35 | While holding Left Ctrl, navigates next or previous word | 37 | While holding Left Ctrl, navigates next or previous word |
| @@ -37,4 +39,17 @@ Features | |||
| 37 | 39 | ||
| 38 | 40 | ||
| 39 | Default Layers | 41 | Default Layers |
| 40 |  | 42 |  |
| 43 | |||
| 44 | MO(1) / FN Layer | ||
| 45 |  | ||
| 46 | |||
| 47 | MO(2) / Lower layer | ||
| 48 |  | ||
| 49 | |||
| 50 | MO(3) / Raise layer | ||
| 51 |  | ||
| 52 | |||
| 53 | |||
| 54 | |||
| 55 | |||
