qmk_firmware

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

keymap.c (3977B)


      1 #include QMK_KEYBOARD_H
      2 
      3 // Each layer gets a name for readability, which is then used in the keymap matrix below.
      4 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
      5 // Layer names don't all need to be of the same length, obviously, and you can also skip them
      6 // entirely and just use numbers.
      7 
      8 enum layer_names {
      9   _QWERTY,
     10   _COLEMAK,
     11   _DVORAK,
     12   _LOWER,
     13   _RAISE,
     14   _ADJUST
     15 };
     16 
     17 #define LOWER  MO(_LOWER)
     18 #define RAISE  MO(_RAISE)
     19 #define ADJUST MO(_ADJUST)
     20 
     21 #define QWERTY PDF(_QWERTY)
     22 #define COLEMAK PDF(_COLEMAK)
     23 #define DVORAK PDF(_DVORAK)
     24 
     25 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     26 
     27 [_QWERTY] = LAYOUT_all(
     28    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,            KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
     29    KC_ESC,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,   KC_PGUP, KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,
     30    KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_PGDN, KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT ,
     31    ADJUST,  KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC, KC_ENT,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     32 ),
     33 
     34 [_COLEMAK] = LAYOUT_all(
     35   KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,             KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC,
     36   KC_ESC,  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,   _______,  KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT,
     37   KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   _______,  KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT ,
     38   ADJUST,  KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC, _______,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     39 ),
     40 
     41 [_DVORAK] = LAYOUT_all(
     42   KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,             KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_BSPC,
     43   KC_ESC,  KC_A,    KC_O,    KC_E,    KC_U,    KC_I,   _______,  KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_SLSH,
     44   KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,   _______,  KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_ENT ,
     45   ADJUST,  KC_LCTL, KC_LALT, KC_LGUI, LOWER,   KC_SPC, _______,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
     46 ),
     47 
     48 [_LOWER] = LAYOUT_all(
     49   KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,          KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
     50   KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   _______, KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
     51   _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
     52   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
     53 ),
     54 
     55 [_RAISE] = LAYOUT_all(
     56   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,             KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL,
     57   KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   _______, KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
     58   _______, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  _______, KC_F12,  KC_NUHS, KC_NUBS, _______, _______, _______,
     59   _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
     60 ),
     61 
     62 [_ADJUST] =  LAYOUT_all(
     63   _______, QK_BOOT, _______, _______, _______, _______,          _______, _______, _______, _______, _______, KC_DEL,
     64   _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, _______, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______,
     65   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
     66   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
     67 )
     68 };
     69 
     70 layer_state_t layer_state_set_user(layer_state_t state) {
     71     return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
     72 }
     73 
     74 bool encoder_update_user(uint8_t index, bool clockwise) {
     75     if (clockwise) {
     76       tap_code16(S(KC_VOLD));
     77     } else {
     78       tap_code16(KC_VOLU);
     79     }
     80     return true;
     81 }