qmk_firmware

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

keymap.c (7336B)


      1 #include QMK_KEYBOARD_H
      2 
      3 extern keymap_config_t keymap_config;
      4 
      5 #define BASE 0
      6 #define META 1
      7 #define SYMB 2
      8 #define GAME 3
      9 #define RGB  4
     10 
     11 #ifdef RGBLIGHT_ENABLE
     12 //Following line allows macro to read current RGB settings
     13 extern rgblight_config_t rgblight_config;
     14 #endif
     15 
     16 enum custom_keycodes {
     17   RGB_RST = SAFE_RANGE,
     18   TAP_ANIM
     19 };
     20 
     21 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     22 
     23   /* BASE
     24    * ,------------------------------------------------.   ,------------------------------------------------.
     25    * | ESC  | Tab  |   Q  |   W  |   E  |   R  |  T   |   |  Y   |   U  |   I  |   O  |   P  |   [  | Bksp |
     26    * |------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
     27    * | Del  | RCtrl|   A  |   S  |   D  |   F  |  G   |   |  H   |   J  |   K  |   L  |   ;  |   ]  | Enter|
     28    * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
     29    * | RGB  | LSft |   Z  |   X  |   C  |   V  |  B   |   |  N   |   M  |   ,  |   .  |   /  |  UP  | RSft |
     30    * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
     31    * | LGUI | LCtrl|   `  |   \  | LAlt | META |Space |   |Space |   '  |   -  |   =  | LEFT | DOWN | RIGHT|
     32    * `------------------------------------------------'   `------------------------------------------------'
     33    */
     34   [BASE] = LAYOUT(
     35     KC_ESC,  KC_TAB,  KC_Q,   KC_W,    KC_E,    KC_R,     KC_T,   KC_Y,   KC_U,    KC_I,    KC_O,   KC_P,    KC_LBRC, KC_BSPC,
     36     KC_DEL,  KC_RCTL, KC_A,   KC_S,    KC_D,    KC_F,     KC_G,   KC_H,   KC_J,    KC_K,    KC_L,   KC_SCLN, KC_RBRC, KC_ENT,
     37     MO(RGB), 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,
     38     KC_LGUI, KC_LCTL, KC_GRV, KC_BSLS, KC_LALT, MO(META), KC_SPC, KC_SPC, KC_QUOT, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT
     39   ),
     40 
     41   /* META
     42    * ,------------------------------------------------.   ,------------------------------------------------.
     43    * | Reset|   1  |   2  |   3  |   4  |   5  |  [   |   |  ]   |   6  |   7  |   8  |   9  |   0  | Bksp |
     44    * |------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
     45    * | Del  |  F1  |      |Muhen | Henk |      |      |   | Left | Down |  Up  |Right |      |      | Enter|
     46    * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
     47    * | RGB  |  F2  |  F3  |  F4  |  F5  |  F6  |  {   |   |  }   |  F7  |  F8  |  F9  | F10  | F11  | F12  |
     48    * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
     49    * | LGUI | LCtrl|   `  |   \  | LAlt | META |Space |   |Space |   '  |   -  |   =  |      |      |      |
     50    * `------------------------------------------------'   `------------------------------------------------'
     51    */
     52   [META] = LAYOUT(
     53     QK_BOOT, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_LBRC,    KC_RBRC,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______,
     54     _______, KC_F1,   XXXXXXX, KC_INT5, KC_INT4, XXXXXXX, XXXXXXX,    KC_LEFT,    KC_DOWN, KC_UP,   KC_RGHT, XXXXXXX, XXXXXXX, _______,
     55     _______, KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   S(KC_LBRC), S(KC_RBRC), KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
     56     _______, _______, _______, _______, _______, _______, _______,    _______,    _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
     57   ),
     58 
     59   /* SYMB
     60    * ,------------------------------------------------.   ,------------------------------------------------.
     61    * | ESC  |   !  |   @  |   #  |   $  |   %  |  [   |   |  ]   |   ^  |   &  |   *  |   (  |   )  | Bksp |
     62    * |------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
     63    * | Del  |      |      |      |      |      |  (   |   |  )   |      |      |      |      |      | Enter|
     64    * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
     65    * | RGB  |      |      |      |      |      |  {   |   |  }   |      |      |      |      |  UP  | Sft  |
     66    * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
     67    * | LGUI | LCtrl|   `  |   \  | LAlt | META |Space |   |Space |   '  |   -  |   =  | LEFT | DOWN | RIGHT|
     68    * `------------------------------------------------'   `------------------------------------------------'
     69    */
     70   [SYMB] = LAYOUT(
     71     _______, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), KC_LBRC,    KC_RBRC,    S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), _______,
     72     _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_9),    S(KC_0),    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
     73     _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_LBRC), S(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______,
     74     _______, _______, _______, _______, _______, _______, _______,    _______,    _______, _______, _______, _______, _______, _______
     75   ),
     76 
     77   /* RGB
     78    * ,------------------------------------------------.   ,------------------------------------------------.
     79    * |      |      |      |      |      |      |      |   |      |      |      |      |      |      |      |
     80    * |------+------+------+------+------+------+------|   |-------------+------+------+------+------+------|
     81    * |      |      |      |      |      |      |      |   |      | TOG  | HUI  | SAI  | VAI  |HUANIM|      |
     82    * |------+------+------+------+------+------+------|   |------|------+------+------+------+------+------|
     83    * |      |      |      |      |      |      |      |   |      | MOD  | HUD  | SAD  | VAD  |QK_BOOT |      |
     84    * |------+------+------+------+------+------+------|   |------+------+------+------+------+------+------|
     85    * |      |      |      |      |      |      |      |   |      |      |      |      |      |=>RGB |      |
     86    * `------------------------------------------------'   `------------------------------------------------'
     87    */
     88   [RGB] = LAYOUT(
     89     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     90     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, TAP_ANIM,XXXXXXX,
     91     _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, RGB_RST, XXXXXXX,
     92     XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
     93   )
     94 
     95 };
     96 
     97 bool isTapAnim = false;
     98 
     99 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    100   switch (keycode) {
    101     case QK_UNDERGLOW_MODE_NEXT:
    102       if (record->event.pressed) {
    103         isTapAnim = false;
    104       }
    105       break;
    106     case RGB_RST:
    107       #ifdef RGBLIGHT_ENABLE
    108         if (record->event.pressed) {
    109           eeconfig_update_rgblight_default();
    110           rgblight_enable();
    111         }
    112       #endif
    113       break;
    114     case TAP_ANIM:
    115       if (record->event.pressed) {
    116         isTapAnim = !isTapAnim;
    117       }
    118       break;
    119   }
    120 
    121   if (isTapAnim) {
    122     rgblight_mode_noeeprom(1);
    123     uint16_t hue = (rgblight_config.hue + 5) % 360;
    124     rgblight_sethsv_noeeprom(hue, rgblight_config.sat, rgblight_config.val);
    125   }
    126 
    127   return true;
    128 }
    129