qmk_firmware

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

keymap.c (11200B)


      1 /*
      2  * ----------------------------------------------------------------------------
      3  * "THE BEER-WARE LICENSE" (Revision 42):
      4  * <https://github.com/Legonut> wrote this file.  As long as you retain this
      5  * notice you can do whatever you want with this stuff. If we meet some day, and
      6  * you think this stuff is worth it, you can buy me a beer in return. David Rauseo
      7  * ----------------------------------------------------------------------------
      8  */
      9 
     10 #include QMK_KEYBOARD_H
     11 
     12 /* Qwerty
     13  * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┐  ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┐
     14  * │ GESC │   1  │   2  │   3  │   4  │   5  │   -  │  │   =  │   6  │   7  │   8  │   9  │   0  │ BkSp │
     15  * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤  ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤
     16  * │ Tab  │   Q  │   W  │   E  │   R  │   T  │   [  │  │   ]  │   Y  │   U  │   I  │   O  │   P  │   \  │
     17  * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤  ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤
     18  * │FNCAPS│   A  │   S  │   D  │   F  │   G  │   (  │  │   )  │   H  │   J  │   K  │   L  │   ;  │   '  │
     19  * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤  ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤
     20  * │Shift │   Z  │   X  │   C  │   V  │   B  │   {  │  │   }  │   N  │   M  │   ,  │   .  │   /  │Enter │
     21  * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤  ├──────┼──────┼──────┼──────┼──────┼──────┼──────┤
     22  * │ Ctrl │  Win │  Alt │  RGB │ ADJ  │      │ DEL  │  │ Enter│      │  FN  │ Left │ Down │ Up   │Right │
     23  * └──────┴──────┴──────┴──────┴──────┤ Space├──────┤  ├──────┤ Space├──────┴──────┴──────┴──────┴──────┘
     24  *                                    │      │ DEL  │  │ Enter│      │
     25  *                                    └──────┴──────┘  └──────┴──────┘
     26  * ┌──────┬──────┬──────┬──────┬──────┐                              ┌──────┬──────┬──────┬──────┬──────┐
     27  * │Vol Dn│Vol Up│ Prev │ Play │ Next │                              │Vol Dn│Vol Up│ Prev │ Play │ Next │
     28  * └──────┴──────┴──────┴──────┴──────┘                              └──────┴──────┴──────┴──────┴──────┘
     29  */
     30 
     31 enum sol_layers {
     32     _QWERTY,
     33     _COLEMAK,
     34     _GAME,
     35     _FN,
     36     _ADJUST
     37 };
     38 
     39 enum sol_keycodes {
     40     // Disables touch processing
     41     TCH_TOG = SAFE_RANGE,
     42     MENU_BTN,
     43     MENU_UP,
     44     MENU_DN,
     45     RGB_RST
     46 };
     47 
     48 #define FN       MO(_FN)
     49 #define ADJUST   MO(_ADJUST)
     50 #define COLEMAK  DF(_COLEMAK)
     51 #define GAME     DF(_GAME)
     52 #define QWERTY   DF(_QWERTY)
     53 #define FN_CAPS  LT(_FN, KC_CAPS)
     54 
     55 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     56 
     57     [_QWERTY] = LAYOUT(
     58         QK_GESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_MINS,                  KC_EQL,  KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
     59         KC_TAB,   KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_LBRC,                  KC_RBRC, KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS,
     60         FN_CAPS,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_LPRN,                  KC_RPRN, KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
     61         KC_LSFT,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_LCBR,                  KC_RCBR, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SC_SENT,
     62         KC_LCTL,  KC_LGUI, KC_LALT, RM_TOGG, ADJUST,  KC_SPC,  KC_PGDN, KC_DEL, KC_ENT,  KC_PGUP, KC_SPC,  KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, KC_RCTL,
     63 
     64         KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV,                                                       KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV
     65     ),
     66 
     67     [_COLEMAK] = LAYOUT(
     68         _______, _______, _______, _______, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, _______,
     69         _______, KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    _______,                   _______, KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, _______,
     70         _______, KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    _______,                   _______, KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    _______,
     71         _______, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    _______,                   _______, KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, _______,
     72         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     73 
     74         _______, _______, _______, _______, _______,                                                       _______, _______, _______, _______, _______
     75     ),
     76 
     77     [_GAME] = LAYOUT(
     78         _______, _______, _______, _______, _______, _______, KC_F1,                     KC_F5,   _______, _______, _______, _______, _______, _______,
     79         _______, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_F2,                     KC_F6,   KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    _______,
     80         _______, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_F3,                     KC_F7,   KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, _______,
     81         _______, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_F4,                     KC_F8,   KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, _______,
     82         _______, KC_NO,   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     83 
     84         _______, _______, _______, _______, _______,                                                       _______, _______, _______, _______, _______
     85     ),
     86 
     87     [_FN] = LAYOUT(
     88         _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F11,                    KC_F12,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______,
     89         _______, KC_HOME, KC_UP,   KC_END,  _______, _______, _______,                   _______, _______, KC_HOME, KC_UP,   KC_END,  KC_PSCR, KC_PGUP,
     90         _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,                   _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS,  KC_PGDN,
     91         _______, AU_TOGG, MU_TOGG, MU_NEXT, _______, _______, _______,                   _______, _______, _______, _______, _______, _______, _______,
     92         _______, CK_TOGG,   CK_UP, CK_DOWN, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU,
     93 
     94         _______, _______, _______, _______, _______,                                                       _______, _______, _______, _______, _______
     95     ),
     96 
     97     [_ADJUST] = LAYOUT(
     98         _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F11,                    KC_F12,  KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  _______,
     99         _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______,                   _______, _______, KC_P7,   KC_P8,   KC_P9,   _______, _______,
    100         _______, RM_HUED, RM_VALD, RM_HUEU, RGB_RST, _______, DM_REC1,                   _______, _______, KC_P4,   KC_P5,   KC_P6,   _______, _______,
    101         _______, RM_SPDD, _______, RM_SPDU, _______, _______, DM_RSTP,                   _______, _______, KC_P1,   KC_P2,   KC_P3,   _______, GAME,
    102         _______, RM_PREV, RM_TOGG, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, KC_P0,   KC_PDOT, KC_NUM,  QWERTY,  COLEMAK,
    103 
    104         _______, _______, _______, _______, _______,                                                       _______, _______, _______, _______, _______
    105     ),
    106 
    107 };
    108 
    109 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    110     switch (keycode)
    111     {
    112         case MENU_BTN:
    113             if (record->event.pressed) {
    114                 rgb_menu_selection();
    115             }
    116             return false;
    117         case MENU_UP:
    118             if (record->event.pressed) {
    119                 rgb_menu_action(true);
    120             }
    121             return false;
    122         case MENU_DN:
    123             if (record->event.pressed) {
    124                 rgb_menu_action(false);
    125             }
    126             return false;
    127         case RGB_RST:
    128             if (record->event.pressed) {
    129                 eeconfig_update_rgb_matrix_default();
    130             }
    131             return false;
    132         case TCH_TOG:
    133             if (record->event.pressed) {
    134                 touch_encoder_toggle();
    135             }
    136             return false;  // Skip all further processing of this key
    137         default:
    138             return true;
    139     }
    140 }
    141 
    142 void render_layer_status(void) {
    143     // Host Keyboard Layer Status
    144     oled_write_P(PSTR("Layer"), false);
    145     switch (get_highest_layer(layer_state)) {
    146         case _QWERTY:
    147             oled_write_ln_P(PSTR("QWRTY"), false);
    148             break;
    149         case _COLEMAK:
    150             oled_write_ln_P(PSTR("Colemk"), false);
    151             break;
    152         case _GAME:
    153             oled_write_ln_P(PSTR("Game  "), false);
    154             break;
    155         case _FN:
    156             oled_write_ln_P(PSTR("FN   "), false);
    157             break;
    158         case _ADJUST:
    159             oled_write_ln_P(PSTR("Adjst"), false);
    160             break;
    161         default:
    162             oled_write_ln_P(PSTR("Undef"), false);
    163     }
    164 }
    165 
    166 #ifdef ENCODER_MAP_ENABLE
    167 const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
    168     [0]       = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
    169                   ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
    170     [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______),
    171                   ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
    172 };
    173 #endif