keymap.c (7787B)
1 #include QMK_KEYBOARD_H 2 #include "keymap_japanese.h" 3 4 5 #ifdef RGBLIGHT_ENABLE 6 //Following line allows macro to read current RGB settings 7 extern rgblight_config_t rgblight_config; 8 #endif 9 10 // Each layer gets a name for readability, which is then used in the keymap matrix below. 11 // The underscores don't mean anything - you can have a layer called STUFF or any other name. 12 // Layer names don't all need to be of the same length, obviously, and you can also skip them 13 // entirely and just use numbers. 14 enum layer_number { 15 _BASE = 0, 16 _NUMPAD, 17 _LOWER, 18 _RAISE, 19 _ADJUST, 20 }; 21 22 enum custom_keycodes { 23 BASE = SAFE_RANGE, 24 NUMPAD, 25 KANJI, 26 LOWER, 27 RAISE, 28 ADJUST, 29 RGBRST 30 }; 31 32 enum tapdances{ 33 TD_CODO = 0, 34 // TD_MNUB, 35 }; 36 37 // Layer Mode aliases 38 #define KC_LOWER LOWER 39 #define KC_RAISE RAISE 40 #define KC_ADJST ADJUST 41 #define KC_DLNP NUMPAD //DF(_NUMPAD) 42 #define KC_DLBS BASE //DF(_BASE) 43 44 #define KC_ZSFT LSFT_T(KC_Z) 45 #define KC_MNSF LSFT_T(KC_MINS) 46 #define KC_ESCT LCTL_T(KC_ESC) 47 #define KC_TBAL LALT_T(KC_TAB) 48 #define KC_11SF LSFT_T(KC_F11) 49 #define KC_ALAP LALT_T(KC_APP) 50 #define KC_JEQL LSFT(KC_MINS) 51 #define KC_WLCK LALT(KC_L) 52 #define KC_SFEQ LSFT(KC_MINS) 53 #define KC_SFPL LSFT(KC_SCLN) 54 #define KC_SFAS LSFT(KC_QUOT) 55 56 #define KC_CODO TD(TD_CODO) 57 // #define KC_MNUB TD(TD_MNUB) 58 59 tap_dance_action_t tap_dance_actions[] = { 60 [TD_CODO] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_DOT), 61 // [TD_MNUB] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, LSFT(JP_BSLS)), 62 }; 63 64 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 65 [_BASE] = LAYOUT( 66 //,----------------------------------. ,----------------------------------. 67 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 68 //|------+------+------+------+------| |------+------+------+------+------| 69 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, 70 //|------+------+------+------+------| |------+------+------+------+------| 71 KC_ZSFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_CODO, KC_UP, KC_MNSF, 72 //|------+------+------+------+------|------+------+------+------+------+------+------| 73 KC_ESCT, KC_TBAL, KC_LGUI, KC_LOWER, KC_BSPC, KC_BSPC, KC_SPC, KC_SPC, KC_RAISE, KC_LEFT, KC_DOWN, KC_RGHT 74 //|------+------+------+------+-------------+------+------+------+------+------+------| 75 ), 76 77 [_NUMPAD] = LAYOUT( 78 //,----------------------------------. ,----------------------------------. 79 KC_P7, KC_P8, KC_P9, KC_PAST, KC_NUM, KC_P7, KC_P8, KC_P9, KC_PAST, KC_NUM, 80 //|------+------+------+------+------| |------+------+------+------+------| 81 KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS, 82 //|------+------+------+------+------| |------+------+------+------+------| 83 KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_QUOT, 84 //|------+------+------+------+------|------+------+------+------+------+------+------| 85 KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_SPC, KC_DEL, KC_SPC, KC_DLBS, KC_P0, KC_PDOT, KC_SFEQ, KC_BSPC 86 //|------+------+------+------+-------------+------+------+------+------+------+------| 87 ), 88 89 [_LOWER] = LAYOUT( 90 //,----------------------------------. ,----------------------------------. 91 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MINS, KC_EQL, JP_YEN, KC_LBRC, KC_RBRC, 92 //|------+------+------+------+------| |------+------+------+------+------| 93 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_SCLN, KC_QUOT, KC_BSLS, 94 //|------+------+------+------+------| |------+------+------+------+------| 95 KC_11SF, KC_F12, KC_DLNP, KANJI, KC_ENT, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, JP_BSLS, 96 //|------+------+------+------+------|------+------+------+------+------+------+------| 97 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 98 //|------+------+------+------+-------------+------+------+------+------+------+------| 99 ), 100 101 [_RAISE] = LAYOUT( 102 //,----------------------------------. ,----------------------------------. 103 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 104 //|------+------+------+------+------| |------+------+------+------+------| 105 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_QUOT, KC_4, KC_5, KC_6, KC_MINS, 106 //|------+------+------+------+------| |------+------+------+------+------| 107 KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_1, KC_2, KC_3, KC_PPLS, 108 //|------+------+------+------+------|------+------+------+------+------+------+------| 109 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WLCK, KC_TRNS, KC_0, KC_DOT, KC_JEQL 110 //|------+------+------+------+-------------+------+------+------+------+------+------| 111 ), 112 113 [_ADJUST] = LAYOUT( 114 //,----------------------------------. ,----------------------------------. 115 QK_BOOT, RGBRST, AG_NORM, AG_SWAP, KC_CAPS, XXXXXXX, MS_WHLL, MS_WHLU, KC_HOME, KC_PGUP, 116 //|------+------+------+------+------| |------+------+------+------+------| 117 UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, KC_SCRL, XXXXXXX, MS_WHLR, MS_WHLD, KC_END, KC_PGDN, 118 //|------+------+------+------+------| |------+------+------+------+------| 119 UG_NEXT, UG_HUED, UG_SATD, UG_VALD, KC_NUM, XXXXXXX, MS_BTN1, MS_BTN2, MS_UP, XXXXXXX, 120 //|------+------+------+------+------|------+------+------+------+------+------+------| 121 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MS_LEFT, MS_DOWN, MS_RGHT 122 //|------+------+------+------+-------------+------+------+------+------+------+------| 123 ) 124 }; 125 126 #define L_BASE _BASE 127 #define L_NUMPAD (1<<_NUMPAD) 128 129 static inline void update_change_layer(bool pressed, uint8_t layer1, uint8_t layer2, uint8_t layer3) { 130 131 pressed ? layer_on(layer1) : layer_off(layer1); 132 IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2) ? layer_on(layer3) : layer_off(layer3); 133 } 134 135 int RGB_current_mode; 136 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 137 138 bool result = false; 139 switch (keycode) { 140 case BASE: 141 if (record->event.pressed) { 142 default_layer_set(L_BASE); 143 } 144 break; 145 case NUMPAD: 146 if (record->event.pressed) { 147 default_layer_set(L_NUMPAD); 148 } 149 break; 150 case LOWER: 151 update_change_layer(record->event.pressed, _LOWER, _RAISE, _ADJUST); 152 break; 153 case RAISE: 154 update_change_layer(record->event.pressed, _RAISE, _LOWER, _ADJUST); 155 break; 156 case KANJI: 157 if (record->event.pressed) { 158 if (keymap_config.swap_lalt_lgui == false) { 159 register_code(KC_LNG2); 160 } else { 161 tap_code16(A(KC_GRV)); 162 } 163 } else { 164 unregister_code(KC_LNG2); 165 } 166 break; 167 #ifdef RGBLIGHT_ENABLE 168 //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 169 case QK_UNDERGLOW_MODE_NEXT: 170 if (record->event.pressed) { 171 rgblight_mode(RGB_current_mode); 172 rgblight_step(); 173 RGB_current_mode = rgblight_config.mode; 174 } 175 break; 176 case RGBRST: 177 if (record->event.pressed) { 178 eeconfig_update_rgblight_default(); 179 rgblight_enable(); 180 RGB_current_mode = rgblight_config.mode; 181 } 182 break; 183 #endif 184 default: 185 result = true; 186 break; 187 } 188 189 return result; 190 } 191 192 void matrix_init_user(void) { 193 #ifdef RGBLIGHT_ENABLE 194 RGB_current_mode = rgblight_config.mode; 195 #endif 196 }