aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--layouts/community/ortho_4x12/junonum/keymap.c580
-rw-r--r--layouts/community/ortho_4x12/junonum/readme.md7
2 files changed, 297 insertions, 290 deletions
diff --git a/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c
index e5eab8848..76e40326b 100644
--- a/layouts/community/ortho_4x12/junonum/keymap.c
+++ b/layouts/community/ortho_4x12/junonum/keymap.c
@@ -2,29 +2,29 @@
2#include "muse.h" 2#include "muse.h"
3 3
4enum planck_layers { 4enum planck_layers {
5 _QWERTY, 5 _QWERTY,
6 _COLEMAK, 6 _COLEMAK,
7 _DVORAK, 7 _DVORAK,
8 _LOWER, 8 _LOWER,
9 _RAISE, 9 _RAISE,
10 _PLOVER, 10 _PLOVER,
11 _ADJUST, 11 _ADJUST,
12 12
13 _FN1, 13 _FN1,
14 _DPAD, 14 _DPAD,
15 _DPADNUM 15 _DPADNUM
16}; 16};
17 17
18enum planck_keycodes { 18enum planck_keycodes {
19 QWERTY = SAFE_RANGE, 19 QWERTY = SAFE_RANGE,
20 COLEMAK, 20 COLEMAK,
21 DVORAK, 21 DVORAK,
22 PLOVER, 22 PLOVER,
23 BACKLIT, 23 BACKLIT,
24 EXT_PLV, 24 EXT_PLV,
25 25
26 DP_ON, 26 DP_ON,
27 DP_OFF 27 DP_OFF
28}; 28};
29 29
30#define SHIFTEN RSFT_T(KC_ENT) 30#define SHIFTEN RSFT_T(KC_ENT)
@@ -36,307 +36,311 @@ enum planck_keycodes {
36 36
37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 37const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
38 38
39 [_QWERTY] = LAYOUT_ortho_4x12( 39 [_QWERTY] = LAYOUT_ortho_4x12(
40 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 40 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
41 CTRLTAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 41 CTRLTAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN, 42 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN,
43 _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT 43 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
44 ), 44 ),
45 45
46 [_COLEMAK] = LAYOUT_ortho_4x12( 46 [_COLEMAK] = LAYOUT_ortho_4x12(
47 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, 47 KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
48 CTRLTAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, 48 CTRLTAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN, 49 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTEN,
50 _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT 50 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
51 ), 51 ),
52 52
53 [_DVORAK] = LAYOUT_ortho_4x12( 53 [_DVORAK] = LAYOUT_ortho_4x12(
54 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, 54 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
55 CTRLTAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT, 55 CTRLTAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT,
56 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SHIFTEN, 56 KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SHIFTEN,
57 _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT 57 _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
58 ), 58 ),
59 59
60 [_LOWER] = LAYOUT_ortho_4x12( 60 [_LOWER] = LAYOUT_ortho_4x12(
61 KC_TILD, _______, _______, _______, _______, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, 61 KC_TILD, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
62 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS, KC_PIPE, 62 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS, KC_PIPE,
63 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EXLM, KC_AT, KC_HASH, KC_PLUS, _______, 63 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EXLM, KC_AT, KC_HASH, KC_PLUS, _______,
64 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY 64 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
65 ), 65 ),
66 66
67 [_RAISE] = LAYOUT_ortho_4x12( 67 [_RAISE] = LAYOUT_ortho_4x12(
68 KC_GRV, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, 68 KC_GRV, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
69 _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, KC_MINUS, KC_BSLS, 69 _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, KC_MINUS, KC_BSLS,
70 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, _______, 70 _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, _______,
71 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY 71 _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
72 ), 72 ),
73 73
74 [_PLOVER] = LAYOUT_ortho_4x12( 74 [_PLOVER] = LAYOUT_ortho_4x12(
75 KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , 75 KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
76 XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, 76 XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
77 XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 77 XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
78 EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX 78 EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
79 ), 79 ),
80
81 [_ADJUST] = LAYOUT_ortho_4x12(
82 _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
83 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
84 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
86 ),
87
88 [_FN1] = LAYOUT_ortho_4x12(
89 KC_MENU, _______, KC_PGUP, KC_UP, KC_PGDN, KC_INS, _______, _______, KC_UP, _______, KC_PSCR, _______,
90 KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL ,
91 _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_END, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, DP_ON, _______, _______, _______
93 ),
94
95 // Slightly modified layer with inverted T-shaped directional pad
96 [_DPAD] = LAYOUT_ortho_4x12(
97 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
98 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
99 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT ,
100 KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, DPADNUM, KC_SPC, KC_SPC, LOWER, DP_OFF, KC_LEFT, KC_DOWN, KC_RGHT
101 ),
102
103 // Extended layer for weapon switching
104 [_DPADNUM] = LAYOUT_ortho_4x12(
105 XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
106 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
107 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
108 _______, _______, _______, XXXXXXX, DPADNUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
109 )
110 80
81 [_ADJUST] = LAYOUT_ortho_4x12(
82 _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
83 _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
84 _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, TERM_ON, TERM_OFF, _______, _______, _______,
85 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
86 ),
111 87
88 [_FN1] = LAYOUT_ortho_4x12(
89 KC_MENU, DP_ON, KC_PGDN, KC_UP, KC_PGUP, KC_INS, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
90 KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL ,
91 _______, _______, _______, _______, _______, KC_END, KC_END, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,
92 _______, _______, _______, _______, _______, _______, _______, _______, DP_ON, _______, _______, _______
93 ),
94
95 // Slightly modified layer with inverted T-shaped directional pad
96 [_DPAD] = LAYOUT_ortho_4x12(
97 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
98 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
99 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT ,
100 XXXXXXX, KC_LCTL, KC_LALT, KC_LGUI, DPADNUM, KC_SPC, KC_SPC, LOWER, DP_OFF, KC_LEFT, KC_DOWN, KC_RGHT
101 ),
102
103 // Extended numeric layer for FPS weapon switching and StarCraft group control
104 [_DPADNUM] = LAYOUT_ortho_4x12(
105 KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, XXXXXXX, XXXXXXX, DP_OFF, XXXXXXX,
106 KC_LCTL, _______, KC_8, KC_9, KC_0, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_SLSH,
107 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX,
108 _______, _______, _______, _______, DPADNUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
109 )
112}; 110};
113 111
114#ifdef AUDIO_ENABLE 112#ifdef AUDIO_ENABLE
115 float plover_song[][2] = SONG(PLOVER_SOUND); 113float plover_song[][2] = SONG(PLOVER_SOUND);
116 float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); 114float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
117 115
118 // Borrowing audio from unused audio 116float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND);
119 // Caps Lock on and off sound too similar 117float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND);
120 118
121 float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND); 119// Custom songs for DPAD layer status
122 float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND); 120float dpad_song_on[][2] = {
123 121 HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4),
124 float dpad_song_on[][2] = SONG(ROCK_A_BYE_BABY); 122 QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4),
125 float dpad_song_off[][2] = SONG(MAJOR_SOUND); 123 QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4)
124};
125
126float dpad_song_off[][2] = {
127 ED_NOTE(_C6), ED_NOTE(_C6),
128 ED_NOTE(_C6), ED_NOTE(_C6),
129 W__NOTE(_REST), QD_NOTE(_GS5),
130 QD_NOTE(_AS5), Q__NOTE(_C6),
131 Q__NOTE(_AS5), Q__NOTE(_C6)
132};
126#endif 133#endif
127 134
128#ifndef BACKLIGHT_ENABLE 135#ifndef BACKLIGHT_ENABLE
129layer_state_t layer_state_set_user(layer_state_t state) { 136layer_state_t layer_state_set_user(layer_state_t state) {
130 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); 137 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
131} 138}
132 139
133#else 140#else
134 141
135layer_state_t layer_state_set_user(layer_state_t state) { 142layer_state_t layer_state_set_user(layer_state_t state) {
136 // LED control, lighting up when Fn layer is activated 143 // LED control, lighting up when Fn layer is activated
137 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); 144 state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
138 switch (get_highest_layer(state)) { 145 switch (get_highest_layer(state)) {
139 case _QWERTY: 146 case _QWERTY:
140 backlight_set(0); 147 backlight_set(0);
141 break; 148 break;
142 case _FN1: 149 case _FN1:
143 backlight_set(3); 150 backlight_set(3);
144 break; 151 break;
145 case _DPAD: 152 case _DPAD:
146 backlight_set(3); 153 backlight_set(3);
147 break; 154 break;
148 } 155 }
149 return state; 156 return state;
150} 157}
151 158
152#endif 159#endif
153
154 160
155bool process_record_user(uint16_t keycode, keyrecord_t *record) { 161bool process_record_user(uint16_t keycode, keyrecord_t *record) {
156 switch (keycode) { 162 switch (keycode) {
157 case QWERTY: 163 case QWERTY:
158 if (record->event.pressed) { 164 if (record->event.pressed) {
159 print("mode just switched to qwerty and this is a huge string\n"); 165 print("mode just switched to qwerty and this is a huge string\n");
160 set_single_persistent_default_layer(_QWERTY); 166 set_single_persistent_default_layer(_QWERTY);
161 } 167 }
162 return false; 168 return false;
163 break; 169 break;
164 case COLEMAK: 170 case COLEMAK:
165 if (record->event.pressed) { 171 if (record->event.pressed) {
166 set_single_persistent_default_layer(_COLEMAK); 172 set_single_persistent_default_layer(_COLEMAK);
167 } 173 }
168 return false; 174 return false;
169 break; 175 break;
170 case DVORAK: 176 case DVORAK:
171 if (record->event.pressed) { 177 if (record->event.pressed) {
172 set_single_persistent_default_layer(_DVORAK); 178 set_single_persistent_default_layer(_DVORAK);
173 } 179 }
174 return false; 180 return false;
175 break; 181 break;
176 case BACKLIT: 182 case BACKLIT:
177 if (record->event.pressed) { 183 if (record->event.pressed) {
178 register_code(KC_RSFT); 184 register_code(KC_RSFT);
179 #ifdef BACKLIGHT_ENABLE 185#ifdef BACKLIGHT_ENABLE
180 backlight_step(); 186 backlight_step();
181 #endif 187#endif
182 #ifdef KEYBOARD_planck_rev5 188#ifdef KEYBOARD_planck_rev5
183 writePinLow(E6); 189 writePinLow(E6);
184 #endif 190#endif
185 } else { 191 } else {
186 unregister_code(KC_RSFT); 192 unregister_code(KC_RSFT);
187 #ifdef KEYBOARD_planck_rev5 193#ifdef KEYBOARD_planck_rev5
188 writePinHigh(E6); 194 writePinHigh(E6);
189 #endif 195#endif
190 } 196 }
191 return false; 197 return false;
192 break; 198 break;
193 case PLOVER: 199 case PLOVER:
194 if (record->event.pressed) { 200 if (record->event.pressed) {
195 #ifdef AUDIO_ENABLE 201#ifdef AUDIO_ENABLE
196 stop_all_notes(); 202 stop_all_notes();
197 PLAY_SONG(plover_song); 203 PLAY_SONG(plover_song);
198 #endif 204#endif
199 layer_off(_RAISE); 205 layer_off(_RAISE);
200 layer_off(_LOWER); 206 layer_off(_LOWER);
201 layer_off(_ADJUST); 207 layer_off(_ADJUST);
202 layer_on(_PLOVER); 208 layer_on(_PLOVER);
203 if (!eeconfig_is_enabled()) { 209 if (!eeconfig_is_enabled()) {
204 eeconfig_init(); 210 eeconfig_init();
205 } 211 }
206 keymap_config.raw = eeconfig_read_keymap(); 212 keymap_config.raw = eeconfig_read_keymap();
207 keymap_config.nkro = 1; 213 keymap_config.nkro = 1;
208 eeconfig_update_keymap(keymap_config.raw); 214 eeconfig_update_keymap(keymap_config.raw);
209 } 215 }
210 return false; 216 return false;
211 break; 217 break;
212 case EXT_PLV: 218 case EXT_PLV:
213 if (record->event.pressed) { 219 if (record->event.pressed) {
214 #ifdef AUDIO_ENABLE 220#ifdef AUDIO_ENABLE
215 PLAY_SONG(plover_gb_song); 221 PLAY_SONG(plover_gb_song);
216 #endif 222#endif
217 layer_off(_PLOVER); 223 layer_off(_PLOVER);
218 } 224 }
219 return false; 225 return false;
220 break; 226 break;
221 227
222 228 // Play audio upon switching Caps Lock and custom layers
223// Play audio upon switching Caps Lock and custom layers 229
224 230 case KC_CAPS:
225 case KC_CAPS: 231 if (record->event.pressed) {
226 if (record->event.pressed) { 232#ifdef AUDIO_ENABLE
227 #ifdef AUDIO_ENABLE 233 if (host_keyboard_led_state().caps_lock) {
228 if (host_keyboard_led_state().caps_lock) { 234 PLAY_SONG(caps_song_off);
229 PLAY_SONG(caps_song_off); 235 } else {
230 } else { 236 PLAY_SONG(caps_song_on);
231 PLAY_SONG(caps_song_on); 237 }
232 } 238#endif
233 #endif 239 }
234 } 240 return true;
235 return true; 241
236 242 case DP_ON:
237 case DP_ON: 243 if (record->event.pressed) {
238 if (record->event.pressed) { 244 } else { // only actived upon key release
239 245#ifdef AUDIO_ENABLE
240 } else { // only actived upon key release 246 PLAY_SONG(dpad_song_on);
241 #ifdef AUDIO_ENABLE 247#endif
242 PLAY_SONG(dpad_song_on); 248
243 #endif 249 layer_off(_FN1);
244 250 layer_on(_DPAD);
245 layer_off(_FN1); 251 }
246 layer_on(_DPAD); 252
247 } 253 case DP_OFF:
248 254 if (record->event.pressed) {
249 case DP_OFF: 255#ifdef AUDIO_ENABLE
250 if (record->event.pressed) { 256 PLAY_SONG(dpad_song_off);
251 #ifdef AUDIO_ENABLE 257#endif
252 PLAY_SONG(dpad_song_off); 258
253 #endif 259 layer_off(_DPAD);
254 260 }
255 layer_off(_DPAD);
256 }
257 } 261 }
258 return true; 262 return true;
259} 263}
260 264
261bool muse_mode = false; 265bool muse_mode = false;
262uint8_t last_muse_note = 0; 266uint8_t last_muse_note = 0;
263uint16_t muse_counter = 0; 267uint16_t muse_counter = 0;
264uint8_t muse_offset = 70; 268uint8_t muse_offset = 70;
265uint16_t muse_tempo = 50; 269uint16_t muse_tempo = 50;
266 270
267void encoder_update(bool clockwise) { 271void encoder_update(bool clockwise) {
268 if (muse_mode) { 272 if (muse_mode) {
269 if (IS_LAYER_ON(_RAISE)) { 273 if (IS_LAYER_ON(_RAISE)) {
270 if (clockwise) { 274 if (clockwise) {
271 muse_offset++; 275 muse_offset++;
272 } else { 276 } else {
273 muse_offset--; 277 muse_offset--;
274 } 278 }
275 } else { 279 } else {
276 if (clockwise) { 280 if (clockwise) {
277 muse_tempo+=1; 281 muse_tempo += 1;
278 } else { 282 } else {
279 muse_tempo-=1; 283 muse_tempo -= 1;
280 } 284 }
281 } 285 }
282 } else {
283 if (clockwise) {
284 tap_code(KC_PGDN);
285 } else { 286 } else {
286 tap_code(KC_PGUP); 287 if (clockwise) {
288 tap_code(KC_PGDN);
289 } else {
290 tap_code(KC_PGUP);
291 }
287 } 292 }
288 }
289} 293}
290 294
291void dip_update(uint8_t index, bool active) { 295void dip_update(uint8_t index, bool active) {
292 switch (index) { 296 switch (index) {
293 case 0: 297 case 0:
294 if (active) { 298 if (active) {
295 #ifdef AUDIO_ENABLE 299#ifdef AUDIO_ENABLE
296 PLAY_SONG(plover_song); 300 PLAY_SONG(plover_song);
297 #endif 301#endif
298 layer_on(_ADJUST); 302 layer_on(_ADJUST);
299 } else { 303 } else {
300 #ifdef AUDIO_ENABLE 304#ifdef AUDIO_ENABLE
301 PLAY_SONG(plover_gb_song); 305 PLAY_SONG(plover_gb_song);
302 #endif 306#endif
303 layer_off(_ADJUST); 307 layer_off(_ADJUST);
304 } 308 }
305 break; 309 break;
306 case 1: 310 case 1:
307 if (active) { 311 if (active) {
308 muse_mode = true; 312 muse_mode = true;
309 } else { 313 } else {
310 muse_mode = false; 314 muse_mode = false;
311 #ifdef AUDIO_ENABLE 315#ifdef AUDIO_ENABLE
312 stop_all_notes(); 316 stop_all_notes();
313 #endif 317#endif
314 } 318 }
315 } 319 }
316} 320}
317 321
318void matrix_scan_user(void) { 322void matrix_scan_user(void) {
319 #ifdef AUDIO_ENABLE 323#ifdef AUDIO_ENABLE
320 if (muse_mode) { 324 if (muse_mode) {
321 if (muse_counter == 0) { 325 if (muse_counter == 0) {
322 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; 326 uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
323 if (muse_note != last_muse_note) { 327 if (muse_note != last_muse_note) {
324 stop_note(compute_freq_for_midi_note(last_muse_note)); 328 stop_note(compute_freq_for_midi_note(last_muse_note));
325 play_note(compute_freq_for_midi_note(muse_note), 0xF); 329 play_note(compute_freq_for_midi_note(muse_note), 0xF);
326 last_muse_note = muse_note; 330 last_muse_note = muse_note;
331 }
327 } 332 }
328 } 333 muse_counter = (muse_counter + 1) % muse_tempo;
329 muse_counter = (muse_counter + 1) % muse_tempo;
330 } 334 }
331 #endif 335#endif
332} 336}
333 337
334bool music_mask_user(uint16_t keycode) { 338bool music_mask_user(uint16_t keycode) {
335 switch (keycode) { 339 switch (keycode) {
336 case RAISE: 340 case RAISE:
337 case LOWER: 341 case LOWER:
338 return false; 342 return false;
339 default: 343 default:
340 return true; 344 return true;
341 } 345 }
342} \ No newline at end of file 346}
diff --git a/layouts/community/ortho_4x12/junonum/readme.md b/layouts/community/ortho_4x12/junonum/readme.md
index 747646d9e..afa369fda 100644
--- a/layouts/community/ortho_4x12/junonum/readme.md
+++ b/layouts/community/ortho_4x12/junonum/readme.md
@@ -4,9 +4,12 @@ A universal ortholinear 4x12 keymap created by Juno Nguyen
4## Features: 4## Features:
5* Successor to *juno*. 5* Successor to *juno*.
6* Numpad-like cluster for numerics. 6* Numpad-like cluster for numerics.
7* ESDF and IJKL arrow cluster from SpaceFn. 7* ESDF and IJKL arrow cluster from SpaceFn for navigation.
8* CtrlTab for even more HHKB-ness. 8* CtrlTab for even more HHKB-ness.
9* Huge amount of omissions of the redundant keys. 9* Audio indicator for Caps Lock.
10* Huge amount of omissions of redundant keys.
10* minimalism (not really). 11* minimalism (not really).
12* DPAD layer for gaming with inverted T-shaped direction keys.
13* DPADNUM secondary layer tailored for StarCraft group control and FPS weapon switching.
11 14
12Refined since Oct 2019 \ No newline at end of file 15Refined since Oct 2019 \ No newline at end of file