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