keymap.c (9608B)
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 extern uint8_t is_master; 11 12 // Each layer gets a name for readability, which is then used in the keymap matrix below. 13 // The underscores don't mean anything - you can have a layer called STUFF or any other name. 14 // Layer names don't all need to be of the same length, obviously, and you can also skip them 15 // entirely and just use numbers. 16 enum layer_number { 17 _QWERTY = 0, 18 _FLOCK, 19 _LOWER, 20 _RAISE, 21 _ADJUST, 22 }; 23 24 enum custom_keycodes { 25 RGB_RST = SAFE_RANGE, 26 SEND_SUM, 27 SEND_AVE, 28 SEND_CIF, 29 SEND_MAX, 30 SEND_MIN 31 }; 32 33 #define LOWER MO(_LOWER) 34 #define RAISE MO(_RAISE) 35 #define ADJUST MO(_ADJUST) 36 #define LWR_P0 LT(_LOWER, KC_P0) 37 #define RSE_DOT LT(_RAISE, KC_PDOT) 38 39 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 40 /* 41 * ,---. ,-----------------------. ,---------------------------. ,---------------. 42 * |PUp| |Esc| 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |Bsp| |Esc|F2 | = |Del| 43 * |---| ,-------------------------| |---------------------------| |---------------| 44 * |PDn| | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | |NLk| / | * | - | 45 * `---' ,--------------------------| |---------------------------| |---------------| 46 * | Caps | A | S | D | F | G | | H | J | K | L | ; | ' |Ent| | 7 | 8 | 9 | | 47 * ,---------------------------| |---------------------------| |-----------| + | 48 * | Shift | Z | X | C | V | B | | N | M | , | . | / |Up |Sft| | 4 | 5 | 6 | | 49 * `---------------------------| |---------------------------| |---------------| 50 * |Adjust| |Alt | Space |Lwr| |Rse| Space |Win|Lft|Dwn|Rgt| | 1 | 2 | 3 | | 51 * `------' `---------------' `---------------------------' |-----------|Ent| 52 * | 0 | . | | 53 * `---------------' 54 */ 55 [_QWERTY] = LAYOUT_with_setta21( 56 KC_PGUP, KC_ESC , KC_1 , KC_2 , KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_ESC, KC_F2, KC_EQL, KC_DEL, 57 KC_PGDN, KC_TAB , KC_Q , KC_W , KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 58 KC_LCTL, KC_A , KC_S , KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P7, KC_P8, KC_P9, 59 KC_LSFT, KC_Z , KC_X , KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_P4, KC_P5, KC_P6, KC_PPLS, 60 ADJUST , KC_LALT, KC_SPC, LOWER, RAISE, KC_SPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_P1, KC_P2, KC_P3, 61 LWR_P0, RSE_DOT, KC_PENT 62 ), 63 64 [_FLOCK] = LAYOUT_with_setta21( 65 TG(_FLOCK), KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, 66 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 67 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 68 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 69 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 70 _______, _______, _______ 71 ), 72 73 [_LOWER] = LAYOUT_with_setta21( 74 _______, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ESC, KC_F2, KC_EQL, KC_DEL, 75 _______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______, XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, 76 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, XXXXXXX, KC_UP, XXXXXXX, 77 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, KC_VOLU, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PPLS, 78 _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_MPLY, XXXXXXX, KC_DOWN, XXXXXXX, 79 LOWER, RAISE, KC_PENT 80 ), 81 82 [_RAISE] = LAYOUT_with_setta21( 83 _______, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_ESC, KC_F2, KC_EQL, KC_DEL, 84 _______, KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, SEND_MIN, SEND_MAX, SEND_CIF, SEND_AVE, 85 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, KC_F7, KC_F8, KC_F9, 86 _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, _______, KC_F4, KC_F5, KC_F6, SEND_SUM, 87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_F3, 88 _______, _______, KC_RPRN 89 ), 90 91 [_ADJUST] = LAYOUT_with_setta21( /* Base */ 92 TG(_FLOCK), QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, 93 _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, 94 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_NEXT, XXXXXXX, LCA(KC_DEL), LALT(KC_PSCR), KC_PSCR, XXXXXXX, UG_SATD, UG_SATU, XXXXXXX, 95 _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_VALD, UG_VALU, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, XXXXXXX, UG_HUED, UG_HUEU, XXXXXXX, UG_TOGG, 96 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_VALD, UG_VALU, XXXXXXX, 97 _______, _______, UG_NEXT 98 ) 99 }; 100 101 layer_state_t layer_state_set_user(layer_state_t state) { 102 #ifdef RGBLIGHT_ENABLE 103 switch (get_highest_layer(state)) { 104 case _FLOCK: 105 rgblight_sethsv_range(HSV_YELLOW, 0, 2); 106 break; 107 case _LOWER: 108 rgblight_sethsv_range(HSV_BLUE, 0, 2); 109 break; 110 case _RAISE: 111 rgblight_sethsv_range(HSV_RED, 0, 2); 112 break; 113 case _ADJUST: 114 rgblight_sethsv_range(HSV_PURPLE, 0, 2); 115 break; 116 default: // for any other layers, or the default layer 117 rgblight_sethsv_range( 0, 0, 0, 0, 2); 118 break; 119 } 120 rgblight_set_effect_range( 2, 6); 121 #endif 122 return state; 123 } 124 125 int RGB_current_mode; 126 bool process_record_user(uint16_t keycode, keyrecord_t *record) { 127 128 bool result = false; 129 switch (keycode) { 130 case SEND_SUM: 131 if (record->event.pressed) { 132 SEND_STRING("=SUM("); 133 } 134 break; 135 case SEND_AVE: 136 if (record->event.pressed) { 137 SEND_STRING("=AVERAGE("); 138 } 139 break; 140 case SEND_CIF: 141 if (record->event.pressed) { 142 SEND_STRING("=COUNTIF("); 143 } 144 break; 145 case SEND_MAX: 146 if (record->event.pressed) { 147 SEND_STRING("=MAX("); 148 } 149 break; 150 case SEND_MIN: 151 if (record->event.pressed) { 152 SEND_STRING("=MIN("); 153 } 154 break; 155 #ifdef RGBLIGHT_ENABLE 156 case QK_UNDERGLOW_MODE_NEXT: 157 if (record->event.pressed) { 158 rgblight_mode(RGB_current_mode); 159 rgblight_step(); 160 RGB_current_mode = rgblight_config.mode; 161 } 162 break; 163 case RGB_RST: 164 if (record->event.pressed) { 165 eeconfig_update_rgblight_default(); 166 rgblight_enable(); 167 RGB_current_mode = rgblight_config.mode; 168 } 169 break; 170 #endif 171 default: 172 result = true; 173 break; 174 } 175 176 return result; 177 }