]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/wanleg/wanleg.h
65028751a9ce101b07466e8423667790ab45abff
[qmk_firmware.git] / users / wanleg / wanleg.h
1 #ifndef USERSPACE
2 #define USERSPACE
3
4 #include "quantum.h"
5
6 // Define layer names and order
7 #ifdef KEYBOARD_gherkin
8 enum userspace_layers {
9   gGK = 0,
10   gNUM,
11   gDIR,
12   gETC,
13   _GK,
14   _QW,
15   QW75,
16   GK75,
17   ONE,
18   SUB,
19   SUP,
20   NUM,
21   DIR,
22   ETC,
23   SUB75,
24   SUP75,
25   NUM75,
26   DIR75,
27   ETC75,
28   FN75,
29   PAD,
30 };
31 #elif KEYBOARD_xd75
32 enum userspace_layers {
33   GK75 = 0,
34   QW75,
35   SUB75,
36   SUP75,
37   NUM75,
38   DIR75,
39   ETC75,
40   FN75,
41   gGK,
42   _GK,
43   _QW,
44   ONE,
45   SUB,
46   SUP,
47   NUM,
48   DIR,
49   ETC,
50   gNUM,
51   gDIR,
52   gETC,
53   PAD,
54 };
55 #else
56   enum userspace_layers {
57   _GK = 0,
58   PAD,
59   _QW,
60   ONE,
61   SUB,
62   SUP,
63   NUM,
64   DIR,
65   ETC,
66   gGK,
67   gNUM,
68   gDIR,
69   gETC,
70   QW75,
71   GK75,
72   SUB75,
73   SUP75,
74   NUM75,
75   DIR75,
76   ETC75,
77   FN75,
78 };
79 #endif
80
81 enum userspace_custom_keycodes {
82   gGHERKIN = SAFE_RANGE,
83   GHERKIN,
84   QWERTY,
85   QWERTY75,
86   GHERKIN75,
87   ONEHAND,
88   SUBTER,
89   SUPRA,
90   NUMBER,
91   DIRECTION,
92   ETCETERA,
93   gNUMBER,
94   gDIRECTION,
95   gETCETERA,
96   SUBTER75,
97   SUPRA75,
98   NUMBER75,
99   DIRECTION75,
100   ETCETERA75,
101   FUNCTION75,
102   NUMPAD,
103
104 };
105
106 //Tap Dance Declarations (list of my tap dance configurations)
107 #ifdef TAP_DANCE_ENABLE
108 enum {
109   TD_SFT_CAPS = 0
110   ,TD_Q_ESC
111   ,ENT_TAP_DANCE
112   ,DEL_TAP_DANCE
113   ,CAD_TD
114   ,RST_TAP_DANCE
115   ,LYR_TAP_DANCE
116 };
117 #endif
118
119 // Since our quirky block definitions are basically a list of comma separated
120 // arguments, we need a wrapper in order for these definitions to be
121 // expanded before being used as arguments to the LAYOUT_xxx macro.
122 #if (!defined(LAYOUT) && defined(KEYMAP))
123 #define LAYOUT KEYMAP
124 #endif
125
126 #define KEYMAP_wrapper(...)                  LAYOUT(__VA_ARGS__)
127 #define LAYOUT_wrapper(...)                  LAYOUT(__VA_ARGS__)
128 #define LAYOUT_ortho_3x10_wrapper(...)       LAYOUT_ortho_3x10(__VA_ARGS__)
129 #define LAYOUT_ortho_5x10_wrapper(...)       LAYOUT_ortho_5x10(__VA_ARGS__)
130 #define LAYOUT_ortho_4x12_wrapper(...)       LAYOUT_ortho_4x12(__VA_ARGS__)
131 #define LAYOUT_ortho_5x15_wrapper(...)       LAYOUT_ortho_5x15(__VA_ARGS__)
132 #define LAYOUT_ortho_4x4_wrapper(...)        LAYOUT_ortho_4x4(__VA_ARGS__)
133
134 // Blocks for each of the major keyboard layouts
135 // Organized so we can quickly adapt and modify all of them
136 // at once, rather than for each keyboard, one at a time.
137 // And this allows for much cleaner blocks in the keymaps.
138
139 // NOTE: These are all the same length.  If you do a search/replace
140 //       then you need to add/remove underscores to keep the
141 //       lengths consistent.
142
143
144 /* Pure Gherkin
145  * .-----------------------------------------------------------------------------------------.
146  * | Q//ESC | W      | E      | R      | T      | Y      | U      | I      | O      | P      |
147  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
148  * | A      | S      | D      | F      | G      | H      | J      | K      | L      | SPACE  |
149  * |        |        |        |        |        |        |        |        |        |SFThold |
150  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
151  * | Z      | X      | C      | V/gNUM | B/gETC | N      | M/gDIR | ,/GUI  | ./ALT  | BSPC   |
152  * | SFThold|        |        |        |        |        |        |        |        |CTRLhold|
153  * '-----------------------------------------------------------------------------------------'
154  */
155 #define _______________Gherkin_Row_0_______________                     TD(TD_Q_ESC),   KC_W,   KC_E,   KC_R,                   KC_T,                   KC_Y,   KC_U,                   KC_I,                   KC_O,                   KC_P
156 #define _______________Gherkin_Row_1_______________                     KC_A,                   KC_S,   KC_D,   KC_F,                   KC_G,                   KC_H,   KC_J,                   KC_K,                   KC_L,                   SFT_T(KC_SPC)
157 #define _______________Gherkin_Row_2_______________                     SFT_T(KC_Z),    KC_X,   KC_C,   LT(gNUM,KC_V),  LT(gETC,KC_B),  KC_N,   LT(gDIR,KC_M),  GUI_T(KC_COMM), ALT_T(KC_DOT),  CTL_T(KC_BSPC)
158
159 /* Directional Keys
160  * .-----------------------------------------------------------------------------------------.
161  * | TAB    |   up   |        | INS    |  CTRL  | SHIFT  | PgUp   | HOME   |  -     |  =     |
162  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
163  * | left   |  down  | right  | PrScr  | SHIFT  |  CTRL  | PgDn   | END    |  [     |  ]     |
164  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
165  * | P-Brk  |        |        |        |        |        |        | RGUI   | ALT    |  /     |
166  * '-----------------------------------------------------------------------------------------'
167  */
168 #define _______________Gherkin_DIR_0_______________                     KC_TAB,  KC_UP,   _______, KC_INS,  KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL
169 #define _______________Gherkin_DIR_1_______________                     KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END,  KC_LBRC, KC_RBRC
170 #define _______________Gherkin_DIR_2_______________                     KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_LALT, KC_SLSH
171
172 /* Numbers
173  * .-----------------------------------------------------------------------------------------.
174  * | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    |
175  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
176  * | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      |
177  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
178  * | F11    | F12    |        |        |        | ENTER  | SHIFT  | GUI    | ./ALT  | BSPC   |
179  * |        |        |        |        |        |        |        |        |        |CTRLhold|
180  * '-----------------------------------------------------------------------------------------'
181  */
182 #define _______________Gherkin_NUM_0_______________                     KC_F1,  KC_F2,  KC_F3,  KC_F4,   KC_F5,   KC_F6,  KC_F7,   KC_F8,   KC_F9,         KC_F10
183 #define _______________Gherkin_NUM_1_______________                     KC_1,   KC_2,   KC_3,   KC_4,    KC_5,    KC_6,   KC_7,    KC_8,    KC_9,          KC_0
184 #define _______________Gherkin_NUM_2_______________                     KC_F11, KC_F12, _______,_______, _______, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC)
185
186 /* Et Cetera
187  * .-----------------------------------------------------------------------------------------.
188  * |  `     | mUP    |        |        | RESET  | SHIFT  | mScrUp | mScrDn |        |  \     |
189  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
190  * | mLeft  | mDown  | mRight |        | SHIFT  | mBtn3  | mBtn1  | mBtn2  |  ;     |  '     |
191  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
192  * | Sft//Cp|        |        |        |        | C-A-D  | mScrL  | mScrR  | ALT    |  DEL   |
193  * '-----------------------------------------------------------------------------------------'
194  */
195 #define _______________Gherkin_ETC_0_______________                     KC_GRV,                 KC_MS_U, _______,_______, RESET,   KC_RSFT,                     KC_WH_U, KC_WH_D, _______, KC_BSLS
196 #define _______________Gherkin_ETC_1_______________                     KC_MS_L,                KC_MS_D, KC_MS_R,_______, KC_LSFT, KC_BTN3,                     KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT
197 #define _______________Gherkin_ETC_2_______________                     TD(TD_SFT_CAPS),_______, _______,_______, _______, LALT(LCTL(KC_DEL)),  KC_WH_L, KC_WH_R, KC_LALT, KC_DEL
198
199 /* Gherkin-Like
200  * .-----------------------------------------------------------------------------------------------------------.
201  * | ESC    | Q//ESC | W      | E      | R      | T      | Y      | U      | I      | O      | P      | BSPC |
202  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
203  * | TAB    | A      | S      | D      | F      | G      | H      | J      | K      | L      | SPACE  |  '     |
204  * |        |        |        |        |        |        |        |        |        |        |SFThold |        |
205  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
206  * |SFT/CAPS| Z      | X      | C      | V/NUM  | B/ETC  | N      | M/DIR  | ,/GUI  | ./ALT  | BSPC   | ENT/SFT|
207  * |        |SFThold |        |        |        |        |        |        |        |        |CTRLhold|        |
208  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
209  * | LCTRL  | LGUI   | ALT    | ONEHAND|  NUM   | ETC    | SPACE  |  DIR   | RGUI   | ALT    | DEL    | CTRL   |
210  * '-----------------------------------------------------------------------------------------------------------'
211  */
212 #define _______________GherkinLike_0_______________     KC_ESC, _______________Gherkin_Row_0_______________, KC_BSPC
213 #define _______________GherkinLike_1_______________     KC_TAB, _______________Gherkin_Row_1_______________, KC_QUOT
214 #define _______________GherkinLike_2_______________     TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V),LT(ETC, KC_B),KC_N, LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT)
215 #define _______________GherkinLike_3_______________     KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
216 #define _______________GherkinLike_3_OneHand_______     KC_LCTL, KC_LGUI, KC_LALT, ONEHAND, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, ONEHAND, KC_RCTL
217
218 /* Qwerty
219  * .-------------------------------------------------------------------------------------.
220  * | Esc   |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  | BSPC  |
221  * |-------+------+------+------+------+-------------+------+------+------+------+-------|
222  * | Tab   |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  '    |
223  * |-------+------+------+------+------+------|------+------+------+------+------+-------|
224  * |Sft/Cps|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |ENT/SFT|
225  * |-------+------+------+------+------+------+------+------+------+------+------+-------|
226  * | LCTRL | LGUI | ALT  | ALT  | SUB  | SHIFT| SPACE| SUP  | RGUI | RALT | DEL  | CTRL  |
227  * '-------------------------------------------------------------------------------------'
228  */
229 #define _______________Qwerty_Row__0_______________   KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC
230 #define _______________Qwerty_Row__1_______________   KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT
231 #define _______________Qwerty_Row__2_______________   TD(TD_SFT_CAPS),  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, SFT_T(KC_ENT)
232 #define _______________Qwerty_Row__3_______________   KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SUBTER,  KC_LSFT, KC_SPC,  SUPRA,   KC_RGUI, KC_RALT, KC_DEL,  KC_RCTL
233
234 /* SUPRA
235  * .-----------------------------------------------------------------------------------------------------------.
236  * | RESET  | TAB    |   up   |        | INS    | CTRL   | SHIFT  | PgUp   | Home   |   -    |   =    |  DEL   |
237  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
238  * |        |  left  |  down  | right  | PrScr  | SHIFT  | CTRL   | PgDn   | End    |   [    |   ]    |   \    |
239  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
240  * |        | P-Brk  |        |        |        |        |        |        | RGUI   | ALT    |        |        |
241  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
242  * |        |        |        |        |        |        |        |        |        |        |        |        |
243  * '-----------------------------------------------------------------------------------------------------------'
244  */
245 #define ________________SUPRA_Row_0________________   RESET,   KC_TAB,  KC_UP,   _______, KC_INS,  KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL,  KC_DEL
246 #define ________________SUPRA_Row_1________________   _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END,  KC_LBRC, KC_RBRC, KC_BSLS
247 #define ________________SUPRA_Row_2________________   _______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______
248 #define ________________SUPRA_Row_3________________   _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
249
250 /* SUBTER
251  * .-----------------------------------------------------------------------------------------------------------.
252  * |        | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    |  DEL   |
253  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
254  * |    `   | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      |        |
255  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
256  * |        | F11    | F12    |        |        |        |        |        | RGUI   | ./ALT  | BSPC   |        |
257  * |        |        |        |        |        |        |        |        |        |        |CTRLhold|        |
258  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
259  * |        |        | gherkin|        |        |        | ENTER  | SHIFT  |        |        |        |        |
260  * '-----------------------------------------------------------------------------------------------------------'
261  */
262 #define _______________SUBTER_Row__0_______________   _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,    KC_F8,  KC_F9,                   KC_F10,                 KC_DEL
263 #define _______________SUBTER_Row__1_______________   KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,     KC_8,   KC_9,                    KC_0,                   _______
264 #define _______________SUBTER_Row__2_______________   _______, KC_F11,  KC_F12,  _______, _______, _______, _______, _______,  KC_RGUI,ALT_T(KC_DOT),   CTL_T(KC_BSPC), _______
265 #define _______________SUBTER_Row__3_______________   _______, _______, GHERKIN, _______, _______, _______, KC_ENT,  KC_LSFT,  _______,_______,                 _______,                _______
266
267 /* Gherkin Numbers
268  * .-----------------------------------------------------------------------------------------------------------.
269  * |        | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    | BSPC |
270  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
271  * |        | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      |        |
272  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
273  * |        | F11    | F12    |        |        |        | ENTER  | SHIFT  | RGUI   | ./ALT  | BSPC   |        |
274  * |        |        |        |        |        |        |        |        |        |        |CTRLhold|            |
275  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
276  * |        |        |        |        |        |        | ENTER  | SHIFT  | RGUI   |        |        |        |
277  * '-----------------------------------------------------------------------------------------------------------'
278  */
279 #define _______________NUMBERS_Row_0_______________   _______, _______________Gherkin_NUM_0_______________,  KC_BSPC
280 #define _______________NUMBERS_Row_1_______________   _______, _______________Gherkin_NUM_1_______________,  _______
281 #define _______________NUMBERS_Row_2_______________   _______, _______________Gherkin_NUM_2_______________,  _______
282 #define _______________NUMBERS_Row_3_______________   _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______, _______
283
284
285 /* Gherkin Directional Keys
286  * .-----------------------------------------------------------------------------------------------------------.
287  * |        | TAB    |   up   |        | INS    | CTRL   | SHIFT  | PgUp   | HOME   |  -     |  =     | DEL    |
288  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
289  * |        | left   |  down  | right  | PrScr  | SHIFT  | CTRL   | PgDn   | END    |  [     |  ]     |        |
290  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
291  * |        | P-Brk  |        |        |        |        |        |        | RGUI   | ALT    |  /     |        |
292  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
293  * |        |        | qwerty |        |        |        |        |        |        |        |        |        |
294  * '-----------------------------------------------------------------------------------------------------------'
295  */
296 #define _____________DIRECTIONS_Row__0_____________   _______, _______________Gherkin_DIR_0_______________, KC_DEL
297 #define _____________DIRECTIONS_Row__1_____________   _______, _______________Gherkin_DIR_1_______________, _______
298 #define _____________DIRECTIONS_Row__2_____________   _______, _______________Gherkin_DIR_2_______________, _______
299 #define _____________DIRECTIONS_Row__3_____________   _______, _______, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______
300
301 /* Gherkin Et Cetera
302  * .-----------------------------------------------------------------------------------------------------------.
303  * |        |  `     | mUP    |        |        | RESET  | SHIFT  | mScrUp |mScrDown|        |  \     | DEL    |
304  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
305  * |        | mLeft  | mDown  | mRight |        | SHIFT  | mBtn3  | mBtn1  | mBtn2  |  ;     |  '     |        |
306  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
307  * |        | Sft//Cp|        |        |        |        | C-A-D  |mScrLeft| mScrRt | ALT    |  DEL   |        |
308  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
309  * |        |        |        |        |        |        | C-A-D  |        |        |        |        |        |
310  * '-----------------------------------------------------------------------------------------------------------'
311  */
312 #define ______________ETCETERA_Row__0______________   _______, _______________Gherkin_ETC_0_______________, KC_DEL
313 #define ______________ETCETERA_Row__1______________   _______, _______________Gherkin_ETC_1_______________, _______
314 #define ______________ETCETERA_Row__2______________   _______, _______________Gherkin_ETC_2_______________, _______
315 #define ______________ETCETERA_Row__3______________   _______, _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______, _______
316  
317 /* Single 4x4 board only
318  * .-----------------------------------.
319  * |   7    |   8    |   9    |  BSPC  |
320  * |--------+--------+--------+--------|
321  * |   4    |   5    |   6    | SPACE  |
322  * |--------+--------+--------+--------|
323  * |   1    |   2    |   3    | ENTER  |
324  * |--------+--------+--------+--------|
325  * |   0    |/ //_GK |   .    |   -    |
326  * '-----------------------------------'
327  */
328
329 #define _______________NUMPAD_Row__0_______________  KC_KP_7, KC_KP_8, KC_KP_9,   KC_BSPC
330 #define _______________NUMPAD_Row__1_______________  KC_KP_4, KC_KP_5, KC_KP_6,   KC_SPC
331 #define _______________NUMPAD_Row__2_______________  KC_KP_1, KC_KP_2, KC_KP_3,   KC_PENT
332 #define _______________NUMPAD_Row__3_______________  KC_KP_0, TD(LYR_TAP_DANCE), KC_KP_DOT, KC_PMNS
333 #endif // !USERSPACE