qmk_firmware

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

keymap.c (3372B)


      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 enum LAYER_NO {
      9   BASE = 0,
     10   META,
     11   CONF
     12 };
     13 
     14 enum CUSTOM_KEYCODES {
     15   RGB_RST = SAFE_RANGE,
     16   RGB_TYPE,
     17 };
     18 
     19 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     20 
     21   [BASE] = LAYOUT(
     22     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_EQL,  KC_BSLS,
     23     KC_DEL,  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_RBRC,
     24     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_GRV,
     25     KC_LSFT,          KC_Z,    KC_X,    KC_C,     KC_V,    KC_B,    KC_N,   KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT,
     26                       MO(META),KC_LALT, KC_LGUI,  KC_ENT,  KC_SPC,  KC_ENT, KC_BSPC, KC_RGUI, KC_RALT, MO(META)
     27   ),
     28 
     29   [META] = LAYOUT(
     30     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,
     31     _______, KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, KC_SCRL, KC_PSCR, KC_HOME, KC_END,
     32     _______,          _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS, KC_PGUP, KC_UP,   KC_PGDN,
     33     _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT,
     34                       _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
     35   ),
     36 
     37   [CONF] = LAYOUT(
     38     _______, RGB_TYPE,UG_NEXT,  UG_VALU, UG_SATU, UG_HUEU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     39     RGB_RST, UG_TOGG, UG_PREV,  UG_VALD, UG_SATD, UG_HUED, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     40     XXXXXXX,          XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     41     XXXXXXX,          XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
     42                       XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
     43   )
     44 };
     45 
     46 bool enableLEDTypeAnime = false;
     47 
     48 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     49   switch(keycode) {
     50     case RGB_RST:
     51       #ifdef RGBLIGHT_ENABLE
     52         if (record->event.pressed) {
     53           eeconfig_update_rgblight_default();
     54           rgblight_enable();
     55         }
     56       #endif
     57       break;
     58     case QK_UNDERGLOW_MODE_NEXT:
     59       #ifdef RGBLIGHT_ENABLE
     60           if (record->event.pressed) {
     61             enableLEDTypeAnime = false;
     62             rgblight_step();
     63           }
     64       #endif
     65       return false;
     66     case RGB_TYPE:
     67       #ifdef RGBLIGHT_ENABLE
     68         if (record->event.pressed) {
     69           rgblight_enable_noeeprom();
     70           rgblight_mode_noeeprom(1);
     71           enableLEDTypeAnime = !enableLEDTypeAnime;
     72         }
     73       #endif
     74       return false;
     75     default:
     76       break;
     77   }
     78   #ifdef RGBLIGHT_ENABLE
     79     if(enableLEDTypeAnime) {
     80       rgblight_mode_noeeprom(1);
     81       uint16_t hue = (rgblight_config.hue + 5) % 360;
     82       rgblight_sethsv_noeeprom(hue, rgblight_config.sat, rgblight_config.val);
     83     }
     84   #endif
     85 
     86   return true;
     87 }