diff options
Diffstat (limited to 'keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c')
-rw-r--r-- | keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c | 128 |
1 files changed, 111 insertions, 17 deletions
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c index 39e6ac87e..dc03e334b 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include "jonavin.h" | 18 | #include "jonavin.h" |
19 | #include "layout_landscape.h" | 19 | #include "layout_landscape.h" |
20 | 20 | ||
21 | #define LANDSCAPE_MODE | ||
22 | 21 | ||
23 | // Defines names for use in layer keycodes and the keymap | 22 | // Defines names for use in layer keycodes and the keymap |
24 | enum layer_names { | 23 | enum layer_names { |
@@ -28,6 +27,7 @@ enum layer_names { | |||
28 | _RGB | 27 | _RGB |
29 | }; | 28 | }; |
30 | 29 | ||
30 | #ifdef LANDSCAPE_MODE | ||
31 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 31 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
32 | 32 | ||
33 | [_BASE] = LAYOUT_landscape( | 33 | [_BASE] = LAYOUT_landscape( |
@@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
53 | [_FN2] = LAYOUT_landscape( | 53 | [_FN2] = LAYOUT_landscape( |
54 | _______, _______, RESET, | 54 | _______, _______, RESET, |
55 | 55 | ||
56 | _______, _______, _______, _______, _______, _______, | 56 | _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, _______, |
57 | _______, _______, _______, _______, _______, _______, | 57 | _______, _______, _______, _______, _______, _______, |
58 | _______, _______, _______, _______, _______, _______, | 58 | _______, _______, _______, _______, _______, _______, |
59 | _______, _______, _______, _______, _______, _______, | 59 | _______, _______, _______, _______, _______, _______, |
@@ -91,6 +91,73 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
91 | _______, _______, _______ | 91 | _______, _______, _______ |
92 | ), | 92 | ), |
93 | }; | 93 | }; |
94 | #endif // LANDSCAPE_MODE | ||
95 | |||
96 | #ifndef LANDSCAPE_MODE | ||
97 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
98 | /* Base */ | ||
99 | [_BASE] = LAYOUT( | ||
100 | TT(_FN2),TT(_FN3),TT(_FN4),LT(_RGB,KC_PSCR), | ||
101 | KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, | ||
102 | KC_P7, KC_P8, KC_P9, KC_PPLS, | ||
103 | KC_MUTE, KC_P4, KC_P5, KC_P6, _______, | ||
104 | TT(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT, | ||
105 | KC_RALT, KC_P0, _______, KC_PDOT, _______, | ||
106 | |||
107 | TT(_FN3), TT(_FN4), TT(_RGB) | ||
108 | ), | ||
109 | [_FN1] = LAYOUT( | ||
110 | _______, _______, _______, RESET, | ||
111 | KC_CALC, _______, _______, _______, | ||
112 | _______, _______, _______, _______, | ||
113 | ENCFUNC, KC_TAB, _______, _______, _______, | ||
114 | _______, _______, _______, _______, _______, | ||
115 | _______, KC_BSPC, _______, KC_DEL, _______, | ||
116 | |||
117 | _______, _______, _______ | ||
118 | ), | ||
119 | [_FN2] = LAYOUT( | ||
120 | _______, _______, _______, _______, | ||
121 | _______, _______, KC_MPLY, KC_MPRV, | ||
122 | _______, _______, _______, KC_MNXT, | ||
123 | RESET, _______, _______, _______, _______, | ||
124 | _______, _______, _______, _______, _______, | ||
125 | _______, _______, _______, _______, _______, | ||
126 | |||
127 | _______, _______, _______ | ||
128 | ), | ||
129 | [_FN3] = LAYOUT( | ||
130 | _______, _______, _______, _______, | ||
131 | _______, _______, _______, _______, | ||
132 | _______, _______, _______, _______, | ||
133 | _______, _______, _______, _______, _______, | ||
134 | _______, _______, _______, _______, _______, | ||
135 | _______, _______, _______, _______, _______, | ||
136 | |||
137 | _______, _______, _______ | ||
138 | ), | ||
139 | [_FN4] = LAYOUT( | ||
140 | _______, _______, _______, _______, | ||
141 | _______, _______, _______, _______, | ||
142 | _______, _______, _______, _______, | ||
143 | _______, _______, _______, _______, _______, | ||
144 | _______, _______, _______, _______, _______, | ||
145 | _______, _______, _______, _______, _______, | ||
146 | |||
147 | _______, _______, _______ | ||
148 | ), | ||
149 | [_RGB] = LAYOUT( | ||
150 | _______, _______, _______, _______, | ||
151 | _______, _______, _______, _______, | ||
152 | RGB_HUD, RGB_SPI, RGB_HUI, _______, | ||
153 | _______, RGB_RMOD, RGB_TOG, RGB_MOD, _______, | ||
154 | _______, RGB_VAD, RGB_SPD, RGB_VAI, _______, | ||
155 | _______, RGB_SAD, _______, RGB_SAI, _______, | ||
156 | |||
157 | _______, _______, _______ | ||
158 | ), | ||
159 | }; | ||
160 | #endif // !LANDSCAPE_MODE | ||
94 | 161 | ||
95 | typedef struct { | 162 | typedef struct { |
96 | char keydesc[6]; // this will be displayed on OLED | 163 | char keydesc[6]; // this will be displayed on OLED |
@@ -99,15 +166,15 @@ typedef struct { | |||
99 | 166 | ||
100 | static const keycodedescType PROGMEM keyselection[] = { | 167 | static const keycodedescType PROGMEM keyselection[] = { |
101 | // list of key codes that will be scrolled through by encoder and description | 168 | // list of key codes that will be scrolled through by encoder and description |
102 | {"TASK", KC_TASK}, | 169 | {"TASK ", KC_TASK}, |
103 | {"INS", KC_INS}, | 170 | {"PREV ", KC_MEDIA_PREV_TRACK}, |
104 | {"DEL", KC_DEL}, | 171 | {"NEXT ", KC_MEDIA_NEXT_TRACK}, |
105 | {"PrtSc", KC_PSCR}, | 172 | {"PLAY ", KC_MEDIA_PLAY_PAUSE}, |
173 | {"PrtScm", KC_PSCR}, | ||
106 | {"ScrLk", KC_SCLN}, | 174 | {"ScrLk", KC_SCLN}, |
107 | {"Break", KC_PAUS}, | 175 | {"Break", KC_PAUS}, |
108 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del | 176 | {"C-A-D", KC_CAD}, // Ctrl-Alt-Del |
109 | {"AltF4", KC_AF4}, | 177 | {"AltF4", KC_AF4}, |
110 | {"PLAY", KC_MEDIA_PLAY_PAUSE}, | ||
111 | {"RESET", RESET}, // firmware flash mode | 178 | {"RESET", RESET}, // firmware flash mode |
112 | }; | 179 | }; |
113 | 180 | ||
@@ -168,7 +235,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
168 | #endif | 235 | #endif |
169 | uint8_t mods_state = get_mods(); | 236 | uint8_t mods_state = get_mods(); |
170 | switch (index) { | 237 | switch (index) { |
171 | case 0: // This is the only encoder right now, keeping for consistency | 238 | case 0: // main primary encoder |
172 | switch(get_highest_layer(layer_state)){ // special handling per layer | 239 | switch(get_highest_layer(layer_state)){ // special handling per layer |
173 | case _FN1: // on Fn layer select what the encoder does when pressed | 240 | case _FN1: // on Fn layer select what the encoder does when pressed |
174 | if (!mods_state) { | 241 | if (!mods_state) { |
@@ -177,6 +244,11 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
177 | } else { | 244 | } else { |
178 | // continue to default | 245 | // continue to default |
179 | } | 246 | } |
247 | case _RGB: | ||
248 | if (!mods_state) { | ||
249 | encoder_action_rgb_hue(clockwise); | ||
250 | break; | ||
251 | } | ||
180 | default: // all other layers | 252 | default: // all other layers |
181 | if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, encoder changes layers | 253 | if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, encoder changes layers |
182 | encoder_action_layerchange(clockwise); | 254 | encoder_action_layerchange(clockwise); |
@@ -190,6 +262,17 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
190 | break; | 262 | break; |
191 | } | 263 | } |
192 | break; | 264 | break; |
265 | case 1: // optional secondary encoder | ||
266 | switch(get_highest_layer(layer_state)){ // special handling per layer | ||
267 | case _RGB: | ||
268 | if (!mods_state) { | ||
269 | encoder_action_rgb_mode(clockwise); | ||
270 | break; | ||
271 | } | ||
272 | default: // all other layers | ||
273 | encoder_action_mediatrack(clockwise); // Otherwise prev/next track | ||
274 | break; | ||
275 | } | ||
193 | } | 276 | } |
194 | return true; | 277 | return true; |
195 | } | 278 | } |
@@ -287,16 +370,19 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
287 | 370 | ||
288 | void oled_task_user(void) { | 371 | void oled_task_user(void) { |
289 | render_logo(); | 372 | render_logo(); |
290 | oled_set_cursor(0,6); | 373 | oled_set_cursor(0,5); |
291 | 374 | ||
292 | oled_write_ln_P(PSTR("Layer"), false); | 375 | oled_write_ln_P(PSTR("-JV-"), false); |
376 | oled_write_ln_P(PSTR(" "), false); | ||
293 | 377 | ||
378 | bool showSelectedKey = false; | ||
294 | switch (get_highest_layer(layer_state)) { | 379 | switch (get_highest_layer(layer_state)) { |
295 | case _BASE: | 380 | case _BASE: |
296 | oled_write_ln_P(PSTR("Base"), false); | 381 | oled_write_ln_P(PSTR("BASE"), false); |
297 | break; | 382 | break; |
298 | case _FN1: | 383 | case _FN1: |
299 | oled_write_ln_P(PSTR("FN 1"), false); | 384 | oled_write_ln_P(PSTR("FN 1"), false); |
385 | showSelectedKey = true; | ||
300 | break; | 386 | break; |
301 | case _FN2: | 387 | case _FN2: |
302 | oled_write_ln_P(PSTR("FN 2"), false); | 388 | oled_write_ln_P(PSTR("FN 2"), false); |
@@ -311,18 +397,26 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
311 | oled_write_ln_P(PSTR("RGB "), false); | 397 | oled_write_ln_P(PSTR("RGB "), false); |
312 | break; | 398 | break; |
313 | default: | 399 | default: |
314 | oled_write_ln_P(PSTR("Undef"), false); | 400 | oled_write_ln_P(PSTR(" ?? "), false); |
315 | } | 401 | } |
316 | oled_write_ln_P(PSTR(""), false); | 402 | if (showSelectedKey) oled_write_ln(selectedkey_rec.keydesc, false); |
403 | else oled_write_ln_P(PSTR(" "), false); | ||
404 | |||
317 | // Host Keyboard LED Status | 405 | // Host Keyboard LED Status |
318 | led_t led_state = host_keyboard_led_state(); | 406 | led_t led_state = host_keyboard_led_state(); |
319 | oled_write_ln_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false); | 407 | oled_set_cursor(0,11); |
320 | oled_write_ln_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false); | 408 | oled_write_ln_P(led_state.num_lock ? PSTR(" NUM") : PSTR(" "), false); |
321 | oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false); | 409 | oled_write_ln_P(led_state.caps_lock ? PSTR(" CAP") : PSTR(" "), false); |
410 | oled_write_ln_P(led_state.scroll_lock ? PSTR(" SCR") : PSTR(" "), false); | ||
322 | } | 411 | } |
323 | #endif // !LANDSCAPE_MODE | 412 | #endif // !LANDSCAPE_MODE |
324 | 413 | ||
325 | void suspend_power_down_user(void) { // shutdown oled when powered down to prevent OLED from showing Mercutio all the time | 414 | void suspend_power_down_user(void) { // shutdown oled when powered down to prevent OLED from showing Mercutio all the time |
326 | oled_off(); | 415 | oled_off(); |
416 | rgblight_disable_noeeprom(); | ||
417 | } | ||
418 | |||
419 | void suspend_wakeup_init_user(void) { | ||
420 | rgblight_enable_noeeprom(); | ||
327 | } | 421 | } |
328 | #endif | 422 | #endif |