qmk_firmware

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

keymap.c (9416B)


      1 #include QMK_KEYBOARD_H
      2 #include "version.h"
      3 
      4 #define BASE 0 // default layer
      5 #define SYMB 1 // symbols
      6 #define MDIA 2 // media keys
      7 
      8 enum custom_keycodes {
      9   PLACEHOLDER = SAFE_RANGE, // ensure these codes start after the highest keycode defined in Quantum
     10   VRSN,
     11 };
     12 
     13 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     14 /* Keymap 0: Basic layer
     15  *
     16  * ,-----------------------------------------.                    ,-----------------------------------------.
     17  * |   =  |   1  |   2  |   3  |   4  |   5  |                    |   6  |   7  |   8  |   9  |   0  |  -   |
     18  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     19  * | Del  |  '"  |   ,  |   .  |   P  |   Y  |                    |   F  |   G  |   C  |   R  |   L  |  \   |
     20  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     21  * | BkSp |   A  |   O  |   E  |   U  |   I  |                    |   D  |   H  |   T  |   N  | S/L2 |//Cmd |
     22  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     23  * |LShift|;/Ctrl|   Q  |   J  |   K  |   X  |                    |   B  |   M  |   W  |   V  |Z/Ctrl|RShift|
     24  * |------+------+------+------+------+------'                    `------+------+------+------+------+------|
     25  * |Grv/L1|   =  |AltShf| Left | Right|                                  |  Up  | Down |   [  |   ]  | ~L1  |
     26  * `----------------------------------'                                  `----------------------------------'
     27  *                                      ,-------------.  ,-------------.
     28  *                                      | App  | LGui |  | Alt  | ^/Esc|
     29  *                               ,------|------|------|  |------+------+------.
     30  *                               |      |      | Home |  | PgUp |      |      |
     31  *                               | Space|Backsp|------|  |------|  Tab |Enter |
     32  *                               |      |ace   | End  |  | PgDn |      |      |
     33  *                               `--------------------'  `--------------------'
     34  */
     35 [BASE] = LAYOUT(  // layer 0 : default
     36         // left hand
     37           KC_EQL,             KC_1,           KC_2,     KC_3,     KC_4,  KC_5,
     38           KC_DEL,          KC_QUOT,        KC_COMM,   KC_DOT,     KC_P,  KC_Y,
     39           KC_BSPC,            KC_A,           KC_O,     KC_E,     KC_U,  KC_I,
     40           KC_LSFT,  CTL_T(KC_SCLN),           KC_Q,     KC_J,     KC_K,  KC_X,
     41   LT(SYMB,KC_GRV),          KC_EQL,  LALT(KC_LSFT),  KC_LEFT,  KC_RGHT,
     42                                                                       ALT_T(KC_APP),  KC_LGUI,
     43                                                                                       KC_HOME,
     44                                                              KC_SPC,        KC_BSPC,   KC_END,
     45         // right hand
     46                              KC_6,   KC_7,     KC_8,     KC_9,            KC_0,         KC_MINS,
     47                              KC_F,   KC_G,     KC_C,     KC_R,            KC_L,         KC_BSLS,
     48                              KC_D,   KC_H,     KC_T,     KC_N,  LT(MDIA, KC_S),  GUI_T(KC_SLSH),
     49                              KC_B,   KC_M,     KC_W,     KC_V,     CTL_T(KC_Z),         KC_RSFT,
     50                                     KC_UP,  KC_DOWN,  KC_LBRC,         KC_RBRC,          TT(SYMB),
     51           KC_RALT,  CTL_T(KC_ESC),
     52           KC_PGUP,
     53           KC_PGDN, KC_TAB, KC_ENT
     54     ),
     55 /* Keymap 1: Symbol Layer
     56  *
     57  * ,-----------------------------------------.                    ,-----------------------------------------.
     58  * |Versn |  F1  |  F2  |  F3  |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |
     59  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     60  * |      |   !  |   @  |   {  |   }  |   |  |                    |  Up  |   7  |   8  |   9  |   *  |  F12 |
     61  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     62  * |      |   #  |   $  |   (  |   )  |   `  |                    | Down |   4  |   5  |   6  |   +  |      |
     63  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
     64  * |      |   %  |   ^  |   [  |   ]  |   ~  |                    |   &  |   1  |   2  |   3  |   \  |      |
     65  * |------+------+------+------+------+------'                    `------+------+------+------+------+------|
     66  * |QK_BOOT |      |      |      |      |                                  |      |   .  |   0  |   =  |      |
     67  * `----------------------------------'                                  `----------------------------------'
     68  *                                      ,-------------.  ,-------------.
     69  *                                      |      |      |  |      |      |
     70  *                               ,------|------|------|  |------+------+------.
     71  *                               |      |      |      |  |      |      |      |
     72  *                               |      |      |------|  |------|      |      |
     73  *                               |      |      |      |  |      |      |      |
     74  *                               `--------------------'  `--------------------'
     75  */
     76 // SYMBOLS
     77 [SYMB] = LAYOUT(
     78        // left hand
     79           VRSN,    KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,
     80        KC_TRNS,  KC_EXLM,    KC_AT,  KC_LCBR,  KC_RCBR,  KC_PIPE,
     81        KC_TRNS,  KC_HASH,   KC_DLR,  KC_LPRN,  KC_RPRN,   KC_GRV,
     82        KC_TRNS,  KC_PERC,  KC_CIRC,  KC_LBRC,  KC_RBRC,  KC_TILD,
     83        QK_BOOT,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
     84                                                          KC_TRNS,  KC_TRNS,
     85                                                                    KC_TRNS,
     86                                                KC_TRNS,  KC_TRNS,  KC_TRNS,
     87        // right hand
     88                 KC_F6,      KC_F7,   KC_F8, KC_F9,  KC_F10,   KC_F11,
     89                 KC_UP,       KC_7,    KC_8,  KC_9, KC_ASTR,   KC_F12,
     90                 KC_DOWN,     KC_4,    KC_5,  KC_6, KC_PLUS,  KC_TRNS,
     91                 KC_AMPR,     KC_1,    KC_2,  KC_3, KC_BSLS,  KC_TRNS,
     92                           KC_TRNS,  KC_DOT,  KC_0,  KC_EQL,  KC_TRNS,
     93       KC_TRNS,  KC_TRNS,
     94       KC_TRNS,
     95       KC_TRNS,  KC_TRNS,  KC_TRNS
     96 ),
     97 /* Keymap 2: Media and mouse keys
     98  * ,-----------------------------------------.                    ,-----------------------------------------.
     99  * |      |      |      |      |      |      |                    |      |      |      |      |      |      |
    100  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
    101  * |      |      |      | MsUp |      |      |                    |      |      |      |      |      |      |
    102  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
    103  * |      |      |MsLeft|MsDown|MsRght|      |                    |      |      |      |      |      | Play |
    104  * |------+------+------+------+------+------|                    |------+------+------+------+------+------|
    105  * |      |      |      |      |      |      |                    |      |      | Prev | Next |      |      |
    106  * |------+------+------+------+------+------'                    `------+------+------+------+------+------|
    107  * |      |      |      | Lclk | Rclk |                                  | VolUp| VolDn| Mute |      |      |
    108  * `----------------------------------'                                  `----------------------------------'
    109  *                                      ,-------------.  ,-------------.
    110  *                                      |      |      |  |      |      |
    111  *                               ,------|------|------|  |------+------+------.
    112  *                               |      |      |      |  |      |      |Brwser|
    113  *                               |      |      |------|  |------|      |Back  |
    114  *                               |      |      |      |  |      |      |      |
    115  *                               `--------------------'  `--------------------'
    116  *
    117  */
    118 // MEDIA AND MOUSE
    119 [MDIA] = LAYOUT(
    120        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
    121        KC_TRNS,  KC_TRNS,  KC_TRNS,  MS_UP,    KC_TRNS,  KC_TRNS,
    122        KC_TRNS,  KC_TRNS,  MS_LEFT,  MS_DOWN,  MS_RGHT,  KC_TRNS,
    123        KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
    124        KC_TRNS,  KC_TRNS,  KC_TRNS,  MS_BTN1,  MS_BTN2,
    125                                                          KC_TRNS,  KC_TRNS,
    126                                                                    KC_TRNS,
    127                                                KC_TRNS,  KC_TRNS,  KC_TRNS,
    128     // right hand
    129                 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
    130                 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
    131                 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_MPLY,
    132                 KC_TRNS,  KC_TRNS,  KC_MPRV,  KC_MNXT,  KC_TRNS,  KC_TRNS,
    133                           KC_VOLU,  KC_VOLD,  KC_MUTE,  KC_TRNS,  KC_TRNS,
    134       KC_TRNS,  KC_TRNS,
    135       KC_TRNS,
    136       KC_TRNS,  KC_TRNS,  KC_WBAK
    137 ),
    138 };
    139 
    140 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    141   switch (keycode) {
    142     case VRSN:
    143       if (record->event.pressed) {
    144         SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
    145       }
    146       return false;
    147       break;
    148   }
    149   return true;
    150 }