aboutsummaryrefslogtreecommitdiff
path: root/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c')
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c284
1 files changed, 95 insertions, 189 deletions
diff --git a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
index 0f689f0f1..141b22275 100644
--- a/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
+++ b/keyboards/helix/rev2/keymaps/five_rows_jis/keymap.c
@@ -1,16 +1,20 @@
1#include QMK_KEYBOARD_H 1#include QMK_KEYBOARD_H
2#include "keymap_jp.h"
2#include "bootloader.h" 3#include "bootloader.h"
3#ifdef PROTOCOL_LUFA 4#ifdef PROTOCOL_LUFA
4#include "lufa.h" 5#include "lufa.h"
5#include "split_util.h" 6#include "split_util.h"
6#endif 7#endif
7#ifdef AUDIO_ENABLE
8 #include "audio.h"
9#endif
10#ifdef SSD1306OLED 8#ifdef SSD1306OLED
11 #include "ssd1306.h" 9 #include "ssd1306.h"
12#endif 10#endif
13 11
12// * If you want to recognize that you pressed the Adjust key with the Lower / Raise key you can enable this comment out. However, the binary size may be over. *
13// #define ADJUST_MACRO_ENABLE
14
15// * If you want to use the Kana key you can enable this comment out. However, the binary size may be over. *
16// #define KANA_ENABLE
17
14extern keymap_config_t keymap_config; 18extern keymap_config_t keymap_config;
15 19
16#ifdef RGBLIGHT_ENABLE 20#ifdef RGBLIGHT_ENABLE
@@ -35,33 +39,26 @@ enum layer_number {
35}; 39};
36 40
37enum custom_keycodes { 41enum custom_keycodes {
38 BASE = SAFE_RANGE, 42 RGBRST = SAFE_RANGE,
39 BAS_E,
40 LOWER,
41 LOW_E,
42 RAISE,
43 RAI_E,
44 ADJUST,
45 EISU,
46 #ifdef KANA_ENABLE 43 #ifdef KANA_ENABLE
44 EISU,
47 KANA, 45 KANA,
48 #endif 46 #endif
49 RGBRST
50}; 47};
51 48
52// JIS key aliases
53#define JP_CFTD KC_EQL // ^ and ~ Circumflex (Hat) and Tilde
54#define JP_ATBQ KC_LBRC // @ and ` Atmark and Back-quote
55#define JP_CLAS KC_QUOT // : and * Colon and Asterisk
56#define JP_BSVL KC_JYEN // \ and | Back slash and and Vertical-line)
57#define JP_LBRC KC_RBRC // [ and { Left-bracket
58#define JP_RBRC KC_BSLS // ] and } Right-bracket
59#define JP_BSUS KC_RO // \ and _ Back slash and Under-score
60
61// Fillers to make layering more clear 49// Fillers to make layering more clear
62#define _______ KC_TRNS 50#define _______ KC_TRNS
63#define XXXXXXX KC_NO 51#define XXXXXXX KC_NO
64 52
53// Layer Mode aliases
54#define DL_BAS DF(_BASE)
55#define DL_BASE DF(_BAS_E)
56#define ML_LOW MO(_LOWER)
57#define ML_LOWE MO(_LOW_E)
58#define ML_RAI MO(_RAISE)
59#define ML_RAIE MO(_RAI_E)
60#define ML_ADJ MO(_ADJUST)
61
65#if HELIX_ROWS == 5 62#if HELIX_ROWS == 5
66const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 63const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
67 /* Qwerty JIS Normal 64 /* Qwerty JIS Normal
@@ -79,10 +76,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
79 */ 76 */
80 [_BASE] = LAYOUT( \ 77 [_BASE] = LAYOUT( \
81 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ 78 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \
82 EISU, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, \ 79 JP_ZHTG, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, \
83 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, \ 80 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, \
84 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \ 81 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, \
85 KC_LCTL, KC_LALT, KC_LGUI, ADJUST, LOWER, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, RAISE, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \ 82 KC_LCTL, KC_LALT, KC_LGUI, ML_ADJ, ML_LOW, KC_SPC, KC_BSPC, KC_SPC, KC_SPC, ML_RAI, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT \
86 ), 83 ),
87 84
88 /* Qwerty JIS Exchange L and R 85 /* Qwerty JIS Exchange L and R
@@ -100,10 +97,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
100 */ 97 */
101 [_BAS_E] = LAYOUT( \ 98 [_BAS_E] = LAYOUT( \
102 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \ 99 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, \
103 KC_Y, KC_U, KC_I, KC_O, KC_P, JP_ATBQ, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \ 100 KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, \
104 KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_CLAS, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \ 101 KC_H, KC_J, KC_K, KC_L, KC_SCLN, JP_COLN, XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, \
105 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, EISU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \ 102 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_ENT, JP_ZHTG, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, \
106 KC_SPC, RAI_E, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ADJUST, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, LOW_E, KC_BSPC \ 103 KC_SPC, ML_RAIE, JP_RBRC, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, ML_ADJ, KC_LCTL, KC_LALT, KC_LGUI, JP_LBRC, ML_LOWE, KC_BSPC \
107 ), 104 ),
108 105
109 /* Lower JIS Normal 106 /* Lower JIS Normal
@@ -120,10 +117,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
120 * `-------------------------------------------------------------------------------------------------' 117 * `-------------------------------------------------------------------------------------------------'
121 */ 118 */
122 [_LOWER] = LAYOUT( \ 119 [_LOWER] = LAYOUT( \
123 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, \ 120 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, \
124 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, \ 121 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, \
125 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, \ 122 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, \
126 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, \ 123 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, \
127 _______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \ 124 _______, _______, _______, _______, XXXXXXX, XXXXXXX, KC_DEL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
128 ), 125 ),
129 126
@@ -141,10 +138,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
141 * `-------------------------------------------------------------------------------------------------' 138 * `-------------------------------------------------------------------------------------------------'
142 */ 139 */
143 [_LOW_E] = LAYOUT( \ 140 [_LOW_E] = LAYOUT( \
144 _______, XXXXXXX, XXXXXXX, KC_MINS, JP_CFTD, JP_BSVL, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 141 _______, XXXXXXX, XXXXXXX, KC_MINS, JP_CIRC, JP_YEN, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
145 _______, XXXXXXX, XXXXXXX, XXXXXXX, JP_ATBQ, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 142 _______, XXXXXXX, XXXXXXX, XXXXXXX, JP_AT, JP_LBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
146 _______, XXXXXXX, XXXXXXX, KC_SCLN, JP_CLAS, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 143 _______, XXXXXXX, XXXXXXX, KC_SCLN, JP_COLN, JP_RBRC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
147 _______, KC_COMM, KC_DOT, KC_SLSH, JP_BSUS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 144 _______, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, KC_PGUP, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
148 _______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \ 145 _______, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, XXXXXXX, _______, KC_DEL \
149 ), 146 ),
150 147
@@ -152,20 +149,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
152 * ,-----------------------------------------. ,-----------------------------------------. 149 * ,-----------------------------------------. ,-----------------------------------------.
153 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | 150 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
154 * |------+------+------+------+------+------| |------+------+------+------+------+------| 151 * |------+------+------+------+------+------| |------+------+------+------+------+------|
155 * | | | | | | | | F12 | | | | Home |PageUp| 152 * | | | | | | | | |MsWhL |MsWhU | Home |PageUp| F12 |
156 * |------+------+------+------+------+------| |------+------+------+------+------+------| 153 * |------+------+------+------+------+------| |------+------+------+------+------+------|
157 * | | | | | | | | | | | | End |PageDn| 154 * | | | | | | | | |MsWhR |MsWhD | End |PageDn| |
158 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| 155 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
159 * | |MsBtn1|MsBtn2| | | | | | | | | | MsUp | | 156 * | | | | | | | | | | |MsBtn1|MsBtn2| MsUp | |
160 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| 157 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
161 * | | | | | | | | | | | |MsLeft|MsDown|MsRght| 158 * | | | | | | | | | | | |MsLeft|MsDown|MsRght|
162 * `-------------------------------------------------------------------------------------------------' 159 * `-------------------------------------------------------------------------------------------------'
163 */ 160 */
164 [_RAISE] = LAYOUT( \ 161 [_RAISE] = LAYOUT( \
165 _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \ 162 _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
166 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F12 , XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP, \ 163 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_HOME, KC_PGUP, KC_F12, \
167 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN, \ 164 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, KC_END, KC_PGDN, XXXXXXX, \
168 _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, \ 165 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, \
169 _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \ 166 _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R \
170 ), 167 ),
171 168
@@ -173,26 +170,26 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
173 * ,-----------------------------------------. ,-----------------------------------------. 170 * ,-----------------------------------------. ,-----------------------------------------.
174 * | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 | 171 * | F6 | F7 | F8 | F9 | F10 | F11 | | | F1 | F2 | F3 | F4 | F5 |
175 * |------+------+------+------+------+------| |------+------+------+------+------+------| 172 * |------+------+------+------+------+------| |------+------+------+------+------+------|
176 * | F12 | | | | | | | | | | | | | 173 * | | | |MsWhL |MsWhU | F12 | | | | | | | |
177 * |------+------+------+------+------+------| |------+------+------+------+------+------| 174 * |------+------+------+------+------+------| |------+------+------+------+------+------|
178 * | | | | | | | | | | | | | | 175 * | | | |MsWhR |MsWhD | | | | | | | | |
179 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| 176 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
180 * | | | | | | MsUp | | | |MsBtn1|MsBtn2| | | | 177 * | | | |MsBtn1|MsBtn2| MsUp | | | | | | | | |
181 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------| 178 * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
182 * | | | | |MsLeft|MsDown|MsRght| | | | | | | | 179 * | | | | |MsLeft|MsDown|MsRght| | | | | | | |
183 * `-------------------------------------------------------------------------------------------------' 180 * `-------------------------------------------------------------------------------------------------'
184 */ 181 */
185 [_RAI_E] = LAYOUT( \ 182 [_RAI_E] = LAYOUT( \
186 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \ 183 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_F1 , KC_F2, KC_F3, KC_F4, KC_F5, \
187 KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 184 XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_U, KC_F12, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
188 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ 185 XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_R, KC_WH_D, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
189 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_U, XXXXXXX, XXXXXXX, _______, KC_BTN1, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, \ 186 XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, KC_MS_U, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
190 _______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \ 187 _______, _______, XXXXXXX, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX \
191 ), 188 ),
192 189
193 /* Adjust (Lower + Raise) Common map for Normal and Exchange 190 /* Adjust (Lower + Raise) Common map for Normal and Exchange
194 * ,-----------------------------------------. ,-----------------------------------------. 191 * ,-----------------------------------------. ,-----------------------------------------.
195 * | | Reset|RGBRST|Aud on|Audoff| | | | Reset|RGBRST|Aud on|Audoff| | 192 * | | Reset|RGBRST| | | | | | Reset|RGBRST| | | |
196 * |------+------+------+------+------+------| |------+------+------+------+------+------| 193 * |------+------+------+------+------+------| |------+------+------+------+------+------|
197 * | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | | 194 * | |ModNrm|ModExc| Mac | Win | | | |ModNrm|ModExc| Mac | Win | |
198 * |------+------+------+------+------+------| |------+------+------+------+------|------+ 195 * |------+------+------+------+------+------| |------+------+------+------+------|------+
@@ -204,8 +201,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
204 * `-------------------------------------------------------------------------------------------------' 201 * `-------------------------------------------------------------------------------------------------'
205 */ 202 */
206 [_ADJUST] = LAYOUT( \ 203 [_ADJUST] = LAYOUT( \
207 XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, XXXXXXX, RESET, RGBRST, AU_ON, AU_OFF, XXXXXXX, \ 204 XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, XXXXXXX, \
208 XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, BASE, BAS_E, AG_NORM, AG_SWAP, XXXXXXX, \ 205 XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, DL_BAS, DL_BASE, AG_NORM, AG_SWAP, XXXXXXX, \
209 XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \ 206 XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, \
210 XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \ 207 XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, \
211 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \ 208 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
@@ -249,37 +246,6 @@ inline void set_keylog(uint16_t keycode, keyrecord_t *record)
249} 246}
250#endif 247#endif
251 248
252#ifdef AUDIO_ENABLE
253float tone_qwerty[][2] = SONG(QWERTY_SOUND);
254float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
255
256void startup_user()
257{
258 _delay_ms(20); // gets rid of tick
259}
260
261void shutdown_user()
262{
263 _delay_ms(150);
264 stop_all_notes();
265}
266
267void music_on_user(void)
268{
269 music_scale_user();
270}
271
272void music_scale_user(void)
273{
274 PLAY_SONG(music_scale);
275}
276
277#else
278float tone_qwerty;
279float music_scale;
280#define PLAY_SONG(tone)
281#endif
282
283// define variables for reactive RGB 249// define variables for reactive RGB
284int RGB_current_mode; 250int RGB_current_mode;
285#ifdef ADJUST_MACRO_ENABLE 251#ifdef ADJUST_MACRO_ENABLE
@@ -303,35 +269,6 @@ void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
303#define RGBLIGHT(mode) 269#define RGBLIGHT(mode)
304#endif 270#endif
305 271
306
307inline void persistent_default_layer_set(uint16_t default_layer) {
308 eeconfig_update_default_layer(default_layer);
309 default_layer_set(default_layer);
310}
311
312bool TOG_STATUS = false;
313
314void toggle_lower_raise_layer(bool pressed, uint16_t dist_layer, uint16_t lower_layer, uint16_t raise_layer) {
315 if (pressed) {
316 //not sure how to have keyboard check mode and set it to a variable, so my work around
317 //uses another variable that would be set to true after the first time a reactive key is pressed.
318 if (!TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
319 TOG_STATUS = !TOG_STATUS;
320 #ifdef RGBLIGHT_ENABLE
321 rgblight_mode((dist_layer == _LOWER || dist_layer == _LOW_E) ? 16 : 15);
322 #endif
323 }
324
325 layer_on(dist_layer);
326 ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
327 } else {
328 RGBLIGHT(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
329 TOG_STATUS = false;
330 layer_off(dist_layer);
331 ADJUST_MACRO(lower_layer, raise_layer, _ADJUST);
332 }
333}
334
335bool process_record_user(uint16_t keycode, keyrecord_t *record) { 272bool process_record_user(uint16_t keycode, keyrecord_t *record) {
336 #ifdef SSD1306OLED 273 #ifdef SSD1306OLED
337 if (record->event.pressed) { 274 if (record->event.pressed) {
@@ -340,82 +277,49 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
340 #endif 277 #endif
341 278
342 switch (keycode) { 279 switch (keycode) {
343 case BASE: 280 #ifdef RGBLIGHT_ENABLE
344 if (record->event.pressed) { 281 //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
345 PLAY_SONG(tone_qwerty); 282 case RGB_MOD:
346 persistent_default_layer_set(1UL<<_BASE); 283 if (record->event.pressed) {
347 } 284 rgblight_mode(RGB_current_mode);
348 break; 285 rgblight_step();
349 case BAS_E: 286 RGB_current_mode = rgblight_config.mode;
350 if (record->event.pressed) { 287 }
351 PLAY_SONG(tone_qwerty); 288 break;
352 persistent_default_layer_set(1UL<<_BAS_E); 289 #endif
353 } 290 #ifdef KANA_ENABLE
354 break; 291 case EISU:
355 case LOWER:
356 toggle_lower_raise_layer(record->event.pressed, _LOWER, _LOWER, _RAISE);
357 break;
358 case LOW_E:
359 toggle_lower_raise_layer(record->event.pressed, _LOW_E, _LOW_E, _RAI_E);
360 break;
361 case RAISE:
362 toggle_lower_raise_layer(record->event.pressed, _RAISE, _LOWER, _RAISE);
363 break;
364 case RAI_E:
365 toggle_lower_raise_layer(record->event.pressed, _RAI_E, _LOW_E, _RAI_E);
366 break;
367 case ADJUST:
368 if (record->event.pressed) { 292 if (record->event.pressed) {
369 RGBLIGHT(14); 293 if (keymap_config.swap_lalt_lgui==false) {
370 layer_on(_ADJUST); 294 register_code(KC_LANG2);
295 } else {
296 SEND_STRING(SS_LALT("`"));
297 }
371 } else { 298 } else {
372 RGBLIGHT(RGB_current_mode); 299 unregister_code(KC_LANG2);
373 layer_off(_ADJUST);
374 } 300 }
375 break; 301 break;
376 //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released 302 case KANA:
377 case RGB_MOD:
378 #ifdef RGBLIGHT_ENABLE
379 if (record->event.pressed) { 303 if (record->event.pressed) {
380 rgblight_mode(RGB_current_mode); 304 if(keymap_config.swap_lalt_lgui==false){
381 rgblight_step(); 305 register_code(KC_LANG1);
382 RGB_current_mode = rgblight_config.mode; 306 }else{
383 } 307 SEND_STRING(SS_LALT("`"));
384 #endif 308 }
385 break;
386 case EISU:
387 if (record->event.pressed) {
388 if (keymap_config.swap_lalt_lgui==false) {
389 register_code(KC_LANG2);
390 } else { 309 } else {
391 SEND_STRING(SS_LALT("`")); 310 unregister_code(KC_LANG1);
392 }
393 } else {
394 unregister_code(KC_LANG2);
395 }
396 break;
397 #ifdef KANA_ENABLE
398 case KANA:
399 if (record->event.pressed) {
400 if(keymap_config.swap_lalt_lgui==false){
401 register_code(KC_LANG1);
402 }else{
403 SEND_STRING(SS_LALT("`"));
404 } 311 }
405 } else { 312 break;
406 unregister_code(KC_LANG1); 313 #endif
407 } 314 #ifdef RGBLIGHT_ENABLE
408 break; 315 case RGBRST:
316 if (record->event.pressed) {
317 eeconfig_update_rgblight_default();
318 rgblight_enable();
319 RGB_current_mode = rgblight_config.mode;
320 }
321 break;
409 #endif 322 #endif
410 case RGBRST:
411 #ifdef RGBLIGHT_ENABLE
412 if (record->event.pressed) {
413 eeconfig_update_rgblight_default();
414 rgblight_enable();
415 RGB_current_mode = rgblight_config.mode;
416 }
417 #endif
418 break;
419 default: 323 default:
420 return true; 324 return true;
421 } 325 }
@@ -424,15 +328,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
424} 328}
425 329
426void matrix_init_user(void) { 330void matrix_init_user(void) {
427 #ifdef AUDIO_ENABLE
428 startup_user();
429 #endif
430 #ifdef RGBLIGHT_ENABLE 331 #ifdef RGBLIGHT_ENABLE
431 RGB_current_mode = rgblight_config.mode; 332 RGB_current_mode = rgblight_config.mode;
432 #endif 333 #endif
433 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h 334 //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
434 #ifdef SSD1306OLED 335 #ifdef SSD1306OLED
435 iota_gfx_init(!has_usb()); // turns on the display 336 iota_gfx_init(!has_usb()); // turns on the display
436 #endif 337 #endif
437} 338}
438 339
@@ -474,6 +375,7 @@ inline void render_logo(struct CharacterMatrix *matrix) {
474const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}}; 375const char mac_win_logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
475inline void render_status(struct CharacterMatrix *matrix) { 376inline void render_status(struct CharacterMatrix *matrix) {
476 377
378 char buf[20];
477 // Render to mode icon 379 // Render to mode icon
478 if(keymap_config.swap_lalt_lgui==false){ 380 if(keymap_config.swap_lalt_lgui==false){
479 matrix_write(matrix, mac_win_logo[0][0]); 381 matrix_write(matrix, mac_win_logo[0][0]);
@@ -485,8 +387,12 @@ inline void render_status(struct CharacterMatrix *matrix) {
485 matrix_write(matrix, mac_win_logo[1][1]); 387 matrix_write(matrix, mac_win_logo[1][1]);
486 } 388 }
487 389
390 #ifdef RGBLIGHT_ENABLE
391 snprintf(buf, sizeof(buf), " LED mode:%d", (short)RGB_current_mode);
392 matrix_write(matrix, buf);
393 #endif
394
488 // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below 395 // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
489 char buf[20];
490 matrix_write_P(matrix, PSTR("\nLayer: ")); 396 matrix_write_P(matrix, PSTR("\nLayer: "));
491 switch (layer_state) { 397 switch (layer_state) {
492 case L_BASE: 398 case L_BASE:
@@ -520,11 +426,11 @@ inline void render_status(struct CharacterMatrix *matrix) {
520void iota_gfx_task_user(void) { 426void iota_gfx_task_user(void) {
521 struct CharacterMatrix matrix; 427 struct CharacterMatrix matrix;
522 428
523#if DEBUG_TO_SCREEN 429 #if DEBUG_TO_SCREEN
524 if (debug_enable) { 430 if (debug_enable) {
525 return; 431 return;
526 } 432 }
527#endif 433 #endif
528 434
529 matrix_clear(&matrix); 435 matrix_clear(&matrix);
530 if (is_master) { 436 if (is_master) {