]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/yet-another-developer/wrappers.h
[Keymap] Ergodash keymap for yet-another-developer (#7046)
[qmk_firmware.git] / users / yet-another-developer / wrappers.h
1 #pragma once
2 #include "yet-another-developer.h"
3
4 /*
5 Since our quirky block definitions are basically a list of comma separated
6 arguments, we need a wrapper in order for these definitions to be
7 expanded before being used as arguments to the LAYOUT_xxx macro.
8 */
9 #if (!defined(LAYOUT) && defined(KEYMAP))
10 #    define LAYOUT KEYMAP
11 #endif
12
13 // clang-format off
14
15 #define KEYMAP_wrapper(...)                  LAYOUT(__VA_ARGS__)
16 #define LAYOUT_wrapper(...)                  LAYOUT(__VA_ARGS__)
17 #define LAYOUT_ortho_5x14_wrapper(...)       LAYOUT_ortho_5x14(__VA_ARGS__)
18
19 /*  ---------- LEFT HAND -----------                ---------- RIGHT HAND ---------- */
20 #define LAYOUT_ergodash_pretty( \
21     L00, L01, L02, L03, L04, L05, L06,              R00, R01, R02, R03, R04, R05, R06, \
22     L10, L11, L12, L13, L14, L15, L16,              R10, R11, R12, R13, R14, R15, R16, \
23     L20, L21, L22, L23, L24, L25, L26,              R20, R21, R22, R23, R24, R25, R26, \
24     L30, L31, L32, L33, L34, L35,                        R31, R32, R33, R34, R35, R36, \
25     L40, L41, L42, L43,                                            R43, R44, R45, R46, \
26                                   L36,              R30,                               \
27                              L44, L45, L46,    R40, R41, R42                           \
28     ) \
29         { \
30         { L00, L01, L02, L03, L04, L05, L06 }, \
31         { L10, L11, L12, L13, L14, L15, L16 }, \
32         { L20, L21, L22, L23, L24, L25, L26 }, \
33         { L30, L31, L32, L33, L34, L35, L36 }, \
34         { L40, L41, L42, L43, L44, L45, L46 }, \
35         { R06, R05, R04, R03, R02, R01, R00 }, \
36         { R16, R15, R14, R13, R12, R11, R10 }, \
37         { R26, R25, R24, R23, R22, R21, R20 }, \
38         { R36, R35, R34, R33, R32, R31, R30 }, \
39         { R46, R45, R44, R43, R42, R41, R40 }  \
40     }
41
42 /*
43 Blocks for each of the four major keyboard layouts
44 Organized so we can quickly adapt and modify all of them
45 at once, rather than for each keyboard, one at a time.
46 And this allows for much cleaner blocks in the keymaps.
47 For instance Tap/Hold for Control on all of the layouts
48
49 NOTE: These are all the same length.  If you do a search/replace
50   then you need to add/remove underscores to keep the
51   lengths consistent.
52 */
53
54 #define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T
55 #define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G
56 #define _________________QWERTY_L3_________________        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
57
58 #define _________________QWERTY_R1_________________        KC_Y,    KC_U,    KC_I,    KC_O,    KC_P
59 #define _________________QWERTY_R2_________________        KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN
60 #define _________________QWERTY_R3_________________        KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH
61
62
63 #ifdef TAP_DANCE_ENABLE
64   #define _________________COLEMAK_L1________________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_G
65   #define _________________COLEMAK_L2________________       KC_BOL,    KC_R,    KC_S,    KC_T,    KC_D
66   #define _________________COLEMAK_L3________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
67
68   #define _________________COLEMAK_R1________________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
69   #define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O
70   #define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH
71 #else
72   #define _________________COLEMAK_L1________________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_G
73   #define _________________COLEMAK_L2________________       KC_A,    KC_R,    KC_S,    KC_T,    KC_D
74   #define _________________COLEMAK_L3________________       KC_Z,    KC_X,    KC_C,    KC_V,    KC_B
75
76   #define _________________COLEMAK_R1________________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
77   #define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O
78   #define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLASH
79 #endif
80
81
82
83
84 #define _________________DVORAK_L1_________________        KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
85 #define _________________DVORAK_L2_________________        KC_A,    KC_O,    KC_E,   KC_U,     KC_I
86 #define _________________DVORAK_L3_________________        KC_SCLN, KC_Q,    KC_J,   KC_K,     KC_X
87
88 #define _________________DVORAK_R1_________________        KC_F,    KC_G,    KC_C,    KC_R,    KC_L
89 #define _________________DVORAK_R2_________________        KC_D,    KC_H,    KC_T,    KC_N,    KC_S
90 #define _________________DVORAK_R3_________________        KC_B,    KC_M,    KC_W,    KC_V,    KC_Z
91
92
93 #define _________________WORKMAN_L1________________       KC_Q,    KC_D,    KC_R,   KC_W,     KC_B
94 #define _________________WORKMAN_L2________________       KC_A,    KC_S,    KC_H,   KC_T,     KC_G
95 #define _________________WORKMAN_L3________________       KC_Z,    KC_X,    KC_M,   KC_C,     KC_V
96
97 #define _________________WORKMAN_R1________________       KC_J,    KC_F,    KC_U,    KC_P,    KC_SCLN
98 #define _________________WORKMAN_R2________________       KC_Y,    KC_N,    KC_E,    KC_O,    KC_I
99 #define _________________WORKMAN_R3________________       KC_K,    KC_L,    KC_COMM, KC_DOT,  KC_SLASH
100
101 // #define _________________WHITE_R1__________________       KC_V,    KC_Y,    KC_D,    KC_COMM, KC_QUOT
102 // #define _________________WHITE_R2__________________       KC_A,    KC_T,    KC_H,    KC_E,    KC_B
103 // #define _________________WHITE_R3__________________       KC_P,    KC_K,    KC_G,    KC_W,    KC_Q
104
105 // #define _________________WHITE_L1__________________       KC_INT1, KC_J,    KC_M,    KC_L,    KC_U
106 // #define _________________WHITE_L2__________________       KC_MINS, KC_C,    KC_S,    KC_N,    KC_O  // KC_I
107 // #define _________________WHITE_L3__________________       KC_X,    KC_R,    KC_F,    KC_DOT,  KC_Z
108
109
110 #ifdef UNICODE_ENABLE
111 #define _______________UNICODE_L1__________________        UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
112 #define _______________UNICODE_L2__________________        UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
113 #define _______________UNICODE_L3__________________        UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
114
115 #define _______________UNICODE_R1__________________        UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
116 #define _______________UNICODE_R2__________________        UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
117 #define _______________UNICODE_R3__________________        UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
118 #endif
119
120 #ifdef UNICODEMAP_ENABLE
121 #define _______________UNICODE_L1__________________        X(SMRK),  X(THINK),  X(CLOWN), X(HUNDR), X(BANG)
122 #define _______________UNICODE_L2__________________        X(GRIN),  X(MONKEY), X(OKOK), X(EGGPL), X(LIT)
123 #define _______________UNICODE_L3__________________        X(WEARY), X(UNAMU),  X(EFFU), X(MONOCL), X(IRONY)
124
125 #define _______________UNICODE_R1__________________        X(DRUG0), X(THUP), X(INUP), X(DIZZY), X(COOL)
126 #define _______________UNICODE_R2__________________        X(FIST0), X(FIST2),X(FIST3),X(FIST1), X(OKOK)
127 #define _______________UNICODE_R3__________________        X(MNDBLWN), X(THDN), X(SPOCK),X(HOLE),  X(DASH)
128 #endif
129
130 #define ________________NUMBER_LEFT________________       KC_1,    KC_2,    KC_3,    KC_4,    KC_5
131 #define ________________NUMBER_RIGHT_______________       KC_6,    KC_7,    KC_8,    KC_9,    KC_0
132 #define _________________FUNC_LEFT_________________       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5
133 #define _________________FUNC_RIGHT________________       KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10
134
135 #define ___________________BLANK___________________        _______, _______, _______, _______, _______
136
137
138 #define _________________LOWER_L1__________________        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC
139 #define _________________LOWER_L2__________________        _________________FUNC_LEFT_________________
140 #define _________________LOWER_L3__________________        _________________FUNC_RIGHT________________
141
142 #define _________________LOWER_R1__________________        KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
143 #define _________________LOWER_R2__________________        OS_UNI,  KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
144 #define _________________LOWER_R3__________________        _______, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
145
146
147
148 #define _________________RAISE_L1__________________        ________________NUMBER_LEFT________________
149 #define _________________RAISE_L2__________________        ___________________BLANK___________________
150 #define _________________RAISE_L3__________________        ___________________BLANK___________________
151
152 #define _________________RAISE_R1__________________        ________________NUMBER_RIGHT_______________
153 #define _________________RAISE_R2__________________        _______, KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC
154 #define _________________RAISE_R3__________________        _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
155
156
157
158 #define _________________ADJUST_L1_________________        ___________________BLANK___________________
159 #define _________________ADJUST_L2_________________        _________________FUNC_LEFT_________________
160 #define _________________ADJUST_L3_________________        _______, QWERTY,  COLEMAK, DVORAK,  WORKMAN
161
162 #define _________________ADJUST_R1_________________        KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
163 #define _________________ADJUST_R2_________________        _________________FUNC_RIGHT________________
164 #define _________________ADJUST_R3_________________        KC_MUTE, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
165
166 // clang-format on