qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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 }