]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/planck/old_keymap_files/common_keymaps/keymap_joe.c
Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432)
[qmk_firmware.git] / keyboards / planck / old_keymap_files / common_keymaps / keymap_joe.c
1 #include "keymap.h"
2
3 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4 [0] = KEYMAP( /* Joe qwerty */
5   ESC,  Q,    W,    E,    R,    T,    Y,    U,    I,    O,    P,    MINS,
6   BSPC, A,    S,    D,    F,    G,    H,    J,    K,    L,    SCLN, ENTER,
7   FN7,  Z,    X,    C,    V,    B,    N,    M,    COMM, DOT,  SLSH, QUOT,
8   LCTL, LGUI, LALT, LSFT, FN1,    SPC,      FN0,  LEFT, UP,   DOWN, RGHT),
9 [1] = KEYMAP( /* Joe colemak */
10   ESC,  Q,    W,    F,    P,    G,    J,    L,    U,    Y,    SCLN, MINS,
11   BSPC, A,    R,    S,    T,    D,    H,    N,    E,    I,    O,    ENTER,
12   FN7,  Z,    X,    C,    V,    B,    K,    M,    COMM, DOT,  SLSH, QUOT,
13   LCTL, LGUI, LALT, LSFT, FN1,    SPC,      FN0,  LEFT, UP,   DOWN, RGHT),
14 [2] = KEYMAP( /* Joe UPPER */
15   F1,   F2,   F3,   F4,   F5,   F6,   F7,   F8,   F9,   F10,  F11,  F12,
16   DEL,  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
17   TRNS, TRNS, TRNS, TRNS, TRNS, MENU, CAPS, INS,  PSCR, TRNS, FN5,  FN6,
18   TRNS, TRNS, TRNS, TRNS, FN2,     TRNS,    FN0,  FN26, FN27, FN28, FN29),
19 [3] = KEYMAP( /* Joe LOWER */
20   GRV,  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN8,  FN9,  FN30,
21   BSPC, 1,    2,    3,    4,    5,    6,    7,    8,    9,    0,    TRNS,
22   BSLS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC, RBRC, TRNS, EQL,
23   TRNS, TRNS, TRNS, TRNS, FN1,     TRNS,    FN2,  HOME, PGUP, PGDN, END),
24 [4] = KEYMAP( /* Joe LOWER + UPPER */
25   FN3,  FN4,  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, SLEP,
26   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
27   TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
28   TRNS, TRNS, TRNS, TRNS, TRNS,     TRNS,   TRNS, MUTE, VOLD, VOLU, MPLY),
29 };
30
31 enum macro_id {
32     M_Q0,
33     M_Q1,
34     M_Q2
35 };
36
37 const uint16_t PROGMEM fn_actions[] = {
38     [0] = ACTION_LAYER_MOMENTARY(2),  // to Fn overlay
39     [1] = ACTION_LAYER_MOMENTARY(3),  // to Fn overlay
40     [2] = ACTION_LAYER_MOMENTARY(4),  // to Fn overlay
41
42     [3] = ACTION_DEFAULT_LAYER_SET(0), 
43     [4] = ACTION_DEFAULT_LAYER_SET(1),
44
45     [5] = ACTION_MODS_KEY(MOD_LCTL, KC_PGUP),
46     [6] = ACTION_MODS_KEY(MOD_LCTL, KC_PGDN),
47
48     /* tab on tap, shift on hold */
49     [7] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB),
50
51     [8] = ACTION_MACRO(M_Q0),
52     [9] = ACTION_MACRO(M_Q1),
53
54     [26] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_LEFT),
55     [27] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_UP),
56     [28] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_DOWN),
57     [29] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT, KC_RGHT),
58
59     [30] = ACTION_MACRO(M_Q2),
60 };
61
62 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
63 {
64     keyevent_t event = record->event;
65     switch (id) {
66         case M_Q0:
67             /* :( | ): */
68             return event.pressed ?
69                 MACRO( D(LSFT), T(P), T(9), T(SPC), T(SPC), T(0), T(P), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) :
70                 MACRO_NONE;
71         case M_Q1:
72             /* (: | :) */
73             return event.pressed ?
74                 MACRO( D(LSFT), T(9), T(P), T(SPC), T(SPC), T(P), T(0), U(LSFT), T(LEFT), T(LEFT), T(LEFT), END ) :
75                 MACRO_NONE;
76         case M_Q2:
77             /* :) */
78             return event.pressed ?
79                 MACRO( D(LSFT), T(P), T(0), U(LSFT), END ) :
80                 MACRO_NONE;
81     }
82     return MACRO_NONE;
83 }