From cdaac2586164178dcf99fc2d72c5a506c99ef09a Mon Sep 17 00:00:00 2001 From: Juno Nguyen Date: Fri, 10 Feb 2023 05:07:00 +0800 Subject: [Keymap] junonum: community keymap improvement (#19727) Co-authored-by: Minh-tri Nguyen Co-authored-by: Joel Challis --- layouts/community/ortho_4x12/junonum/keymap.c | 293 ++++++++++++++------------ 1 file changed, 157 insertions(+), 136 deletions(-) (limited to 'layouts/community/ortho_4x12/junonum/keymap.c') diff --git a/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c index 416949aecc..311a94d7ee 100644 --- a/layouts/community/ortho_4x12/junonum/keymap.c +++ b/layouts/community/ortho_4x12/junonum/keymap.c @@ -1,5 +1,24 @@ +/* Copyright 2023 Juno Nguyen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include QMK_KEYBOARD_H -#include "muse.h" + +#ifdef AUDIO_ENABLE +# include "muse.h" +#endif enum planck_layers { _QWERTY, @@ -120,39 +139,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; #ifdef AUDIO_ENABLE -float plover_song[][2] = SONG(PLOVER_SOUND); -float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); - -float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND); -float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND); - -// Custom songs for DPAD layer status -float dpad_song_on[][2] = { - HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4), - QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4), - QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4) -}; - -float dpad_song_off[][2] = { - ED_NOTE(_C6), ED_NOTE(_C6), - ED_NOTE(_C6), ED_NOTE(_C6), - W__NOTE(_REST), QD_NOTE(_GS5), - QD_NOTE(_AS5), Q__NOTE(_C6), - Q__NOTE(_AS5), Q__NOTE(_C6) -}; + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); + + float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND); + float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND); + + // Custom songs for DPAD layer status + float dpad_song_on[][2] = { + HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4), + QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4), + QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4) + }; + + float dpad_song_off[][2] = { + ED_NOTE(_C6), ED_NOTE(_C6), + ED_NOTE(_C6), ED_NOTE(_C6), + W__NOTE(_REST), QD_NOTE(_GS5), + QD_NOTE(_AS5), Q__NOTE(_C6), + Q__NOTE(_AS5), Q__NOTE(_C6) + }; #endif -#ifndef BACKLIGHT_ENABLE layer_state_t layer_state_set_user(layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - -#else - -layer_state_t layer_state_set_user(layer_state_t state) { - // LED control, lighting up when Fn layer is activated state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); - switch (get_highest_layer(state)) { +# ifdef BACKLIGHT_ENABLE + // LED control, lighting up when Fn layer is activated + switch (get_highest_layer(state)) { case _QWERTY: backlight_set(0); break; @@ -162,112 +175,111 @@ layer_state_t layer_state_set_user(layer_state_t state) { case _DPAD: backlight_set(3); break; - } + } +# endif + return state; } -#endif - 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; - 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 BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); -#ifdef BACKLIGHT_ENABLE + 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; + 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 BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); +# ifdef BACKLIGHT_ENABLE backlight_step(); -#endif -#ifdef KEYBOARD_planck_rev5 +# endif +# ifdef KEYBOARD_planck_rev5 writePinLow(E6); -#endif - } else { - unregister_code(KC_RSFT); -#ifdef KEYBOARD_planck_rev5 +# endif + } else { + unregister_code(KC_RSFT); +# ifdef KEYBOARD_planck_rev5 writePinHigh(E6); -#endif - } - return false; - break; - case PLOVER: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE +# endif + } + return false; + break; + case PLOVER: + if (record->event.pressed) { +# ifdef AUDIO_ENABLE stop_all_notes(); PLAY_SONG(plover_song); -#endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); +# endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + break; + case EXT_PLV: + if (record->event.pressed) { +# ifdef AUDIO_ENABLE PLAY_SONG(plover_gb_song); -#endif - layer_off(_PLOVER); - } - return false; - break; - - // Play audio upon switching Caps Lock and custom layers +# endif + layer_off(_PLOVER); + } + return false; + break; - case KC_CAPS: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE + // Play audio upon switching Caps Lock and custom layers + case KC_CAPS: + if (record->event.pressed) { +# ifdef AUDIO_ENABLE if (host_keyboard_led_state().caps_lock) { PLAY_SONG(caps_song_off); } else { PLAY_SONG(caps_song_on); } -#endif - } - return true; +# endif + } + return true; - case DP_ON: - if (record->event.pressed) { - } else { // only actived upon key release -#ifdef AUDIO_ENABLE + case DP_ON: + if (record->event.pressed) { + } else { // only actived upon key release +# ifdef AUDIO_ENABLE PLAY_SONG(dpad_song_on); -#endif +# endif - layer_off(_FN1); - layer_on(_DPAD); - } + layer_off(_FN1); + layer_on(_DPAD); + } - case DP_OFF: - if (record->event.pressed) { -#ifdef AUDIO_ENABLE + case DP_OFF: + if (record->event.pressed) { +# ifdef AUDIO_ENABLE PLAY_SONG(dpad_song_off); -#endif +# endif - layer_off(_DPAD); - } + layer_off(_DPAD); + } } return true; } @@ -305,28 +317,28 @@ bool encoder_update_user(uint8_t index, bool clockwise) { bool dip_switch_update_user(uint8_t index, bool active) { switch (index) { - case 0: - if (active) { -#ifdef AUDIO_ENABLE + case 0: + if (active) { +# ifdef AUDIO_ENABLE PLAY_SONG(plover_song); -#endif - layer_on(_ADJUST); - } else { -#ifdef AUDIO_ENABLE +# endif + layer_on(_ADJUST); + } else { +# ifdef AUDIO_ENABLE PLAY_SONG(plover_gb_song); -#endif - layer_off(_ADJUST); - } - break; - case 1: - if (active) { - muse_mode = true; - } else { - muse_mode = false; -#ifdef AUDIO_ENABLE +# endif + layer_off(_ADJUST); + } + break; + case 1: + if (active) { + muse_mode = true; + } else { + muse_mode = false; +# ifdef AUDIO_ENABLE stop_all_notes(); -#endif - } +# endif + } } return true; } @@ -349,10 +361,19 @@ void matrix_scan_user(void) { bool music_mask_user(uint16_t keycode) { switch (keycode) { - case RAISE: - case LOWER: - return false; - default: - return true; + case RAISE: + case LOWER: + return false; + default: + return true; } } + +#ifdef RGBLIGHT_ENABLE + void keyboard_post_init_user(void) { + rgblight_enable_noeeprom(); // Enables RGB, without saving settings + // Vibrant cyan + rgblight_sethsv_noeeprom(HSV_SPRINGGREEN); + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); + } +#endif -- cgit v1.2.3