qmk_firmware

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

keymap.c (3680B)


      1 #include QMK_KEYBOARD_H
      2 
      3 #ifdef RGBLIGHT_ENABLE
      4 //Following line allows macro to read current RGB settings
      5 extern rgblight_config_t rgblight_config;
      6 #endif
      7 
      8 #define JA_CLON KC_QUOT  // : and +
      9 #define JA_AT   KC_LBRC  // @ and `
     10 #define JA_HAT  KC_EQL   // ^ and ~
     11 #define JA_ENUN KC_INT1  // \ and _ (EN mark and UNder score)
     12 #define JA_ENVL KC_INT3  // \ and | (EN mark and Vertical Line)
     13 #define JA_LBRC KC_RBRC  // [ and {
     14 #define JA_RBRC KC_BSLS  // ] and }
     15 
     16 enum LAYER_NO {
     17   BASE = 0,
     18   META,
     19   CONF
     20 };
     21 
     22 enum CUSTOM_KEYCODES {
     23   RGB_RST = SAFE_RANGE,
     24   RGB_TYPE,
     25 };
     26 
     27 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     28 
     29   [BASE] = LAYOUT(
     30     KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,   KC_8,    KC_9,    KC_0,    KC_MINS, JA_HAT,   KC_INT3,
     31     KC_DEL,  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,   KC_U,    KC_I,    KC_O,    KC_P,    JA_AT,    JA_LBRC,
     32     KC_LCTL,          KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,   KC_J,    KC_K,    KC_L,    KC_SCLN, JA_CLON,  JA_RBRC,
     33     KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,   KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_INT1,  KC_RSFT,
     34                       MO(META),KC_LALT, KC_GRV,  KC_BSPC, KC_SPC,  KC_ENT, KC_BSPC, KC_INT5, KC_INT2, MO(META)
     35   ),
     36 
     37   [META] = LAYOUT(
     38     MO(CONF),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_INS,
     39     _______, KC_CAPS, _______, KC_UP,   _______, _______, _______, _______, _______, _______, KC_SCRL, KC_PSCR, KC_HOME, KC_END,
     40     _______,          KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, KC_PAUS, KC_PGUP, KC_UP,   KC_PGDN,
     41     _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT,
     42                       _______, _______, KC_RGUI, KC_DEL,  KC_ENT,  _______, KC_DEL,  KC_INT4, KC_LGUI, _______
     43   ),
     44 
     45   [CONF] = LAYOUT(
     46     _______, RGB_TYPE,UG_NEXT,  UG_VALU, UG_SATU, UG_HUEU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     47     RGB_RST, UG_TOGG, UG_PREV,  UG_VALD, UG_SATD, UG_HUED, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     48     XXXXXXX,          XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     49     XXXXXXX,          XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     50                       XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
     51   )
     52 };
     53 
     54 bool enableLEDTypeAnime = false;
     55 
     56 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     57   switch(keycode) {
     58     case RGB_RST:
     59       #ifdef RGBLIGHT_ENABLE
     60         if (record->event.pressed) {
     61           eeconfig_update_rgblight_default();
     62           rgblight_enable();
     63         }
     64       #endif
     65       break;
     66     case QK_UNDERGLOW_MODE_NEXT:
     67       #ifdef RGBLIGHT_ENABLE
     68           if (record->event.pressed) {
     69             enableLEDTypeAnime = false;
     70             rgblight_step();
     71           }
     72       #endif
     73       return false;
     74     case RGB_TYPE:
     75       #ifdef RGBLIGHT_ENABLE
     76         if (record->event.pressed) {
     77           rgblight_enable_noeeprom();
     78           rgblight_mode_noeeprom(1);
     79           enableLEDTypeAnime = !enableLEDTypeAnime;
     80         }
     81       #endif
     82       return false;
     83     default:
     84       break;
     85   }
     86   #ifdef RGBLIGHT_ENABLE
     87     if(enableLEDTypeAnime) {
     88       rgblight_mode_noeeprom(1);
     89       uint16_t hue = (rgblight_config.hue + 5) % 360;
     90       rgblight_sethsv_noeeprom(hue, rgblight_config.sat, rgblight_config.val);
     91     }
     92   #endif
     93     return true;
     94 }