aboutsummaryrefslogtreecommitdiff
path: root/keyboards/mechwild
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/mechwild')
-rwxr-xr-xkeyboards/mechwild/mercutio/keymaps/jonavin/keymap.c75
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c89
2 files changed, 67 insertions, 97 deletions
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
index 74811cbc3..22d26db3c 100755
--- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
+++ b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
@@ -106,63 +106,48 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
106 106
107 107
108#ifdef ENCODER_ENABLE // Encoder Functionality 108#ifdef ENCODER_ENABLE // Encoder Functionality
109 uint8_t selected_layer = 0; 109 void encoder_action_selectkey(bool clockwise) {
110 if ( clockwise ) {
111 if ( selectedkey_idx < MAX_KEYSELECTION-1) {
112 selectedkey_idx ++;
113 } else {
114 // do nothing
115 }
116 } else if ( !clockwise ) {
117 if ( selectedkey_idx > 0){
118 selectedkey_idx --;
119 } else {
120 // do nothing
121 }
122 }
123 set_selectedkey(selectedkey_idx);
124 }
110 125
111 bool encoder_update_user(uint8_t index, bool clockwise) { 126 bool encoder_update_user(uint8_t index, bool clockwise) {
112 #ifdef OLED_ENABLE 127 #ifdef OLED_ENABLE
113 oled_clear(); 128 oled_clear();
114 oled_render(); 129 oled_render();
115 #endif 130 #endif
131 uint8_t mods_state = get_mods();
116 switch (index) { 132 switch (index) {
117 case 0: // This is the only encoder right now, keeping for consistency 133 case 0: // This is the only encoder right now, keeping for consistency
118 switch(get_highest_layer(layer_state)){ // special handling per layer 134 switch(get_highest_layer(layer_state)){ // special handling per layer
119 case _FN1: // on Fn layer select what the encoder does when pressed 135 case _FN1: // on Fn layer select what the encoder does when pressed
120 if (!keyboard_report->mods) { 136 if (!mods_state) {
121 if ( clockwise ) { 137 encoder_action_selectkey(clockwise);
122 if ( selectedkey_idx < MAX_KEYSELECTION-1) {
123 selectedkey_idx ++;
124 } else {
125 // do nothing
126 }
127 } else if ( !clockwise ) {
128 if ( selectedkey_idx > 0){
129 selectedkey_idx --;
130 } else {
131 // do nothing
132 }
133 }
134 set_selectedkey(selectedkey_idx);
135 break; 138 break;
136 } else { 139 } else {
137 // continue to default 140 // continue to default
138 } 141 }
139 default: // all other layers 142 default: // all other layers
140 if ( clockwise ) { 143 if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
141 if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers 144 encoder_action_layerchange(clockwise);
142 if(selected_layer < 3) { 145 } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
143 selected_layer ++; 146 encoder_action_navword(clockwise);
144 layer_move(selected_layer); 147 } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
145 } 148 encoder_action_mediatrack(clockwise);
146 } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next word 149 } else {
147 tap_code16(LCTL(KC_RGHT)); 150 encoder_action_volume(clockwise); // Otherwise it just changes volume
148 } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next track
149 tap_code(KC_MEDIA_NEXT_TRACK);
150 } else {
151 tap_code(KC_VOLU); // Otherwise it just changes volume
152 }
153 } else if ( !clockwise ) {
154 if (keyboard_report->mods & MOD_BIT(KC_LSFT) ) {
155 if (selected_layer > 0) {
156 selected_layer --;
157 layer_move(selected_layer);
158 }
159 } else if (keyboard_report->mods & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate previous word
160 tap_code16(LCTL(KC_LEFT));
161 } else if (keyboard_report->mods & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media previous track
162 tap_code(KC_MEDIA_PREV_TRACK);
163 } else {
164 tap_code(KC_VOLD);
165 }
166 } 151 }
167 break; 152 break;
168 } 153 }
@@ -205,7 +190,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
205 190
206 void oled_task_user(void) { 191 void oled_task_user(void) {
207 192
208 if ( IS_HOST_LED_OFF(USB_LED_NUM_LOCK) && IS_HOST_LED_OFF(USB_LED_CAPS_LOCK) && selected_layer == 0 && get_highest_layer(layer_state) == 0 ) { 193 if ( IS_HOST_LED_OFF(USB_LED_NUM_LOCK) && IS_HOST_LED_OFF(USB_LED_CAPS_LOCK) && get_selected_layer() == 0 && get_highest_layer(layer_state) == 0 ) {
209 render_name(); 194 render_name();
210 clear_screen = true; 195 clear_screen = true;
211 } else { 196 } else {
@@ -217,7 +202,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
217 render_logo(); 202 render_logo();
218 oled_set_cursor(8,2); 203 oled_set_cursor(8,2);
219 char fn_str[12]; 204 char fn_str[12];
220 switch(selected_layer){ 205 switch(get_selected_layer()){
221 case 0: 206 case 0:
222 oled_write_P(PSTR("BASE"), false); 207 oled_write_P(PSTR("BASE"), false);
223 break; 208 break;
@@ -237,7 +222,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
237 } 222 }
238 oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false); 223 oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false);
239 oled_set_cursor(8,3); 224 oled_set_cursor(8,3);
240 if (get_highest_layer(layer_state) == selected_layer) { 225 if (get_highest_layer(layer_state) == get_selected_layer()) {
241 oled_write_P(PSTR(" "), false); 226 oled_write_P(PSTR(" "), false);
242 } else { 227 } else {
243 switch (get_highest_layer(layer_state)) { 228 switch (get_highest_layer(layer_state)) {
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
index 001abc502..39e6ac87e 100644
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
+++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
@@ -144,67 +144,52 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
144 144
145 145
146#ifdef ENCODER_ENABLE // Encoder Functionality 146#ifdef ENCODER_ENABLE // Encoder Functionality
147 uint8_t selected_layer = 0; 147 void encoder_action_selectkey(bool clockwise) {
148 if ( clockwise ) {
149 if ( selectedkey_idx < MAX_KEYSELECTION-1) {
150 selectedkey_idx ++;
151 } else {
152 // do nothing
153 }
154 } else if ( !clockwise ) {
155 if ( selectedkey_idx > 0){
156 selectedkey_idx --;
157 } else {
158 // do nothing
159 }
160 }
161 set_selectedkey(selectedkey_idx);
162 }
148 163
149 bool encoder_update_user(uint8_t index, bool clockwise) { 164 bool encoder_update_user(uint8_t index, bool clockwise) {
150 #ifdef OLED_ENABLE 165 #ifdef OLED_ENABLE
151 oled_clear(); 166 oled_clear();
152 oled_render(); 167 oled_render();
153 #endif 168 #endif
169 uint8_t mods_state = get_mods();
154 switch (index) { 170 switch (index) {
155 case 0: // This is the only encoder right now, keeping for consistency 171 case 0: // This is the only encoder right now, keeping for consistency
156 switch(get_highest_layer(layer_state)){ // special handling per layer 172 switch(get_highest_layer(layer_state)){ // special handling per layer
157 case _FN1: // on Fn layer select what the encoder does when pressed 173 case _FN1: // on Fn layer select what the encoder does when pressed
158 if (!keyboard_report->mods) { 174 if (!mods_state) {
159 if ( clockwise ) { 175 encoder_action_selectkey(clockwise);
160 if ( selectedkey_idx < MAX_KEYSELECTION-1) {
161 selectedkey_idx ++;
162 } else {
163 // do nothing
164 }
165 } else if ( !clockwise ) {
166 if ( selectedkey_idx > 0){
167 selectedkey_idx --;
168 } else {
169 // do nothing
170 }
171 }
172 set_selectedkey(selectedkey_idx);
173 break;
174 } else {
175 // continue to default
176 }
177 default: // all other layers
178 if ( clockwise ) {
179 if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) { // If you are holding Right Shift, encoder changes layers
180 if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT-1)) {
181 selected_layer ++;
182 layer_move(selected_layer);
183 }
184 } else if (keyboard_report->mods & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate next word
185 tap_code16(LCTL(KC_RGHT));
186 } else if (keyboard_report->mods & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media next track
187 tap_code(KC_MEDIA_NEXT_TRACK);
188 } else {
189 tap_code(KC_VOLU); // Otherwise it just changes volume
190 }
191 } else if ( !clockwise ) {
192 if (keyboard_report->mods & MOD_BIT(KC_RSFT) ) {
193 if (selected_layer > 0) {
194 selected_layer --;
195 layer_move(selected_layer);
196 }
197 } else if (keyboard_report->mods & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate previous word
198 tap_code16(LCTL(KC_LEFT));
199 } else if (keyboard_report->mods & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media previous track
200 tap_code(KC_MEDIA_PREV_TRACK);
201 } else {
202 tap_code(KC_VOLD);
203 }
204 }
205 break; 176 break;
177 } else {
178 // continue to default
179 }
180 default: // all other layers
181 if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, encoder changes layers
182 encoder_action_layerchange(clockwise);
183 } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate next/prev word
184 encoder_action_navword(clockwise);
185 } else if (mods_state & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media next/prev track
186 encoder_action_mediatrack(clockwise);
187 } else {
188 encoder_action_volume(clockwise); // Otherwise it just changes volume
206 } 189 }
207 break; 190 break;
191 }
192 break;
208 } 193 }
209 return true; 194 return true;
210 } 195 }
@@ -232,7 +217,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
232 217
233 render_logo(); 218 render_logo();
234 oled_set_cursor(8,2); 219 oled_set_cursor(8,2);
235 switch(selected_layer){ 220 switch(get_selected_layer()){
236 case _BASE: 221 case _BASE:
237 oled_write_P(PSTR("BASE"), false); 222 oled_write_P(PSTR("BASE"), false);
238 break; 223 break;
@@ -257,7 +242,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
257 } 242 }
258 oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false); 243 oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false);
259 oled_set_cursor(8,3); 244 oled_set_cursor(8,3);
260 if (get_highest_layer(layer_state) == selected_layer) { 245 if (get_highest_layer(layer_state) == get_selected_layer()) {
261 oled_write_P(PSTR(" "), false); 246 oled_write_P(PSTR(" "), false);
262 } else { 247 } else {
263 switch (get_highest_layer(layer_state)) { 248 switch (get_highest_layer(layer_state)) {