]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/planck/keymaps/matrixman/keymap.c
Adds support for Planck Rev 6 (#2666)
[qmk_firmware.git] / keyboards / planck / keymaps / matrixman / keymap.c
1 #pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
2 #include "planck.h"
3 #ifdef BACKLIGHT_ENABLE
4 #include "backlight.h"
5 #endif
6
7 // http://www.keyboard-layout-editor.com/#/gists/eb0696806831fc0d93c9
8
9 #define _PROSE 0
10 #define _SYMB_L 1
11 #define _SYMB_R 2
12 #define _NAV_L 3
13 #define _NAV_R 4
14 #define _NAV_ALT 5
15
16 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
17 [_PROSE] = {
18    {LT(_NAV_L,KC_Q), KC_W,  KC_E,      KC_R,        KC_T,         KC_DELETE, KC_BSPC,          KC_Y,       KC_U,    KC_I,     KC_O, LT(_NAV_R,KC_P)}
19   ,{KC_A,            KC_S,  KC_D,      KC_F,        KC_G,     CTL_T(KC_ESC), CTL_T(KC_SCLN),   KC_H,       KC_J,    KC_K,     KC_L,     KC_QUOT}
20   ,{SFT_T(KC_Z),     KC_X,  KC_C,      KC_V,        KC_B,     ALT_T(KC_TAB), ALT_T(KC_INS),    KC_N,       KC_M,    KC_COMM,  KC_DOT,   SFT_T(KC_SLSH)}
21   ,{KC_LCTRL,     KC_LGUI,  KC_FN0,   KC_TAB, LT(_SYMB_L, KC_ESC), KC_LSFT,  KC_LSFT,  LT(_SYMB_R,KC_SPC), KC_BSPC, KC_FN0,   KC_RCTRL, KC_ENT}
22 },
23     // accessed via the left symb-layer key, includes a semicolon where the right symb-layer key was
24 [_SYMB_L] = {
25    {KC_GRV,         KC_TILD,    KC_ASTR,    KC_AMPR,          KC_SLSH,    LSFT(KC_COMM), LSFT(KC_DOT),  KC_BSLS,  KC_7,    KC_8,    KC_9,    KC_PIPE}
26   ,{KC_UNDS,        KC_CIRC,    KC_PERC,    KC_DLR,           KC_LPRN,    KC_LBRC,       KC_RBRC,       KC_RPRN,  KC_4,    KC_5,    KC_6,    KC_MINS}
27   ,{KC_EQL ,        KC_HASH,    KC_AT,      KC_EXLM,          KC_LCBR,    KC_TRNS,       KC_TRNS,       KC_RCBR,  KC_1,    KC_2,    KC_3,    KC_PLUS}
28   ,{LSFT(KC_QUOT),  KC_TRNS,    KC_COMM,    LSFT(KC_SLSH),    KC_TRNS,    KC_TRNS,       KC_TRNS,       KC_SCLN,  KC_0,    KC_DOT,  KC_DOT,  KC_TRNS}
29 },
30     // accessed via the right symb-layer key, includes a colon where the left symb-layer key was
31 [_SYMB_R] = {
32    {KC_GRV,         KC_TILD,    KC_ASTR,    KC_AMPR,          KC_SLSH,    LSFT(KC_COMM), LSFT(KC_DOT), KC_BSLS,  KC_7,    KC_8,    KC_9,    KC_PIPE}
33   ,{KC_UNDS,        KC_CIRC,    KC_PERC,    KC_DLR,           KC_LPRN,    KC_LBRC,       KC_RBRC,      KC_RPRN,  KC_4,    KC_5,    KC_6,    KC_MINS}
34   ,{KC_EQL ,        KC_HASH,    KC_AT,      KC_EXLM,          KC_LCBR,    KC_TRNS,       KC_TRNS,      KC_RCBR,  KC_1,    KC_2,    KC_3,    KC_PLUS}
35   ,{LSFT(KC_QUOT),  KC_TRNS,    KC_COMM,    LSFT(KC_SLSH),    KC_COLN,    KC_TRNS,       KC_TRNS,      KC_TRNS,  KC_0,    KC_DOT,  KC_TRNS, KC_TRNS}
36 },
37     // accessed via the left nav-layer key, includes a F10 where the right nav-layer key was
38 [_NAV_L] = {
39    {KC_TRNS,    KC_F2,    KC_F3,      KC_F4,         KC_F5,    RESET,      BL_STEP,    KC_F6,      KC_F7,      KC_F8,      KC_F9,      KC_F10}
40   ,{KC_BTN1,  KC_MS_L,    KC_MS_U,    KC_MS_D,       KC_MS_R,  KC_PSCREEN, KC_PAUSE,   KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_F11}
41   ,{KC_BTN2,  KC_BTN4,    KC_MS_WH_UP,KC_MS_WH_DOWN, KC_BTN5,  KC_TRNS,    KC_TRNS,    KC_HOME,    KC_PGDN,    KC_PGUP,    KC_END,     KC_F12}
42   ,{KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,       KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS}
43 },
44     // accessed via the right nav-layer key, includes a F1 where the left nav-layer key was
45 [_NAV_R] = {
46    {KC_F1,    KC_F2,      KC_F3,      KC_F4,         KC_F5,    RESET,      BL_STEP,    KC_F6,      KC_F7,      KC_F8,      KC_F9,      KC_TRNS}
47   ,{KC_BTN1,  KC_MS_L,    KC_MS_U,    KC_MS_D,       KC_MS_R,  KC_PSCREEN, KC_PAUSE,   KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_F11}
48   ,{KC_BTN2,  KC_BTN4,    KC_MS_WH_UP,KC_MS_WH_DOWN, KC_BTN5,  KC_TRNS,    KC_TRNS,    KC_HOME,    KC_PGDN,    KC_PGUP,    KC_END,     KC_F12}
49   ,{KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,       KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS}
50 },
51     // accessed via the lower alt keys, moves tab and delete to make alt+tab and ctrl+alt+del feel more standard
52 [_NAV_ALT] = {
53    {KC_F1,    KC_F2,      KC_F3,      KC_F4,         KC_F5,    RESET,      BL_STEP,    KC_F6,      KC_F7,      KC_F8,      KC_F9,      KC_DELETE}
54   ,{KC_TAB,   KC_MS_L,    KC_MS_U,    KC_MS_D,       KC_MS_R,  KC_PSCREEN, KC_PAUSE,   KC_LEFT,    KC_DOWN,    KC_UP,      KC_RGHT,    KC_F11}
55   ,{KC_BTN2,  KC_BTN4,    KC_MS_WH_UP,KC_MS_WH_DOWN, KC_BTN5,  KC_TRNS,    KC_TRNS,    KC_HOME,    KC_PGDN,    KC_PGUP,    KC_END,     KC_F12}
56   ,{KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,       KC_TRNS,  KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS}
57 }
58 };
59
60 const uint16_t PROGMEM fn_actions[] = {
61     [0] = ACTION_LAYER_MODS(_NAV_ALT, MOD_LALT)
62
63 };
64
65 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
66 {
67   // MACRODOWN only works in this function
68       switch(id) {
69         case 0:
70           if (record->event.pressed) {
71             register_code(KC_RSFT);
72             #ifdef BACKLIGHT_ENABLE
73               backlight_step();
74             #endif
75           } else {
76             unregister_code(KC_RSFT);
77           }
78         break;
79       }
80     return MACRO_NONE;
81 };