qmk_firmware

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

keymap.c (5275B)


      1 #include QMK_KEYBOARD_H
      2 
      3 
      4 
      5 // Each layer gets a name for readability, which is then used in the keymap matrix below.
      6 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
      7 // Layer names don't all need to be of the same length, obviously, and you can also skip them
      8 // entirely and just use numbers.
      9 #define _QWERTY 0
     10 #define _NUMPAD 1
     11 #define _FN 2
     12 
     13 #define FN MO(_FN)
     14 
     15 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     16 /*
     17    * ,-----------------------------------------------------------.
     18    * |Esc~| 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |
     19    * |-----------------------------------------------------------|
     20    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  |
     21    * |-----------------------------------------------------------|
     22    * |FN     |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |
     23    * |-----------------------------------------------------------|
     24    * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| Shift    |
     25    * |-----------------------------------------------------------|
     26    * |Ctrl|Gui |Alt | NUM | Space |  Space |Alt |FN  |Menu |Ctrl |
     27    * `-----------------------------------------------------------'
     28    */
     29   /* Layer 0: Qwerty */
     30   [_QWERTY] = LAYOUT(
     31     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_BSPC,
     32     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, KC_BSLS,
     33         FN,   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,
     34     KC_LSFT,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,                   KC_RSFT,
     35     KC_LCTL,  KC_LGUI, KC_LALT, DF(_NUMPAD),          KC_SPC,                             KC_SPC,  KC_RALT,     FN,   KC_APP,  KC_RCTL
     36   ),
     37 
     38 /*
     39    * ,-----------------------------------------------------------.
     40    * |    |  |   |   |   |   |   |Nlck|  /|  *|  -|   |   |      |
     41    * |-----------------------------------------------------------|
     42    * |     |   |   |   |   |   |   |  7|  8|  9|  +|   |   |     |
     43    * |-----------------------------------------------------------|
     44    * |      |   |   |   |   |   |   |  4|  5|  6|Bspc|   |Return |
     45    * |-----------------------------------------------------------|
     46    * |        |   |   |   |   |   |   |  1|  2|  3|  .|          |
     47    * |-----------------------------------------------------------|
     48    * |    |    |    | QWE |       |      0 | .  |A_ON |A_OFF|    |
     49    * `-----------------------------------------------------------'
     50    */
     51 
     52   /* Layer 1: Numpad */
     53   [_NUMPAD] = LAYOUT(
     54     _______,  _______,  _______, _______,  _______,  _______,  _______,   KC_NUM,   KC_PSLS,  KC_PAST,    KC_MINUS,  _______, _______,  KC_BSPC,
     55     _______,  _______,  _______, _______,  _______,  _______,  _______,     KC_P7,  KC_P8,        KC_P9,    KC_PLUS,  _______, _______,   KC_BSLS,
     56     _______,  _______,  _______, _______,  _______,  _______,  _______,     KC_P4,  KC_P5,        KC_P6,    KC_BSPC, _______,          _______,
     57     _______,  _______,  _______, _______,  _______,  _______,  _______,     KC_P1,  KC_P2,        KC_P3,    KC_DOT,                   _______,
     58     _______,  _______,  _______,DF(_QWERTY),          _______,                 KC_P0,  KC_PDOT,      AU_ON,    AU_OFF, _______
     59   ),
     60 
     61 /*
     62    * ,-----------------------------------------------------------.
     63    * |  ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete|
     64    * |-----------------------------------------------------------|
     65    * | Caps|pUp| ^ |pDn|   |   |   |pUp| ^ |pDn|PSR|SLK|Pau|     |
     66    * |-----------------------------------------------------------|
     67    * |      | < | v | > |   |Hom|Hom| < | v | > |INS| DEL|       |
     68    * |-----------------------------------------------------------|
     69    * |        |   |   |   |   |End|End|   |Vo-|Vo+|VoX|          |
     70    * |-----------------------------------------------------------|
     71    * |    |    |    |     |       |        |    |     |    |     |
     72    * `-----------------------------------------------------------'
     73    */
     74 
     75   /* Layer 2: RAISE */
     76   [_FN] = LAYOUT(
     77      KC_GRV,    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,
     78     KC_CAPS,  KC_PGUP,    KC_UP, KC_PGDN,  _______,  _______,  _______,  KC_PGUP,    KC_UP,  KC_PGDN,    KC_PSCR, KC_SCRL,  KC_PAUS,  _______,
     79     _______,  KC_LEFT,  KC_DOWN,KC_RIGHT,  _______,  KC_HOME,  KC_HOME,  KC_LEFT,  KC_DOWN, KC_RIGHT,    KC_INS,  KC_DEL,             _______,
     80     _______,  _______,  _______, _______,  _______,  KC_END,   KC_END,   AU_TOGG,  KC_VOLD,  KC_VOLU,    KC_MUTE,                     _______,
     81     _______,  _______,  _______, _______,           _______,             _______,  _______,              _______, _______,  _______
     82   )
     83 
     84 };
     85 
     86 #ifdef AUDIO_ENABLE
     87 float tone_qwerty[][2]     = TONE_QWERTY;
     88 float tone_numpad[][2]     = TONE_NUMPAD;
     89 
     90 layer_state_t default_layer_state_set_user(layer_state_t state) {
     91     if (state == 1UL<<_QWERTY) {
     92       PLAY_SONG(tone_qwerty);
     93     } else if (state == 1UL<<_NUMPAD) {
     94       PLAY_SONG(tone_numpad);
     95     }    
     96     return state;
     97 }
     98 #endif