Mercurial > infra > home / .config/kbd/moonlander/keymap.c
changeset 95: |
f69061a590da |
parent: |
f82cb9ded8cf
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Sat, 07 Sep 2024 22:40:44 -0400 |
permissions: |
-rw-r--r-- |
description: |
moonlander concessions |
1 #include QMK_KEYBOARD_H 3 #include "keymap_french.h" 4 #include "keymap_spanish.h" 5 #include "keymap_hungarian.h" 6 #include "keymap_swedish.h" 7 // #include "keymap_br_abnt2.h" 8 #include "keymap_canadian_multilingual.h" 9 //#include "keymap_german_ch.h" 10 //#include "keymap_jp.h" 11 #include "keymap_korean.h" 12 #include "keymap_bepo.h" 13 #include "keymap_italian.h" 14 #include "keymap_slovenian.h" 15 #include "keymap_lithuanian_azerty.h" 16 #include "keymap_danish.h" 17 #include "keymap_norwegian.h" 18 #include "keymap_portuguese.h" 19 // #include "keymap_contributions.h" 20 #include "keymap_czech.h" 21 #include "keymap_romanian.h" 22 #include "keymap_russian.h" 23 #include "keymap_uk.h" 24 //#include "keymap_estonian.h" 25 //#include "keymap_belgian.h" 26 #include "keymap_us_international.h" 27 //#include "keymap_croatian.h" 28 //#include "keymap_turkish_q.h" 29 //#include "keymap_slovak.h" 31 #define KC_MAC_UNDO LGUI(KC_Z) 32 #define KC_MAC_CUT LGUI(KC_X) 33 #define KC_MAC_COPY LGUI(KC_C) 34 #define KC_MAC_PASTE LGUI(KC_V) 35 #define KC_PC_UNDO LCTL(KC_Z) 36 #define KC_PC_CUT LCTL(KC_X) 37 #define KC_PC_COPY LCTL(KC_C) 38 #define KC_PC_PASTE LCTL(KC_V) 39 #define ES_LESS_MAC KC_GRAVE 40 #define ES_GRTR_MAC LSFT(KC_GRAVE) 41 #define ES_BSLS_MAC ALGR(KC_6) 42 #define NO_PIPE_ALT KC_GRAVE 43 #define NO_BSLS_ALT KC_EQUAL 44 #define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc) 45 #define BP_NDSH_MAC ALGR(KC_8) 46 #define SE_SECT_MAC ALGR(KC_6) 47 #define MOON_LED_LEVEL LED_LEVEL 49 enum custom_keycodes { 50 RGB_SLD = ML_SAFE_RANGE, 53 enum tap_dance_codes { 65 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 66 [0] = LAYOUT_moonlander( 68 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, 69 KC_GRAVE, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, 71 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), 72 TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 74 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LALT, 75 KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, 77 KC_LSFT, KC_Z ,KC_X, KC_C, KC_V, KC_B, 78 KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_BSPC, 80 KC_UP, KC_DOWN, KC_LBRC, KC_LPRN, KC_SPC, KC_LCTL, 81 KC_LALT, KC_SPC, KC_RPRN, KC_RBRC, KC_LEFT, KC_RIGHT, 83 A(KC_X), C(KC_C), KC_LGUI, 84 ALT_T(KC_PASTE), RGB_MODE_FORWARD, QK_LOCK 86 [1] = LAYOUT_moonlander( 87 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_PSCREEN, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, 88 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, 89 KC_ESCAPE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, 90 KC_LSHIFT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_RSHIFT, 91 TT(2), TD(DANCE_6), KC_9, KC_0, KC_ENTER, MO(4), LT(4,KC_ENTER), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(3), 92 KC_LALT, KC_SPACE, KC_LCTRL, KC_DELETE, KC_SPACE, KC_BSPACE 94 [2] = LAYOUT_moonlander( 95 KC_NUMLOCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRANSPARENT, KC_NUMLOCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_NO, KC_SCROLLLOCK, KC_PAUSE, 96 KC_KP_DOT, KC_KP_ASTERISK, KC_KP_PLUS, KC_KP_7, KC_KP_8, KC_KP_9, KC_F7, KC_TRANSPARENT, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_PGUP, KC_PGDOWN, 97 KC_TRANSPARENT, KC_KP_SLASH, KC_KP_MINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_F8, KC_TRANSPARENT, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_HOME, KC_END, 98 TD(DANCE_7), KC_F11, KC_F12, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRANSPARENT, TD(DANCE_8), 99 KC_TRANSPARENT, KC_INSERT, KC_F9, KC_F10, KC_KP_0, KC_KP_ENTER, CAPS_WORD, KC_KP_0, KC_KP_DOT, KC_EQUAL, KC_TRANSPARENT, TO(0), 100 MT(MOD_LALT, KC_PGUP),KC_SPACE, MT(MOD_LCTL, KC_PGDOWN), KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT 102 [3] = LAYOUT_moonlander( 103 KC_TRANSPARENT, KC_TRANSPARENT, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_AUDIO_MUTE, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, RESET, 104 KC_TRANSPARENT, KC_MS_BTN5, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, KC_MS_WH_UP, KC_TRANSPARENT, KC_MS_WH_LEFT, KC_TRANSPARENT, KC_AUDIO_VOL_DOWN,KC_AUDIO_VOL_UP,KC_TRANSPARENT, KC_MEDIA_PREV_TRACK,KC_MEDIA_NEXT_TRACK, 105 KC_TRANSPARENT, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN, KC_TRANSPARENT, KC_MS_WH_RIGHT, LCTL(LSFT(KC_LEFT)),LCTL(KC_LEFT), LCTL(KC_RIGHT), LCTL(LSFT(KC_RIGHT)),KC_MEDIA_STOP, KC_MEDIA_PLAY_PAUSE, 106 MT(MOD_LSFT, KC_LBRACKET),KC_TRANSPARENT, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, KC_TRANSPARENT, KC_TRANSPARENT, LCTL(LSFT(KC_T)),LCTL(KC_PGUP), LCTL(KC_PGDOWN),KC_TRANSPARENT, MT(MOD_RSFT, KC_RBRACKET), 107 TO(0), TO(1), LGUI(LCTL(KC_LEFT)),LGUI(LCTL(KC_RIGHT)),KC_TRANSPARENT, KC_ASTG, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, 108 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, MT(MOD_RCTL, KC_INSERT),KC_SPACE, KC_TRANSPARENT 110 [4] = LAYOUT_moonlander( 111 KC_INSERT, KC_LCBR, KC_RCBR, KC_LBRACKET, KC_RBRACKET, KC_MINUS, KC_EQUAL, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 112 KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, 113 KC_BSPACE, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_8, 114 KC_RSPC, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LSPO, 115 KC_ENTER, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TO(0), TO(0), KC_LGUI, KC_9, KC_0, KC_HOME, KC_END, 116 OSM(MOD_LALT), KC_SPACE, OSM(MOD_LCTL), OSM(MOD_LCTL), KC_SPACE, OSM(MOD_LALT) 124 extern rgb_config_t rgb_matrix_config; 126 void keyboard_post_init_user(void) { 131 const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = { 132 [0] = { {188,255,255}, {188,255,255}, {188,255,255}, {151,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {25,255,255}, {152,255,255}, {7,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {152,255,255}, {25,255,255}, {152,255,255}, {7,255,255} }, 134 [1] = { {188,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {0,245,245}, {102,255,255}, {151,255,255}, {25,255,255}, {151,255,255}, {25,255,255}, {102,255,255}, {25,255,255}, {25,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {25,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {25,255,255}, {151,255,255}, {0,245,245}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {0,245,245}, {102,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {25,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {151,255,255}, {25,255,255}, {151,255,255}, {25,255,255} }, 136 [2] = { {41,255,255}, {102,255,255}, {0,0,0}, {188,255,255}, {151,255,255}, {188,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {25,255,255}, {188,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {151,255,255}, {0,0,255}, {151,255,255}, {188,255,255}, {188,255,255}, {0,0,255}, {151,255,255}, {0,0,255}, {151,255,255}, {188,255,255}, {151,255,255}, {0,0,255}, {151,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {151,255,255}, {0,0,0}, {151,255,255}, {41,255,255}, {188,255,255}, {25,255,255}, {25,255,255}, {188,255,255}, {151,255,255}, {188,255,255}, {25,255,255}, {25,255,255}, {0,0,0}, {0,0,0}, {0,0,0}, {102,255,255}, {102,255,255}, {102,255,255}, {41,255,255}, {102,255,255}, {151,255,255}, {0,0,255}, {151,255,255}, {102,255,255}, {102,255,255}, {0,0,255}, {151,255,255}, {0,0,255}, {151,255,255}, {41,255,255}, {151,255,255}, {0,0,255}, {151,255,255}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {41,255,255} }, 138 [3] = { {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {151,255,255}, {0,0,0}, {25,255,255}, {25,255,255}, {0,0,0}, {25,255,255}, {0,245,245}, {188,255,255}, {74,255,255}, {25,255,255}, {188,255,255}, {0,245,245}, {74,255,255}, {74,255,255}, {25,255,255}, {188,255,255}, {0,245,245}, {188,255,255}, {74,255,255}, {25,255,255}, {0,0,0}, {0,0,0}, {188,255,255}, {188,255,255}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {41,255,255}, {41,255,255}, {0,245,245}, {0,245,245}, {0,0,0}, {152,255,255}, {0,0,0}, {0,245,245}, {255,245,245}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {151,255,255}, {25,255,255}, {0,0,0}, {0,0,0}, {41,255,255}, {74,255,255}, {25,255,255}, {0,0,0}, {41,255,255}, {41,255,255}, {74,255,255}, {25,255,255}, {0,0,0}, {0,0,0}, {0,0,0}, {151,255,255}, {0,0,0}, {0,0,0}, {188,255,255}, {188,255,255}, {0,0,0}, {0,0,0}, {151,255,255}, {0,0,0} }, 140 [4] = { {188,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {25,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {25,255,255}, {151,255,255}, {25,255,255}, {25,255,255}, {151,255,255}, {151,255,255}, {151,255,255}, {188,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {151,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {151,255,255}, {102,255,255}, {102,255,255}, {102,255,255}, {188,255,255}, {188,255,255}, {188,255,255}, {25,255,255}, {151,255,255}, {25,255,255}, {25,255,255} }, 144 void set_layer_color(int layer) { 145 for (int i = 0; i < DRIVER_LED_TOTAL; i++) { 147 .h = pgm_read_byte(&ledmap[layer][i][0]), 148 .s = pgm_read_byte(&ledmap[layer][i][1]), 149 .v = pgm_read_byte(&ledmap[layer][i][2]), 151 if (!hsv.h && !hsv.s && !hsv.v) { 152 rgb_matrix_set_color( i, 0, 0, 0 ); 154 RGB rgb = hsv_to_rgb( hsv ); 155 float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX; 156 rgb_matrix_set_color( i, f * rgb.r, f * rgb.g, f * rgb.b ); 161 void rgb_matrix_indicators_user(void) { 162 if (rawhid_state.rgb_control) { 165 if (keyboard_config.disable_layer_led) { return; } 166 switch (biton32(layer_state)) { 183 if (rgb_matrix_get_flags() == LED_FLAG_NONE) 184 rgb_matrix_set_color_all(0, 0, 0); 189 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 193 if (rawhid_state.rgb_control) { 196 if (record->event.pressed) { 206 bool is_press_action; 219 static tap dance_state[9]; 221 uint8_t dance_step(qk_tap_dance_state_t *state); 223 uint8_t dance_step(qk_tap_dance_state_t *state) { 224 if (state->count == 1) { 225 if (state->interrupted || !state->pressed) return SINGLE_TAP; 226 else return SINGLE_HOLD; 227 } else if (state->count == 2) { 228 if (state->interrupted) return DOUBLE_SINGLE_TAP; 229 else if (state->pressed) return DOUBLE_HOLD; 230 else return DOUBLE_TAP; 236 void on_dance_0(qk_tap_dance_state_t *state, void *user_data); 237 void dance_0_finished(qk_tap_dance_state_t *state, void *user_data); 238 void dance_0_reset(qk_tap_dance_state_t *state, void *user_data); 240 void on_dance_0(qk_tap_dance_state_t *state, void *user_data) { 241 if(state->count == 3) { 242 tap_code16(LCTL(KC_GRAVE)); 243 tap_code16(LCTL(KC_GRAVE)); 244 tap_code16(LCTL(KC_GRAVE)); 246 if(state->count > 3) { 247 tap_code16(LCTL(KC_GRAVE)); 251 void dance_0_finished(qk_tap_dance_state_t *state, void *user_data) { 252 dance_state[0].step = dance_step(state); 253 switch (dance_state[0].step) { 254 case SINGLE_TAP: register_code16(LCTL(KC_GRAVE)); break; 255 case SINGLE_HOLD: register_code16(LCTL(KC_V)); break; 256 case DOUBLE_TAP: register_code16(LCTL(KC_GRAVE)); register_code16(LCTL(KC_GRAVE)); break; 257 case DOUBLE_SINGLE_TAP: tap_code16(LCTL(KC_GRAVE)); register_code16(LCTL(KC_GRAVE)); 261 void dance_0_reset(qk_tap_dance_state_t *state, void *user_data) { 263 switch (dance_state[0].step) { 264 case SINGLE_TAP: unregister_code16(LCTL(KC_GRAVE)); break; 265 case SINGLE_HOLD: unregister_code16(LCTL(KC_V)); break; 266 case DOUBLE_TAP: unregister_code16(LCTL(KC_GRAVE)); break; 267 case DOUBLE_SINGLE_TAP: unregister_code16(LCTL(KC_GRAVE)); break; 269 dance_state[0].step = 0; 271 void on_dance_1(qk_tap_dance_state_t *state, void *user_data); 272 void dance_1_finished(qk_tap_dance_state_t *state, void *user_data); 273 void dance_1_reset(qk_tap_dance_state_t *state, void *user_data); 275 void on_dance_1(qk_tap_dance_state_t *state, void *user_data) { 276 if(state->count == 3) { 281 if(state->count > 3) { 286 void dance_1_finished(qk_tap_dance_state_t *state, void *user_data) { 287 dance_state[1].step = dance_step(state); 288 switch (dance_state[1].step) { 289 case SINGLE_TAP: register_code16(KC_9); break; 290 case SINGLE_HOLD: register_code16(LCTL(KC_X)); break; 291 case DOUBLE_TAP: register_code16(KC_9); register_code16(KC_9); break; 292 case DOUBLE_SINGLE_TAP: tap_code16(KC_9); register_code16(KC_9); 296 void dance_1_reset(qk_tap_dance_state_t *state, void *user_data) { 298 switch (dance_state[1].step) { 299 case SINGLE_TAP: unregister_code16(KC_9); break; 300 case SINGLE_HOLD: unregister_code16(LCTL(KC_X)); break; 301 case DOUBLE_TAP: unregister_code16(KC_9); break; 302 case DOUBLE_SINGLE_TAP: unregister_code16(KC_9); break; 304 dance_state[1].step = 0; 306 void on_dance_2(qk_tap_dance_state_t *state, void *user_data); 307 void dance_2_finished(qk_tap_dance_state_t *state, void *user_data); 308 void dance_2_reset(qk_tap_dance_state_t *state, void *user_data); 310 void on_dance_2(qk_tap_dance_state_t *state, void *user_data) { 311 if(state->count == 3) { 316 if(state->count > 3) { 321 void dance_2_finished(qk_tap_dance_state_t *state, void *user_data) { 322 dance_state[2].step = dance_step(state); 323 switch (dance_state[2].step) { 324 case SINGLE_TAP: register_code16(KC_0); break; 325 case SINGLE_HOLD: register_code16(LCTL(KC_C)); break; 326 case DOUBLE_TAP: register_code16(KC_0); register_code16(KC_0); break; 327 case DOUBLE_SINGLE_TAP: tap_code16(KC_0); register_code16(KC_0); 331 void dance_2_reset(qk_tap_dance_state_t *state, void *user_data) { 333 switch (dance_state[2].step) { 334 case SINGLE_TAP: unregister_code16(KC_0); break; 335 case SINGLE_HOLD: unregister_code16(LCTL(KC_C)); break; 336 case DOUBLE_TAP: unregister_code16(KC_0); break; 337 case DOUBLE_SINGLE_TAP: unregister_code16(KC_0); break; 339 dance_state[2].step = 0; 341 void on_dance_3(qk_tap_dance_state_t *state, void *user_data); 342 void dance_3_finished(qk_tap_dance_state_t *state, void *user_data); 343 void dance_3_reset(qk_tap_dance_state_t *state, void *user_data); 345 void on_dance_3(qk_tap_dance_state_t *state, void *user_data) { 346 if(state->count == 3) { 347 tap_code16(LALT(KC_SPACE)); 348 tap_code16(LALT(KC_SPACE)); 349 tap_code16(LALT(KC_SPACE)); 351 if(state->count > 3) { 352 tap_code16(LALT(KC_SPACE)); 356 void dance_3_finished(qk_tap_dance_state_t *state, void *user_data) { 357 dance_state[3].step = dance_step(state); 358 switch (dance_state[3].step) { 359 case SINGLE_TAP: register_code16(LALT(KC_SPACE)); break; 360 case SINGLE_HOLD: register_code16(KC_LGUI); break; 361 case DOUBLE_TAP: register_code16(LALT(KC_SPACE)); register_code16(LALT(KC_SPACE)); break; 362 case DOUBLE_SINGLE_TAP: tap_code16(LALT(KC_SPACE)); register_code16(LALT(KC_SPACE)); 366 void dance_3_reset(qk_tap_dance_state_t *state, void *user_data) { 368 switch (dance_state[3].step) { 369 case SINGLE_TAP: unregister_code16(LALT(KC_SPACE)); break; 370 case SINGLE_HOLD: unregister_code16(KC_LGUI); break; 371 case DOUBLE_TAP: unregister_code16(LALT(KC_SPACE)); break; 372 case DOUBLE_SINGLE_TAP: unregister_code16(LALT(KC_SPACE)); break; 374 dance_state[3].step = 0; 376 void on_dance_4(qk_tap_dance_state_t *state, void *user_data); 377 void dance_4_finished(qk_tap_dance_state_t *state, void *user_data); 378 void dance_4_reset(qk_tap_dance_state_t *state, void *user_data); 380 void on_dance_4(qk_tap_dance_state_t *state, void *user_data) { 381 if(state->count == 3) { 382 tap_code16(LGUI(KC_2)); 383 tap_code16(LGUI(KC_2)); 384 tap_code16(LGUI(KC_2)); 386 if(state->count > 3) { 387 tap_code16(LGUI(KC_2)); 391 void dance_4_finished(qk_tap_dance_state_t *state, void *user_data) { 392 dance_state[4].step = dance_step(state); 393 switch (dance_state[4].step) { 394 case SINGLE_TAP: register_code16(LGUI(KC_2)); break; 395 case SINGLE_HOLD: layer_on(4); break; 396 case DOUBLE_TAP: register_code16(LGUI(KC_2)); register_code16(LGUI(KC_2)); break; 397 case DOUBLE_SINGLE_TAP: tap_code16(LGUI(KC_2)); register_code16(LGUI(KC_2)); 401 void dance_4_reset(qk_tap_dance_state_t *state, void *user_data) { 403 switch (dance_state[4].step) { 404 case SINGLE_TAP: unregister_code16(LGUI(KC_2)); break; 405 case SINGLE_HOLD: layer_off(4); break; 406 case DOUBLE_TAP: unregister_code16(LGUI(KC_2)); break; 407 case DOUBLE_SINGLE_TAP: unregister_code16(LGUI(KC_2)); break; 409 dance_state[4].step = 0; 411 void on_dance_5(qk_tap_dance_state_t *state, void *user_data); 412 void dance_5_finished(qk_tap_dance_state_t *state, void *user_data); 413 void dance_5_reset(qk_tap_dance_state_t *state, void *user_data); 415 void on_dance_5(qk_tap_dance_state_t *state, void *user_data) { 416 if(state->count == 3) { 417 tap_code16(KC_PSCREEN); 418 tap_code16(KC_PSCREEN); 419 tap_code16(KC_PSCREEN); 421 if(state->count > 3) { 422 tap_code16(KC_PSCREEN); 426 void dance_5_finished(qk_tap_dance_state_t *state, void *user_data) { 427 dance_state[5].step = dance_step(state); 428 switch (dance_state[5].step) { 429 case SINGLE_TAP: register_code16(KC_PSCREEN); break; 430 case SINGLE_HOLD: register_code16(LGUI(LSFT(KC_S))); break; 431 case DOUBLE_TAP: register_code16(KC_PSCREEN); register_code16(KC_PSCREEN); break; 432 case DOUBLE_SINGLE_TAP: tap_code16(KC_PSCREEN); register_code16(KC_PSCREEN); 436 void dance_5_reset(qk_tap_dance_state_t *state, void *user_data) { 438 switch (dance_state[5].step) { 439 case SINGLE_TAP: unregister_code16(KC_PSCREEN); break; 440 case SINGLE_HOLD: unregister_code16(LGUI(LSFT(KC_S))); break; 441 case DOUBLE_TAP: unregister_code16(KC_PSCREEN); break; 442 case DOUBLE_SINGLE_TAP: unregister_code16(KC_PSCREEN); break; 444 dance_state[5].step = 0; 446 void dance_6_finished(qk_tap_dance_state_t *state, void *user_data); 447 void dance_6_reset(qk_tap_dance_state_t *state, void *user_data); 449 void dance_6_finished(qk_tap_dance_state_t *state, void *user_data) { 450 dance_state[6].step = dance_step(state); 451 switch (dance_state[6].step) { 452 case SINGLE_TAP: layer_move(0); break; 453 case SINGLE_HOLD: layer_on(4); break; 454 case DOUBLE_TAP: layer_move(0); break; 455 case DOUBLE_SINGLE_TAP: layer_move(0); break; 459 void dance_6_reset(qk_tap_dance_state_t *state, void *user_data) { 461 switch (dance_state[6].step) { 462 case SINGLE_HOLD: layer_off(4); break; 464 dance_state[6].step = 0; 466 void on_dance_7(qk_tap_dance_state_t *state, void *user_data); 467 void dance_7_finished(qk_tap_dance_state_t *state, void *user_data); 468 void dance_7_reset(qk_tap_dance_state_t *state, void *user_data); 470 void on_dance_7(qk_tap_dance_state_t *state, void *user_data) { 471 if(state->count == 3) { 476 if(state->count > 3) { 481 void dance_7_finished(qk_tap_dance_state_t *state, void *user_data) { 482 dance_state[7].step = dance_step(state); 483 switch (dance_state[7].step) { 484 case SINGLE_TAP: register_code16(KC_LCBR); break; 485 case SINGLE_HOLD: register_code16(KC_LSHIFT); break; 486 case DOUBLE_TAP: register_code16(KC_LCBR); register_code16(KC_LCBR); break; 487 case DOUBLE_SINGLE_TAP: tap_code16(KC_LCBR); register_code16(KC_LCBR); 491 void dance_7_reset(qk_tap_dance_state_t *state, void *user_data) { 493 switch (dance_state[7].step) { 494 case SINGLE_TAP: unregister_code16(KC_LCBR); break; 495 case SINGLE_HOLD: unregister_code16(KC_LSHIFT); break; 496 case DOUBLE_TAP: unregister_code16(KC_LCBR); break; 497 case DOUBLE_SINGLE_TAP: unregister_code16(KC_LCBR); break; 499 dance_state[7].step = 0; 501 void on_dance_8(qk_tap_dance_state_t *state, void *user_data); 502 void dance_8_finished(qk_tap_dance_state_t *state, void *user_data); 503 void dance_8_reset(qk_tap_dance_state_t *state, void *user_data); 505 void on_dance_8(qk_tap_dance_state_t *state, void *user_data) { 506 if(state->count == 3) { 511 if(state->count > 3) { 516 void dance_8_finished(qk_tap_dance_state_t *state, void *user_data) { 517 dance_state[8].step = dance_step(state); 518 switch (dance_state[8].step) { 519 case SINGLE_TAP: register_code16(KC_RCBR); break; 520 case SINGLE_HOLD: register_code16(KC_RSHIFT); break; 521 case DOUBLE_TAP: register_code16(KC_RCBR); register_code16(KC_RCBR); break; 522 case DOUBLE_SINGLE_TAP: tap_code16(KC_RCBR); register_code16(KC_RCBR); 526 void dance_8_reset(qk_tap_dance_state_t *state, void *user_data) { 528 switch (dance_state[8].step) { 529 case SINGLE_TAP: unregister_code16(KC_RCBR); break; 530 case SINGLE_HOLD: unregister_code16(KC_RSHIFT); break; 531 case DOUBLE_TAP: unregister_code16(KC_RCBR); break; 532 case DOUBLE_SINGLE_TAP: unregister_code16(KC_RCBR); break; 534 dance_state[8].step = 0; 537 qk_tap_dance_action_t tap_dance_actions[] = { 538 [DANCE_0] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_0, dance_0_finished, dance_0_reset), 539 [DANCE_1] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_1, dance_1_finished, dance_1_reset), 540 [DANCE_2] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_2, dance_2_finished, dance_2_reset), 541 [DANCE_3] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_3, dance_3_finished, dance_3_reset), 542 [DANCE_4] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_4, dance_4_finished, dance_4_reset), 543 [DANCE_5] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_5, dance_5_finished, dance_5_reset), 544 [DANCE_6] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_6_finished, dance_6_reset), 545 [DANCE_7] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_7, dance_7_finished, dance_7_reset), 546 [DANCE_8] = ACTION_TAP_DANCE_FN_ADVANCED(on_dance_8, dance_8_finished, dance_8_reset),