aboutsummaryrefslogtreecommitdiff
path: root/keyboards/mechwild/mercutio/keymaps/jonavin
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mechwild/mercutio/keymaps/jonavin')
-rwxr-xr-xkeyboards/mechwild/mercutio/keymaps/jonavin/keymap.c47
-rw-r--r--keyboards/mechwild/mercutio/keymaps/jonavin/readme.md21
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
29enum custom_keycodes { 29enum 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
44bool _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*/
81typedef struct { 84typedef 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
39Default Layers 41Default Layers
40![image](https://user-images.githubusercontent.com/71780717/118902752-4aaf7880-b8e4-11eb-82f4-e5047612ffcf.png) 42![image](https://user-images.githubusercontent.com/71780717/127014682-3aa05136-6dc7-4a40-9be1-89a5b584848a.png)
43
44MO(1) / FN Layer
45![image](https://user-images.githubusercontent.com/71780717/127014620-a3a36dc6-6e22-4a9b-ad9a-6c6a5d18cbc5.png)
46
47MO(2) / Lower layer
48![image](https://user-images.githubusercontent.com/71780717/127014816-09598d62-2d23-42e5-a625-504a79a54ca9.png)
49
50MO(3) / Raise layer
51![image](https://user-images.githubusercontent.com/71780717/127014881-a181c198-a7e8-4f48-9789-a7a85eabcbd1.png)
52
53
54
55