summaryrefslogtreecommitdiffstats
path: root/keyboard/jd45/keymaps/justin.c
blob: f261b5463352f116337fd1958f7dc2a0b4859915 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include "jd45.h"
#include "backlight.h"

/* JD45 keymap definition macro
 */
#define KEYMAP( \
    K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11, K12, K13, \
	K14, K15, K16, K17, K18, K19, K20, K21, K22, K23, K24, K25, \
	K26, K27, K28, K29, K30, K31, K32, K33, K34, K35, K36, K37, \
	K38, K39, K40, K41, K42, K43, K44, K45, K46, K47 \
) { \
    { KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K10, KC_##K11, KC_##K12, KC_##K13 }, \
    { KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_NO    }, \
    { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_NO    }, \
    { KC_##K38, KC_##K39, KC_##K40, KC_##K41, KC_##K42, KC_NO,    KC_##K43, KC_NO,    KC_##K44, KC_##K45, KC_##K46, KC_##K47, KC_NO    }  \
}

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP(
  ESC,  Q,    W,    F,    P,    G,    J,    L,    U,    Y,    SCLN, QUOT, BSPC,
  FN8,  A,    R,    S,    T,    D,    H,    N,    E,    I,    O,     ENT,
  LSFT, Z,    X,    C,    V,    B,    K,    M,    COMM, DOT,  SLSH,  FN6,
  FN4, LGUI, FN7, FN2,  FN1,  SPC,  FN5,  RALT,  FN3, FN0 ),
[1] = KEYMAP(
  TRNS, FN10, FN11, FN12, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, UP, DEL,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGUP, LEFT, RGHT,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, END,  PGDN, DOWN, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
[2] = KEYMAP(
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,    7,    8,    9,    0, TRNS, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC,    4,    5,    6,  DOT, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC,    1,    2,    3, BSLS, TRNS,
  TRNS,FN29, TRNS, TRNS, TRNS, PAUSE,  EQL, MINS, TRNS, TRNS ),
[3] = KEYMAP(
  TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS ),
[4] = KEYMAP(
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,    7,    8,    9,    0, TRNS, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, LBRC,    4,    5,    6,  DOT, TRNS,
  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RBRC,    1,    2,    3, BSLS, TRNS,
  TRNS,FN29, TRNS, TRNS, TRNS, PAUSE,  EQL, MINS, TRNS, TRNS ),
};

enum macro_id {
   PSWD1,
   PSWD2,
   PSWD3,
};

const uint16_t PROGMEM fn_actions[] = {
    [0] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_MINS),
    [1] = ACTION_LAYER_MOMENTARY(1),  // FN1
    [2] = ACTION_LAYER_MOMENTARY(2),  // FN2
    [3] = ACTION_LAYER_MOMENTARY(3),  // FN3
    [4] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_GRV),
    [5] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_RGUI),
    [6] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_CAPS),
    [7] = ACTION_LAYER_MODS(4, MOD_LSFT),  // FN4
    [8] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB),

    [10] = ACTION_MACRO(PSWD1),
    [11] = ACTION_MACRO(PSWD2),
    [12] = ACTION_MACRO(PSWD3),
    
    [29] = ACTION_BACKLIGHT_TOGGLE(),
    [30] = ACTION_BACKLIGHT_INCREASE(),
    [31] = ACTION_BACKLIGHT_DECREASE()
    
};

/*
 * Macro definition
 */
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
    switch (id) {
        case PSWD1:
            return (record->event.pressed ?
                    MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
                    MACRO_NONE );
        case PSWD2:
            return (record->event.pressed ?
                    MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
                    MACRO_NONE );
        case PSWD3:
            return (record->event.pressed ?
                    MACRO( I(0), T(1), T(2), T(3), T(4), T(5), T(6), T(7), T(8), T(ENT), END ) :
                    MACRO_NONE );
        //case VOLUP:
        //    return (record->event.pressed ?
        //            MACRO( D(VOLU), U(VOLU), END ) :
        //            MACRO_NONE );
        //case ALT_TAB:
        //    return (record->event.pressed ?
        //            MACRO( D(LALT), D(TAB), END ) :
        //            MACRO( U(TAB), END ));
    }
    return MACRO_NONE;
}