]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/planck/keymaps/yale/keymap.c
Adds support for Planck Rev 6 (#2666)
[qmk_firmware.git] / keyboards / planck / keymaps / yale / keymap.c
1 //
2
3 #pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
4 #include "planck.h"
5 #ifdef BACKLIGHT_ENABLE
6     #include "backlight.h"
7 #endif
8
9 // Each layer gets a name for readability, which is then used in the keymap matrix below.
10 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
11 // Layer names don't all need to be of the same length, obviously, and you can also skip them
12 // entirely and just use numbers.
13 #define _QWERTY 0
14 #define _NUM 5
15 #define _FUNC 6
16 #define _NAV 7
17
18 // Fillers to make layering more clear
19 #define _______ KC_TRNS
20 #define XXXXXXX KC_NO
21
22 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
23
24 /* _QWERTY
25  * ,-----------------------------------------------------------------------------------.
26  * | Esc  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | Bksp |
27  * |------+------+------+------+------+-------------+------+------+------+------+------|
28  * |Ctrl/Tab| A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
29  * |------+------+------+------+------+------|------+------+------+------+------+------|
30  * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Shift |
31  * |------+------+------+------+------+------+------+------+------+------+------+------|
32  * | Ctrl | Alt  | GUI  | GUI  |  Num |    Space    |  FN  |  GUI |  Alt | Ctrl | Enter|
33  * `-----------------------------------------------------------------------------------'
34  */
35 [_QWERTY] = {
36     {KC_ESC,        KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_BSPC},
37     {CTL_T(KC_TAB), KC_A,       KC_S,       KC_D,       KC_F,       KC_G,       KC_H,       KC_J,       KC_K,       KC_L,       KC_SCLN,    KC_QUOT},
38     {KC_LSFT,       KC_Z,       KC_X,       KC_C,       KC_V,       KC_B,       KC_N,       KC_M,       KC_COMM,    KC_DOT,     KC_SLSH,    KC_RSFT},
39     {KC_LCTL,       KC_LALT,    KC_LGUI,    KC_LGUI,    MO(_NUM),   KC_SPC,     KC_SPC,     MO(_FUNC),  KC_RGUI,    KC_RALT,    KC_RCTL,    KC_ENT}
40 },
41
42 /* _NUM
43  * ,-----------------------------------------------------------------------------------.
44  * |  ___ |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | ____ |
45  * |------+------+------+------+------+-------------+------+------+------+------+------|
46  * | Ctrl |   `  |  [   |  {   |  (   |  /   |  \   |   )  |   }  |   ]  |   -  |  =   |
47  * |------+------+------+------+------+------|------+------+------+------+------+------|
48  * | ____ |   !  |  @   |  #   |  $   |  %   |  ^   |  &   |  *   |   _  |   +  | ____ |
49  * |------+------+------+------+------+------+------+------+------+------+------+------|
50  * | ____ | ___  | ___  | ___  | XXXX |    ______   | ____ | ____ | ____ |  __  | ____ |
51  * `-----------------------------------------------------------------------------------'
52  */
53 [_NUM] = {
54     {_______,   KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       _______},
55     {KC_LCTL,   KC_GRV,     KC_LBRC,    KC_LCBR,    KC_LPRN,    KC_SLSH,    KC_BSLS,    KC_RPRN,    KC_RCBR,    KC_RBRC,    KC_MINS,    KC_EQL},
56     {_______,   KC_EXLM,    KC_AT,      KC_HASH,    KC_DLR,     KC_PERC,    KC_CIRC,    KC_AMPR,    KC_ASTR,    KC_UNDS,    KC_PLUS,    _______},
57     {_______,   _______,    _______,    _______,    _______,    _______,    _______,    MO(_NAV),   _______,    _______,    _______,    _______}
58 },
59
60 /* _FUNC
61  * ,-----------------------------------------------------------------------------------.
62  * | ____ |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  | ____ |
63  * |------+------+------+------+------+-------------+------+------+------+------+------|
64  * | ____ |Shift | Ctrl |  Alt |  GUI | ____ | Left | Down |  Up  |Right | Del  | ____ |
65  * |------+------+------+------+------+------|------+------+------+------+------+------|
66  * | ____ |Light | ____ | Vol- | Prev | Play | Mute | Next | Vol+ | ____ | ____ | ____ |
67  * |------+------+------+------+------+------+------+------+------+------+------+------|
68  * | ____ | ____ | ____ | ____ | ____ |    _____    | XXXX | ____ | ____ | ____ | ____ |
69  * `-----------------------------------------------------------------------------------'
70  */
71 [_FUNC] = {
72     {_______,   KC_1,       KC_2,       KC_3,       KC_4,       KC_5,       KC_6,       KC_7,       KC_8,       KC_9,       KC_0,       _______},
73     {_______,   KC_LSFT,    KC_LCTL,    KC_LALT,    KC_LGUI,    _______,    KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_DEL,     _______},
74     {_______,   M(0),       _______,    KC_VOLD,    KC_MPRV,    KC_MPLY,    KC_MUTE,    KC_MNXT,    KC_VOLU,    _______,    _______,    _______},
75     {_______,   _______,    _______,    _______,    MO(_NAV),   _______,    _______,    _______,    _______,    _______,    _______,    _______}
76 },
77
78 [_NAV] = {
79     {KC_MS_ACCEL2,  KC_FN1,     KC_FN2,     KC_FN3,     KC_FN4,     XXXXXXX,    XXXXXXX,        KC_WH_D,        KC_WH_U,    XXXXXXX,        XXXXXXX,    XXXXXXX},
80     {KC_MS_ACCEL1,  KC_MS_BTN4, KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1, XXXXXXX,    KC_MS_LEFT,     KC_MS_DOWN,     KC_MS_UP,   KC_MS_RIGHT,    XXXXXXX,    XXXXXXX},
81     {KC_MS_ACCEL0,  KC_FN9,     KC_FN10,    KC_FN11,    KC_FN12,    XXXXXXX,    XXXXXXX,        XXXXXXX,        XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX},
82     {XXXXXXX,       XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,    XXXXXXX,        XXXXXXX,        XXXXXXX,    XXXXXXX,        XXXXXXX,    XXXXXXX}
83 },
84
85 };
86
87 const uint16_t PROGMEM fn_actions[] = {
88
89 };
90
91 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
92 {
93     // MACRODOWN only works in this function
94             switch(id) {
95                 case 0:
96                     if (record->event.pressed) {
97                         register_code(KC_RSFT);
98                         #ifdef BACKLIGHT_ENABLE
99                             backlight_step();
100                         #endif
101                     } else {
102                         unregister_code(KC_RSFT);
103                     }
104                 break;
105             }
106         return MACRO_NONE;
107 };