qmk_firmware

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

keymap.c (9951B)


      1 // using as reference
      2 // https://docs.qmk.fm/#/keymap
      3 
      4 // thanks to atlacat, hailbreno, itsaferbie and weeheavy...
      5 
      6 // and special thanks to  AGausmann and drashna for the layer-activated RGB underglow
      7 // https://www.reddit.com/r/olkb/comments/6t1vdu/update_layeractivated_rgb_underglow/
      8 // https://github.com/AGausmann/qmk_firmware/blob/agausmann-v3.x/keyboards/nyquist/keymaps/agausmann/keymap.c
      9 
     10 #include QMK_KEYBOARD_H
     11 
     12 /*
     13 * Each layer gets a name for readability.
     14 * The underscores don't mean anything - you can
     15 * have a layer called STUFF or any other name.
     16 * Layer names don't all need to be of the same
     17 * length, and you can also skip them entirely
     18 * and just use numbers.
     19 *
     20 */
     21 #define BL 0     // Base Layer
     22 #define FL 1     // Function Layer
     23 #define NL 2     // Numpad Layer
     24 #define RL 3     // RGB Layer
     25 
     26 /*
     27 * Let's give an easier name to the RGB modes
     28 * and assign the ones we want to the different layer
     29 * these will then be used by the function below
     30 *
     31 */
     32 #define RGB_STA RGB_M_P   //rgb static
     33 #define RGB_BRE RGB_M_B   //rgb breathe
     34 #define RGB_RAI RGB_M_R   //rgb rainbow
     35 #define RGB_SWI RGB_M_SW  //rgb swirl
     36 #define RGB_SNA RGB_M_SN  //rgb snake
     37 #define RGB_KNI RGB_M_K   //rgb knight
     38 #define RGB_GRA RGB_M_G   //rgb gradient
     39 #define RGB_XMS RGB_M_X   //rgb christmas
     40 //
     41 #define RGB_BL_MODE    rgblight_mode_noeeprom(3)              //rgb mode for BL layer
     42 #define RGB_BL_LIGHT   rgblight_sethsv_noeeprom(HSV_TURQUOISE)   //rgb light for BL layer
     43 //
     44 #define RGB_FL_MODE    rgblight_mode_noeeprom(1)             //rgb mode for FL layer
     45 #define RGB_FL_LIGHT   rgblight_sethsv_noeeprom(HSV_ORANGE)      //rgb light for FL layer
     46 //
     47 #define RGB_NL_MODE    rgblight_mode_noeeprom(12)             //rgb mode for NL layer
     48 #define RGB_NL_LIGHT   rgblight_sethsv_noeeprom(HSV_TURQUOISE)       //rgb light for NL layer
     49 //
     50 #define RGB_RL_MODE    rgblight_mode_noeeprom(22)             //rgb mode for RL layer
     51 #define RGB_RL_LIGHT   rgblight_sethsv_noeeprom(HSV_RED)         //rgb light for RL layer
     52 
     53 
     54 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     55 
     56   /* Keymap BL: Base Layer (Default Layer)
     57    *
     58    * ,-----------------------------------------------------------.
     59    * | ' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp |
     60    * |-----------------------------------------------------------|
     61    * | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] |enter|
     62    * |------------------------------------------------------     |
     63    * | Caps  | a | s | d | f | g | h | j | k | l | ; | ' | # |   |
     64    * |-----------------------------------------------------------|
     65    * |Shft| < | z | x | c | v | b | n | m | , | . | / |  Shift   |
     66    * |-----------------------------------------------------------|
     67    * |Ctrl|Gui |Alt | Space  | FN |  Space  |Alt |Gui | NL |Ctrl |
     68    * `-----------------------------------------------------------'
     69    */
     70    [BL] = LAYOUT_60_iso_split(
     71 	//  1          2          3          4          5          6          7          8          9          10         11         12         13         14
     72 	    KC_GRV,    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_BSPC,
     73         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,
     74         KC_CAPS,   KC_A,      KC_S,      KC_D,      KC_F,      KC_G,      KC_H,      KC_J,      KC_K,      KC_L,      KC_SCLN,   KC_QUOT,   KC_NUHS,   KC_ENT,
     75         KC_LSFT,   KC_NUBS,   KC_Z,      KC_X,      KC_C,      KC_V,      KC_B,      KC_N,      KC_M,      KC_COMM,   KC_DOT,    KC_SLSH,   KC_RSFT,
     76         KC_LCTL,   KC_LGUI,   KC_LALT,   KC_SPC,    MO(FL),    KC_SPC,    KC_RALT,   KC_RGUI,   TO(NL),    KC_RCTL),
     77 
     78   /* Keymap FL: Function Layer
     79    *
     80    * ,-----------------------------------------------------------.
     81    * |ESC|F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|  DEL  |
     82    * |-----------------------------------------------------------|
     83    * |     |   |   |   |   |   |   |   |   |   |prt|   |   |     |
     84    * |------------------------------------------------------     |
     85    * |       |m l|m d|m u|m r|   |   | l | d | u | r |   |   |   |
     86    * |-----------------------------------------------------------|
     87    * |    |   |   |   |   |mb1|mb2|   |hm |pgd|pgu|end|          |
     88    * |-----------------------------------------------------------|
     89    * |    |    |    |        |    |         |    |    |    |     |
     90    * `-----------------------------------------------------------'
     91    */
     92    [FL] = LAYOUT_60_iso_split(
     93 	//  1          2          3          4          5          6          7          8          9          10         11         12         13         14
     94 	    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_DEL,
     95         _______ ,  _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   KC_PSCR,   _______,   _______,
     96         _______,   MS_LEFT,MS_DOWN,MS_UP,  MS_RGHT,_______,  _______,   KC_LEFT,   KC_DOWN,   KC_UP,     KC_RIGHT,  _______,   _______,   _______,
     97         _______,   _______,   _______,   _______,   _______,   MS_BTN1,MS_BTN2,_______,   KC_HOME,   KC_PGDN,   KC_PGUP,   KC_END,    _______,
     98         _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______),
     99 
    100   /* Keymap NL: Numpad Layer
    101    *
    102    * ,-----------------------------------------------------------.
    103    * |BL | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |   |   |       |
    104    * |-----------------------------------------------------------|
    105    * |     | 4 | 5 | 6 | * | / |   | 4 | 5 | 6 | * | / | ] |     |
    106    * |------------------------------------------------------     |
    107    * |       | 7 | 8 | 9 | + | - |   | 1 | 2 | 3 | + | - |   |   |
    108    * |-----------------------------------------------------------|
    109    * |    |   | 0 | , | . | = |   |   | 0 | , | . | = |      |
    110    * |-----------------------------------------------------------|
    111    * |    |    |    |        |    |         |    |    | RL |     |
    112    * `-----------------------------------------------------------'
    113    */
    114    [NL] = LAYOUT_60_iso_split(
    115 	//  1          2         3          4          5          6          7          8          9        10        11        12         13         14
    116 	    TG(NL),    KC_P1,    KC_P2,     KC_P3,     KC_P4,     KC_P5,     KC_P6,     KC_P7,     KC_P8,   KC_P9,    KC_P0,     KC_PPLS,   KC_PMNS,   _______,
    117         _______,   KC_P4,    KC_P5,     KC_P6,     KC_PAST,   KC_PSLS,   _______,   KC_P4,     KC_P5,   KC_P6,    KC_PAST,   KC_PSLS,   _______,
    118         _______,   KC_P7,    KC_P8,     KC_P9,     KC_PPLS,   KC_PMNS,   _______,   KC_P1,     KC_P2,   KC_P3,    KC_PPLS,   KC_PMNS,   _______,   _______,
    119         _______,   KC_P0,    KC_COMM,   KC_DOT,    KC_PEQL,   KC_PSLS,   KC_PMNS,   _______,   KC_P0,   KC_COMM,  KC_DOT,    KC_PEQL,   _______,
    120         _______,   _______,  _______,   _______,   MO(FL),    _______,   _______,   _______,   TG(RL),  _______),
    121 
    122   /* Keymap RL: RGB Layer
    123    *
    124    * ,-----------------------------------------------------------.
    125    * |BL |   |   |   |   |   |   |   |   |   |   |   |   |Reset  |
    126    * |-----------------------------------------------------------|
    127    * |     |tog|mod|hui|hud|   |   |sai|sad|vai|vad|   |   |     |
    128    * |------------------------------------------------------     |
    129    * |       |sta|bre|rai|swi|   |   |sna|kni|gra|xms|   |   |   |
    130    * |-----------------------------------------------------------|
    131    * |    |   |bd |bt |bi |bs |   |   |   |   |   |   |          |
    132    * |-----------------------------------------------------------|
    133    * |    |    |    |        |    |         |    |    | BL |     |
    134    * `-----------------------------------------------------------'
    135    */
    136    [RL] = LAYOUT_60_iso_split(
    137 	//  1          2          3          4          5          6          7          8          9          10         11         12         13         14
    138 	    TG(RL),    _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   QK_BOOT,
    139         _______,   UG_TOGG,   UG_NEXT,   UG_HUEU,   UG_HUED,   _______,   _______,   UG_SATU,   UG_SATD,   UG_VALU,   UG_VALD,   _______,   _______,
    140         _______,   RGB_STA,   RGB_BRE,   RGB_RAI,   RGB_SWI,   _______,   _______,   RGB_SNA,   RGB_KNI,   RGB_GRA,   RGB_XMS,   _______,   _______,   _______,
    141         _______,   BL_DOWN,   BL_TOGG,   BL_UP,     BL_STEP,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,
    142         _______,   _______,   _______,   _______,   MO(FL),    _______,   _______,   _______,   TO(BL),    _______),
    143 
    144 
    145 };
    146 
    147 // always enable num lock on layer NL and disable on other layers
    148 // thanks to spidey3 & Erovia on discord
    149 layer_state_t layer_state_set_user(layer_state_t state) {
    150     switch (get_highest_layer(state)) {
    151     case NL:
    152         if (!host_keyboard_led_state().num_lock) {
    153              tap_code16(KC_NUM_LOCK);
    154         }
    155         break;
    156     default: //  for any other layers, or the default layer
    157         if (host_keyboard_led_state().num_lock) {
    158              tap_code16(KC_NUM_LOCK);
    159         }
    160         break;
    161     }
    162   return state;
    163 }
    164 
    165 // layer-activated RGB underglow
    166 
    167 void matrix_scan_user(void) {
    168 
    169   #ifdef RGBLIGHT_ENABLE
    170 
    171   static uint8_t old_layer = 1;
    172   uint8_t new_layer = get_highest_layer(layer_state);
    173 
    174   if (old_layer != new_layer) {
    175     switch (new_layer) {
    176       case BL:
    177           RGB_BL_MODE;
    178           RGB_BL_LIGHT;
    179         break;
    180       case FL:
    181           RGB_FL_MODE;
    182           RGB_FL_LIGHT;
    183         break;
    184       case NL:
    185           RGB_NL_MODE;
    186           RGB_NL_LIGHT;
    187         break;
    188       case RL:
    189           RGB_RL_MODE;
    190           RGB_RL_LIGHT;
    191         break;
    192     }
    193 
    194     old_layer = new_layer;
    195   }
    196 
    197   #endif //RGBLIGHT_ENABLE
    198 
    199 }