]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/talljoe/talljoe.h
More work on Talljoe layout including adding layout support for HHKB and TKL. (#2946)
[qmk_firmware.git] / users / talljoe / talljoe.h
1 #ifndef USERSPACE
2 #define USERSPACE
3
4 #include "quantum.h"
5
6 enum userspace_custom_keycodes {
7   KC_MAKE = SAFE_RANGE, // can always be here
8   DFAULTS,
9   TOGGLE_BACKLIGHT,
10   EFFECT,
11   EFFECT_END = EFFECT + 10
12 };
13
14 #ifndef RESET_LAYER
15 #define RESET_LAYER 15
16 #endif
17
18 enum layers {
19     _BASE = 0,
20     _WORKMAN,
21     _NORMAN,
22     _DVORAK,
23     _COLMAK,
24     _GAME,
25     _NAV,
26     _NUM,
27     _ADJUST,
28     _RESET = RESET_LAYER,
29 };
30
31 enum tap_dancers {
32   TD_SEMICOLON
33 };
34
35 #define _______ KC_TRNS
36 #define XXXXXXX KC_NO
37
38 #define MO_NAV    MO(_NAV)
39 #define MO_ADJ    MO(_ADJUST)
40 #define MO_RST    MO(_RESET)
41 #define TG_ADJ    TG(_ADJUST)
42 #ifdef ENABLE_GAME_LAYER
43   #define TG_GAME TG(_GAME)
44 #else
45   #define TG_GAME KC_NO
46 #endif
47 #define LY_QWER   DF(_BASE)
48 #define LY_WORK   DF(_WORKMAN)
49 #define LY_NRMN   DF(_NORMAN)
50 #define LY_DVRK   DF(_DVORAK)
51 #define LY_CLMK   DF(_COLMAK)
52 #define TG_NKRO   MAGIC_TOGGLE_NKRO
53 #define KC_PTT    KC_F24
54 #define MS_MID    KC_MS_BTN3
55 #define FX(x)     (EFFECT + x)
56
57 #define US_CAPS   CTL_T(KC_ESC)
58 #define US_QUOT   RCTL_T(KC_QUOT)
59 #define US_MINS   RCTL_T(KC_QUOT)
60 #define US_SCLN   TD(TD_SEMICOLON)
61 #define US_ENT    LT(_NUM, KC_ENT)
62
63 #ifndef SPACE_COUNT
64   #define SPACE_COUNT 1
65 #endif
66 #if (SPACE_COUNT == 1)
67   #define KC_SPC1   LT(_NAV, KC_SPC)
68   #define KC_SPC2   XXXXXXX
69   #define KC_SPC3   XXXXXXX
70
71   #define NV_SPC1   _______
72   #define NV_SPC2   _______
73   #define NV_SPC3   _______
74
75   #define NM_SPC1   _______
76   #define NM_SPC2   _______
77   #define NM_SPC3   _______
78 #elif (SPACE_COUNT == 3)
79   #define KC_SPC1   KC_BSPC
80   #define KC_SPC2   LT(_NUM,KC_ENT)
81   #define KC_SPC3   LT(_NAV,KC_SPC)
82
83   #define NV_SPC1   KC_SPC
84   #define NV_SPC2   C_S_T(KC_ENT)
85   #define NV_SPC3   KC_SPC
86
87   #define NM_SPC2   XXXXXXX
88   #define NM_SPC1   KC_SPC
89   #define NM_SPC3   KC_0
90 #else
91   #error "Unsupported space count:" SPACE_COUNT
92 #endif
93
94 #ifndef ZEAL_RGB
95   #define BR_INC KC_NO
96   #define BR_DEC KC_NO
97   #define EF_INC KC_NO
98   #define EF_DEC KC_NO
99   #define ES_INC KC_NO
100   #define ES_DEC KC_NO
101   #define H1_INC KC_NO
102   #define H1_DEC KC_NO
103   #define S1_INC KC_NO
104   #define S1_DEC KC_NO
105   #define H2_INC KC_NO
106   #define H2_DEC KC_NO
107   #define S2_INC KC_NO
108   #define S2_DEC KC_NO
109   #define FN_MO13 KC_NO
110   #define FN_MO2 KC_NO
111 #endif
112
113 #ifdef TEMPLATE_TKL
114   #define _X_ KC_NO
115   #define TEMPLATE( \
116     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6,      \
117     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,           \
118     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,           \
119     KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3, KA5,           \
120     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1            \
121   ) TEMPLATE_TKL ( \
122     KJ6,      _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_,   _X_, _X_, KA5, \
123     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2,   _X_, _X_, _X_, \
124     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,   _X_, _X_, _X_, \
125     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,                  \
126     KN2,      KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3,        _X_,      \
127     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1,   _X_, _X_, _X_  \
128   )
129 #else
130   #define TEMPLATE_TKL( \
131     KJ6,      KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0,   KC7, KC5, KA5, \
132     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2,   KL4, KO4, KQ4, \
133     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,   KK4, KO7, KQ7, \
134     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,                  \
135     KN2,      KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3,        KO6,      \
136     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1,   KO0, KK0, KL0  \
137   ) TEMPLATE( \
138     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6,      \
139     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,           \
140     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,           \
141     KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3, KA5,           \
142     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1            \
143   )
144 #endif
145
146 #endif