keymap.c (7813B)
1 #include QMK_KEYBOARD_H 2 3 //#include "v1.h" 4 5 //Following line allows macro to read current RGB settings 6 7 rgblight_config_t RGB_current_config; 8 9 #define KC_KANJI KC_GRV 10 11 12 enum Layer 13 { 14 _QWERTY, 15 _DIA, 16 _YOU, 17 _CHIKA, 18 _ZURA, 19 _RUBY, 20 _YOHANE, 21 _RIKO, 22 _MARI, 23 _KANAN, 24 _RUBY_SUB1, 25 _RUBY_SUB2, 26 _RUBY_SUB3, 27 _SCHOOL_IDOL_FESTIVAL 28 }; 29 30 #define SEND_DIA 100 31 #define SEND_YOU 101 32 #define SEND_CHIKA 102 33 #define SEND_ZURA 103 34 #define SEND_RUBY 104 35 #define SEND_YOHANE 105 36 #define SEND_RIKO 106 37 #define SEND_MARI 107 38 #define SEND_KANAN 108 39 40 41 enum custom_keycodes { 42 QWERTY = SAFE_RANGE, 43 DIA, 44 YOU, 45 CHIKA, 46 ZURA, 47 RUBY, 48 RUBY_SUB1, 49 RUBY_SUB2, 50 RUBY_SUB3, 51 YOHANE, 52 RIKO, 53 MARI, 54 KANAN, 55 TO_SCHOOL_IDOL_FESTIVAL, 56 RETURN_SCHOOL_IDOL_FESTIVAL 57 }; 58 59 60 int long_tap_timer; 61 62 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 63 [_QWERTY] = LAYOUT( 64 DIA, YOU, CHIKA, ZURA, RUBY, YOHANE, RIKO, MARI, KANAN 65 ), 66 [_DIA] = LAYOUT( 67 DIA, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_LSFT 68 ), 69 70 [_YOU] = LAYOUT( 71 KC_H, YOU, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_LSFT 72 ), 73 74 [_CHIKA] = LAYOUT( 75 KC_O, KC_P, CHIKA, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_LSFT 76 ), 77 78 [_ZURA] = LAYOUT( 79 KC_V, KC_W, KC_X, ZURA, KC_Y, KC_Z, KC_M, KC_N, KC_LSFT 80 ), 81 82 //推しをたくさん押せるようにルビーちゃんには複数のレイヤー設定 83 [_RUBY] = LAYOUT( 84 KC_CIRC, KC_LPRN, KC_QUOT, RUBY_SUB1, RUBY, RUBY_SUB2, KC_LCBR, KC_EXLM, KC_LSFT 85 ), 86 [_RUBY_SUB1] = LAYOUT( 87 KC_RCBR, KC_AT, KC_PIPE, RUBY_SUB1, RUBY, RUBY_SUB2, KC_HASH, KC_EQL, KC_LSFT 88 ), 89 [_RUBY_SUB2] = LAYOUT( 90 KC_TILD, KC_DLR, KC_LBRC, RUBY_SUB1, RUBY, RUBY_SUB2, KC_PERC, KC_RBRC, KC_LSFT 91 ), 92 [_RUBY_SUB3] = LAYOUT( 93 TO_SCHOOL_IDOL_FESTIVAL, KC_DLR, KC_LBRC, RUBY_SUB1, RUBY, RUBY_SUB2, KC_PERC, KC_RBRC, RETURN_SCHOOL_IDOL_FESTIVAL 94 ), 95 96 [_YOHANE] = LAYOUT( 97 KC_0, KC_1, KC_2, KC_3, KC_4, YOHANE, KC_5, KC_6, KC_LSFT 98 ), 99 100 [_RIKO] = LAYOUT( 101 KC_7, KC_8, KC_9, KC_PLUS, KC_MINS, KC_ASTR, RIKO, KC_SLSH, KC_LSFT 102 ), 103 104 [_MARI] = LAYOUT( 105 KC_TAB, KC_DEL, KC_COMM, KC_SPC, KC_ENT, KC_BSPC, KC_DOT, MARI, KC_LSFT 106 ), 107 108 [_KANAN] = LAYOUT( 109 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT, KC_BSPC, KC_AMPR, KC_KANJI, KANAN 110 ), 111 [_SCHOOL_IDOL_FESTIVAL] = LAYOUT( 112 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 113 ), 114 }; 115 116 void check_tap_and_send_key(int MEMBER) { 117 if (long_tap_timer < 500) { 118 switch (MEMBER) { 119 case SEND_DIA: 120 SEND_STRING("KUROSAWA DIA"); 121 break; 122 case SEND_YOU: 123 SEND_STRING("WATANABE YOU"); 124 break; 125 case SEND_CHIKA: 126 SEND_STRING("TAKAMI CHIKA"); 127 break; 128 case SEND_ZURA: 129 SEND_STRING("KUNIKIDA HANAMARU"); 130 break; 131 case SEND_RUBY: 132 SEND_STRING("KUROSAWA RUBY"); 133 break; 134 case SEND_YOHANE: 135 SEND_STRING("TSUSHIMA YOSHIKO"); 136 break; 137 case SEND_RIKO: 138 SEND_STRING("SAKURAUCHI RIKO"); 139 break; 140 case SEND_MARI: 141 SEND_STRING("OHARA MARI"); 142 break; 143 case SEND_KANAN: 144 SEND_STRING("MATSUURA KANAN"); 145 break; 146 } 147 } 148 long_tap_timer = 0; 149 } 150 151 int aqours_color_h[] = { 26, 340, 150, 0, 199, 220, 53, 265, 322}; 152 int aqours_color_s[] = {255, 165, 255, 255, 255, 350, 255, 255, 255}; 153 int aqours_color_v[] = {255, 255, 255, 255, 255, 255, 200, 255, 255}; 154 155 void LED_default_set(void) { 156 157 rgblight_sethsv_at(aqours_color_h[2], aqours_color_s[2], aqours_color_v[2], 0); 158 rgblight_sethsv_at(aqours_color_h[7], aqours_color_s[7], aqours_color_v[7], 1); 159 rgblight_sethsv_at(aqours_color_h[1], aqours_color_s[1], aqours_color_v[1], 2); 160 rgblight_sethsv_at(aqours_color_h[5], aqours_color_s[5], aqours_color_v[5], 3); 161 rgblight_sethsv_at(aqours_color_h[8], aqours_color_s[8], aqours_color_v[8], 4); 162 rgblight_sethsv_at(aqours_color_h[6], aqours_color_s[6], aqours_color_v[6], 5); 163 rgblight_sethsv_at(aqours_color_h[0], aqours_color_s[0], aqours_color_v[0], 6); 164 rgblight_sethsv_at(aqours_color_h[4], aqours_color_s[4], aqours_color_v[4], 7); 165 rgblight_sethsv_at(aqours_color_h[3], aqours_color_s[3], aqours_color_v[3], 8); 166 } 167 168 169 void LED_layer_set(int aqours_index) { 170 for (int c = 0; c < 9; c++) { 171 rgblight_sethsv_at(aqours_color_h[aqours_index], aqours_color_s[aqours_index], aqours_color_v[aqours_index], c); 172 } 173 } 174 175 176 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 177 178 switch (keycode) { 179 180 case DIA: 181 if (record->event.pressed) { 182 long_tap_timer = 1; 183 layer_on(_DIA); 184 LED_layer_set(3); 185 } else { 186 check_tap_and_send_key(SEND_DIA); 187 layer_off(_DIA); 188 LED_default_set(); 189 } 190 break; 191 192 case YOU: 193 if (record->event.pressed) { 194 long_tap_timer = 1; 195 layer_on(_YOU); 196 LED_layer_set(4); 197 } else { 198 check_tap_and_send_key(SEND_YOU); 199 layer_off(_YOU); 200 LED_default_set(); 201 } 202 break; 203 204 case CHIKA: 205 if (record->event.pressed) { 206 long_tap_timer = 1; 207 layer_on(_CHIKA); 208 LED_layer_set(0); 209 } else { 210 check_tap_and_send_key(SEND_CHIKA); 211 layer_off(_CHIKA); 212 LED_default_set(); 213 } 214 break; 215 216 case ZURA: 217 if (record->event.pressed) { 218 long_tap_timer = 1; 219 layer_on(_ZURA); 220 LED_layer_set(6); 221 } else { 222 check_tap_and_send_key(SEND_ZURA); 223 layer_off(_ZURA); 224 LED_default_set(); 225 } 226 break; 227 228 case RUBY: 229 if (record->event.pressed) { 230 long_tap_timer = 1; 231 layer_on(_RUBY); 232 LED_layer_set(8); 233 } else { 234 check_tap_and_send_key(SEND_RUBY); 235 layer_off(_RUBY); 236 LED_default_set(); 237 } 238 break; 239 case RUBY_SUB1: 240 if (record->event.pressed) { 241 layer_on(_RUBY_SUB1); 242 if (IS_LAYER_ON(_RUBY_SUB1) && IS_LAYER_ON(_RUBY_SUB2)) { 243 layer_on(_RUBY_SUB3); 244 } else { 245 layer_off(_RUBY_SUB3); 246 } 247 } else { 248 layer_off(_RUBY_SUB1); 249 } 250 break; 251 case RUBY_SUB2: 252 if (record->event.pressed) { 253 layer_on(_RUBY_SUB2); 254 if (IS_LAYER_ON(_RUBY_SUB1) && IS_LAYER_ON(_RUBY_SUB2)) { 255 layer_on(_RUBY_SUB3); 256 } else { 257 layer_off(_RUBY_SUB3); 258 } 259 } else { 260 layer_off(_RUBY_SUB2); 261 } 262 break; 263 264 case YOHANE: 265 if (record->event.pressed) { 266 long_tap_timer = 1; 267 layer_on(_YOHANE); 268 LED_layer_set(5); 269 } else { 270 check_tap_and_send_key(SEND_YOHANE); 271 layer_off(_YOHANE); 272 LED_default_set(); 273 } 274 break; 275 276 case RIKO: 277 if (record->event.pressed) { 278 long_tap_timer = 1; 279 layer_on(_RIKO); 280 LED_layer_set(1); 281 } else { 282 check_tap_and_send_key(SEND_RIKO); 283 layer_off(_RIKO); 284 LED_default_set(); 285 } 286 break; 287 288 case MARI: 289 if (record->event.pressed) { 290 long_tap_timer = 1; 291 layer_on(_MARI); 292 LED_layer_set(7); 293 } else { 294 check_tap_and_send_key(SEND_MARI); 295 layer_off(_MARI); 296 LED_default_set(); 297 } 298 break; 299 300 case KANAN: 301 if (record->event.pressed) { 302 long_tap_timer = 1; 303 layer_on(_KANAN); 304 LED_layer_set(2); 305 } else { 306 check_tap_and_send_key(SEND_KANAN); 307 layer_off(_KANAN); 308 LED_default_set(); 309 } 310 break; 311 312 case TO_SCHOOL_IDOL_FESTIVAL: 313 if (record->event.pressed) { 314 LED_default_set(); 315 layer_on(_SCHOOL_IDOL_FESTIVAL); 316 } 317 break; 318 case RETURN_SCHOOL_IDOL_FESTIVAL: 319 if (record->event.pressed) { 320 layer_off(_SCHOOL_IDOL_FESTIVAL); 321 } 322 break; 323 } 324 325 return true; 326 } 327 328 329 void matrix_scan_user(void) { 330 331 if (long_tap_timer > 0) { 332 long_tap_timer++; 333 } 334 }