]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/talljoe/talljoe.h
[Keyboard] Snagpad Configurator bugfix and readme refactor (#6381)
[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 + 20
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     _MALTROFF,
25     _GAME,
26     _NAV,
27     _NUM,
28     _ADJUST,
29     _RESET = RESET_LAYER,
30 };
31
32 enum tap_dancers {
33   TD_SEMICOLON,
34   TD_GRAVE,
35   TD_QUOTE,
36 };
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 #define TG_NUM    TG(_NUM)
43 #ifdef ENABLE_GAME_LAYER
44   #define TG_GAME TG(_GAME)
45 #else
46   #define TG_GAME KC_NO
47 #endif
48 #define LY_QWER   DF(_BASE)
49 #define LY_WORK   DF(_WORKMAN)
50 #define LY_NRMN   DF(_NORMAN)
51 #define LY_DVRK   DF(_DVORAK)
52 #define LY_CLMK   DF(_COLMAK)
53 #if SPACE_COUNT >= 2
54   #define LY_MALT DF(_MALTROFF)
55 #else
56   #define LY_MALT KC_NO
57 #endif
58 #define TG_NKRO   MAGIC_TOGGLE_NKRO
59 #define KC_PTT    KC_F24
60 #define MS_MID    KC_MS_BTN3
61 #define FX(x)     (EFFECT + x)
62
63 #define CTL_ESC   CTL_T(KC_ESC)
64 #define US_ENT    RCTL_T(KC_ENT)
65 #define US_MINS   RCTL_T(KC_QUOT)
66 #define US_BSLS   LCA_T(KC_BSLS)
67 #define US_SCLN   TD(TD_SEMICOLON)
68 #define US_GRV    TD(TD_GRAVE)
69 #define US_QUOT   TD(TD_QUOTE)
70 #define US_TAB    C_S_T(KC_TAB)
71 #define SH_LBRC   LSFT_T(KC_LBRC)
72 #define SH_RBRC   RSFT_T(KC_RBRC)
73
74 #define MLT_E     LT(_NUM, KC_E)
75
76 #ifndef SPACE_COUNT
77   #define SPACE_COUNT 1
78 #endif
79 #if (SPACE_COUNT == 1)
80   #define KC_SPC1   LT(_NAV, KC_SPC)
81   #define KC_SPC2   XXXXXXX
82   #define KC_SPC3   XXXXXXX
83
84   #define NV_SPC1   _______
85   #define NV_SPC2   _______
86   #define NV_SPC3   _______
87
88   #define NM_SPC1   _______
89   #define NM_SPC2   _______
90   #define NM_SPC3   _______
91 #elif (SPACE_COUNT == 2)
92   #define KC_SPC1   LT(_NAV,KC_SPC)
93   #define KC_SPC2   LT(_NUM,KC_ENT)
94
95   #define NV_SPC1   KC_SPC
96   #define NV_SPC2   KC_ENT
97
98   #define NM_SPC1   KC_0
99   #define NM_SPC2   KC_SPC
100
101   #define KC_SPC3   XXXXXXX
102   #define NV_SPC3   XXXXXXX
103   #define NM_SPC3   XXXXXXX
104 #elif (SPACE_COUNT == 3)
105   #ifdef SWAP_HANDS_ENABLE
106     #define KC_SPC1 SH_T(KC_BSPC)
107   #else
108     #define KC_SPC1 KC_BSPC
109   #endif
110   #define KC_SPC2   LT(_NUM,KC_ENT)
111   #define KC_SPC3   LT(_NAV,KC_SPC)
112
113   #define NV_SPC1   KC_SPC
114   #define NV_SPC2   KC_ENT
115   #define NV_SPC3   KC_SPC
116
117   #define NM_SPC1   KC_SPC
118   #define NM_SPC2   XXXXXXX
119   #define NM_SPC3   KC_0
120 #else
121   #error "Unsupported space count:" SPACE_COUNT
122 #endif
123
124 #ifndef ZEAL_RGB
125   #define BR_INC KC_NO
126   #define BR_DEC KC_NO
127   #define EF_INC KC_NO
128   #define EF_DEC KC_NO
129   #define ES_INC KC_NO
130   #define ES_DEC KC_NO
131   #define H1_INC KC_NO
132   #define H1_DEC KC_NO
133   #define S1_INC KC_NO
134   #define S1_DEC KC_NO
135   #define H2_INC KC_NO
136   #define H2_DEC KC_NO
137   #define S2_INC KC_NO
138   #define S2_DEC KC_NO
139   #define FN_MO13 KC_NO
140   #define FN_MO2 KC_NO
141 #endif
142
143 #ifndef TEMPLATE
144   #define _X_ KC_NO
145   #define TEMPLATE( \
146     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6,      \
147     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,           \
148     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,           \
149     KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3, KA5,           \
150     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1            \
151   ) TEMPLATE_TKL ( \
152     KJ6,      _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_,   _X_, _X_, KA5, \
153     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2,   _X_, _X_, _X_, \
154     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,   _X_, _X_, _X_, \
155     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,                  \
156     KN2,      KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3,        _X_,      \
157     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1,   _X_, _X_, _X_  \
158   )
159 #endif
160 #ifndef TEMPLATE_TKL
161   #define TEMPLATE_TKL( \
162     KJ6,      KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0,   KC7, KC5, KA5, \
163     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2,   KL4, KO4, KQ4, \
164     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,   KK4, KO7, KQ7, \
165     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,                  \
166     KN2,      KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3,        KO6,      \
167     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1,   KO0, KK0, KL0  \
168   ) TEMPLATE( \
169     KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6,      \
170     KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3,           \
171     KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6,      KB1,           \
172     KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0,      KN3, KA5,           \
173     KA4, KP2, KC6,           KX1, KK6, KX2,           KC0, KM3, KD0, KA1            \
174   )
175 #endif
176
177 #ifndef TEMPLATE_ALT
178   #define TEMPLATE_ALT TEMPLATE
179 #endif
180 #ifndef TEMPLATE_NUM
181   #define TEMPLATE_NUM TEMPLATE_ALT
182 #endif
183 #ifndef TEMPLATE_NAV
184   #define TEMPLATE_NAV TEMPLATE_ALT
185 #endif
186 #ifndef TEMPLATE_ADJUST
187   #define TEMPLATE_ADJUST TEMPLATE_ALT
188 #endif
189
190 #ifndef TEMPLATE_RESET
191   #define TEMPLATE_RESET TEMPLATE_ALT( \
192       RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET  ,  \
193       RESET  , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET  ,           \
194       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX,           \
195       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,          XXXXXXX, XXXXXXX,           \
196       RESET  , XXXXXXX, XXXXXXX,                   XXXXXXX, RESET  , XXXXXXX,                   XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX)
197 #endif
198
199 #endif