aboutsummaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'layouts')
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/keymap.c89
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/readme.md30
2 files changed, 77 insertions, 42 deletions
diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
index 520985204..a55a1e8d9 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c
+++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
@@ -11,11 +11,20 @@
11// #define CFQ_USE_MOMENTARY_LAYER_KEYS 11// #define CFQ_USE_MOMENTARY_LAYER_KEYS
12// #define CFQ_USE_EXPEREMENTAL_LAYER 12// #define CFQ_USE_EXPEREMENTAL_LAYER
13 13
14// keep enabled for now
15#define CFQ_USE_DYNAMIC_MACRO
16
14#if !defined(CFQ_USER_KEY1) 17#if !defined(CFQ_USER_KEY1)
15#define CFQ_USER_KEY1 KC_F13 18#define CFQ_USER_KEY1 KC_SPC
16#endif 19#endif
17#if !defined(CFQ_USER_KEY2) 20#if !defined(CFQ_USER_KEY2)
18#define CFQ_USER_KEY2 KC_APP 21#define CFQ_USER_KEY2 KC_ENT
22#endif
23#if !defined(CFQ_USER_KEY3)
24#define CFQ_USER_KEY3 CFQ_KC_FN3
25#endif
26#if !defined(CFQ_USER_KEY4)
27#define CFQ_USER_KEY4 KC_APP
19#endif 28#endif
20 29
21#define BASE 0 // default layer 30#define BASE 0 // default layer
@@ -29,9 +38,16 @@ enum custom_keycodes {
29 PLACEHOLDER = SAFE_RANGE, // can always be here 38 PLACEHOLDER = SAFE_RANGE, // can always be here
30 EPRM, 39 EPRM,
31 VRSN, 40 VRSN,
32 RGB_SLD 41 RGB_SLD,
42#ifdef CFQ_USE_DYNAMIC_MACRO
43 DYNAMIC_MACRO_RANGE,
44#endif
33}; 45};
34 46
47#ifdef CFQ_USE_DYNAMIC_MACRO
48#include "dynamic_macro.h"
49#endif
50
35// macros 51// macros
36#ifdef CFQ_USE_EXPEREMENTAL_LAYER 52#ifdef CFQ_USE_EXPEREMENTAL_LAYER
37#define M_SPACES_1 2 53#define M_SPACES_1 2
@@ -77,13 +93,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
77 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| 93 * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
78 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | 94 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
79 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 95 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
80 * | LCtl |Super | Alt | USR2 |Space | | Left | Down | Up |Right | Del | 96 * | LCtl |Super | Alt | USR4 |Space | | Left | Down | Up |Right | Del |
81 * `----------------------------------' `----------------------------------' 97 * `----------------------------------' `----------------------------------'
82 * ,-------------. ,-------------. 98 * ,-------------. ,-------------.
83 * | Ins | ~L3 | | Home | End | 99 * | Ins | USR3 | | Home | End |
84 * ,------|------|------| |------+------+------. 100 * ,------|------|------| |------+------+------.
85 * | | | ~L2 | | PgUp | | | 101 * | | | ~L2 | | PgUp | | |
86 * |Space | USR1 |------| |------|Enter |Space | 102 * | USR1 | USR2 |------| |------|Enter |Space |
87 * | | | ~L1 | | PgDn | | | 103 * | | | ~L1 | | PgDn | | |
88 * `--------------------' `--------------------' 104 * `--------------------' `--------------------'
89 */ 105 */
@@ -95,10 +111,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
95 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN, 111 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN,
96 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, 112 KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
97 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, 113 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
98 KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY2, KC_SPC, 114 KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY4, KC_SPC,
99 KC_INS, CFQ_KC_FN3, 115 KC_INS, CFQ_USER_KEY3,
100 CFQ_KC_FN2, 116 CFQ_KC_FN2,
101 KC_SPC, CFQ_USER_KEY1, CFQ_KC_FN1, 117 CFQ_USER_KEY1, CFQ_USER_KEY2, CFQ_KC_FN1,
102 // right hand 118 // right hand
103 KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, KC_BSPC, 119 KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, KC_BSPC,
104 KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, 120 KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
@@ -127,10 +143,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
127 * | | | | | | | 0 | | . | + | | 143 * | | | | | | | 0 | | . | + | |
128 * `----------------------------------' `----------------------------------' 144 * `----------------------------------' `----------------------------------'
129 * ,-------------. ,---------------. 145 * ,-------------. ,---------------.
130 * | | | | | | 146 * |Start1|Start2| | | |
131 * ,------|------|------| |------+--------+------. 147 * ,------|------|------| |------+--------+------.
132 * | | | | | | | | 148 * | | | Stop | | | | |
133 * | | |------| |------| | | 149 * |Play1 |Play2 |------| |------| | |
134 * | | | | | | | | 150 * | | | | | | | |
135 * `--------------------' `----------------------' 151 * `--------------------' `----------------------'
136 */ 152 */
@@ -142,9 +158,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
142 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_ARROW_RMINUS), 158 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_ARROW_RMINUS),
143 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_BRACKET_IN_ANG), M(M_BRACKET_IN_BRC), 159 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(M_BRACKET_IN_ANG), M(M_BRACKET_IN_BRC),
144 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 160 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
161#ifdef CFQ_USE_DYNAMIC_MACRO
162 DYN_REC_START1, DYN_REC_START2,
163 DYN_REC_STOP,
164 DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
165#else
145 KC_TRNS, KC_TRNS, 166 KC_TRNS, KC_TRNS,
146 KC_TRNS, 167 KC_TRNS,
147 KC_TRNS, KC_TRNS, KC_TRNS, 168 KC_TRNS, KC_TRNS, KC_TRNS,
169#endif
148 // right hand 170 // right hand
149 M(M_BRACKET_OUT_CBR), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, 171 M(M_BRACKET_OUT_CBR), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
150 M(M_BRACKET_OUT_PRN), M(M_ARROW_LEQL), KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_F11, 172 M(M_BRACKET_OUT_PRN), M(M_ARROW_LEQL), KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, KC_F11,
@@ -201,13 +223,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
201/* Keymap 3: My own testing keys! 223/* Keymap 3: My own testing keys!
202 * 224 *
203 * ,--------------------------------------------------. ,--------------------------------------------------. 225 * ,--------------------------------------------------. ,--------------------------------------------------.
204 * | | Spc1 | Spc2 | Spc3 | Spc4 | Spc5 | | | | Spc6 | Spc7 | Spc8 | | | | 226 * | | | | { | } | | } | | | | | | | | |
205 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 227 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
206 * | | | | | | | | | | | | | | | | 228 * | | | | ( | ) | | ) | | | Spc7 | Spc8 | | | | |
207 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
208 * | | | | | | |------| |------| | | | | | |
209 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 229 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
210 * | | | | | | | | | | | | | | | | 230 * | | | | [ | ] | |------| |------| Spc4 | Spc5 | Spc6 | | | |
231 * |--------+------+------+------+------+------| ] | | |------+------+------+------+------+--------|
232 * | | | | < | > | | | | | Spc1 | Spc2 | Spc3 | | | |
211 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 233 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
212 * | | | | | | | | | | | | 234 * | | | | | | | | | | | |
213 * `----------------------------------' `----------------------------------' 235 * `----------------------------------' `----------------------------------'
@@ -220,23 +242,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
220 * `--------------------' `--------------------' 242 * `--------------------' `--------------------'
221 */ 243 */
222 244
223// EXPEREMENT 245// EXPERIMENT
224[EXPR] = LAYOUT_ergodox( 246[EXPR] = LAYOUT_ergodox(
225 // left hand 247 // left hand
226 KC_TRNS, M(M_SPACES_1), M(M_SPACES_2), M(M_SPACES_3), M(M_SPACES_4), M(M_SPACES_5), KC_TRNS, 248 KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_RCBR,
227 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 249 KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS, KC_RPRN,
228 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 250 KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS,
229 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 251 KC_TRNS, KC_TRNS, KC_TRNS, S(KC_COMM), S(KC_DOT), KC_TRNS, KC_RBRC,
230 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 252 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
231 KC_TRNS, KC_TRNS, 253 KC_TRNS, KC_TRNS,
232 KC_TRNS, 254 KC_TRNS,
233 KC_TRNS, KC_TRNS, KC_TRNS, 255 KC_TRNS, KC_TRNS, KC_TRNS,
234 // right hand 256 // right hand
235 KC_TRNS, M(M_SPACES_6), M(M_SPACES_7), M(M_SPACES_8), KC_TRNS, KC_TRNS, KC_TRNS, 257 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
236 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 258 KC_TRNS, KC_TRNS, M(M_SPACES_7), M(M_SPACES_8), KC_TRNS, KC_TRNS, KC_TRNS,
237 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 259 KC_TRNS, M(M_SPACES_4), M(M_SPACES_5), M(M_SPACES_6), KC_TRNS, KC_TRNS,
238 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 260 KC_TRNS, KC_TRNS, M(M_SPACES_1), M(M_SPACES_2), M(M_SPACES_3), KC_TRNS, KC_TRNS,
239 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 261 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
240 KC_TRNS, KC_TRNS, 262 KC_TRNS, KC_TRNS,
241 KC_TRNS, 263 KC_TRNS,
242 KC_TRNS, KC_TRNS, KC_TRNS 264 KC_TRNS, KC_TRNS, KC_TRNS
@@ -314,6 +336,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
314}; 336};
315 337
316bool process_record_user(uint16_t keycode, keyrecord_t *record) { 338bool process_record_user(uint16_t keycode, keyrecord_t *record) {
339#ifdef CFQ_USE_DYNAMIC_MACRO
340 if (!process_record_dynamic_macro(keycode, record)) {
341 return false;
342 }
343#endif
317 switch (keycode) { 344 switch (keycode) {
318 // dynamically generate these. 345 // dynamically generate these.
319 case EPRM: 346 case EPRM:
diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md
index cb5e96d69..52677310c 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/readme.md
+++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md
@@ -27,7 +27,7 @@
27Some optional behavior is configurable without editing the code 27Some optional behavior is configurable without editing the code
28using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make. 28using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
29 29
30- `CFQ_USER_KEY1`, `CFQ_USER_KEY2` are used for custom-keys 30- `CFQ_USER_KEY1` (1..4) are used for custom-keys
31- `CFQ_USE_MOMENTARY_LAYER_KEYS` is used to prevent layer keys from toggling when tapped. 31- `CFQ_USE_MOMENTARY_LAYER_KEYS` is used to prevent layer keys from toggling when tapped.
32- `CFQ_USE_SWAP_RIGHT_SPACE_ENTER` swap Enter and Space on the right hand thumb cluster. 32- `CFQ_USE_SWAP_RIGHT_SPACE_ENTER` swap Enter and Space on the right hand thumb cluster.
33 While asymmetric, it makes Enter more easily accessible. 33 While asymmetric, it makes Enter more easily accessible.
@@ -40,8 +40,10 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
40 40
41When undefined: 41When undefined:
42 42
43- `USR1` defaults to `F13`, otherwise use `CFQ_USER_KEY1`. 43- `USR1` defaults to `KC_SPC`, otherwise use `CFQ_USER_KEY1`.
44- `USR2` defaults to `APP`, otherwise use `CFQ_USER_KEY2`. 44- `USR2` defaults to `KC_ENT`, otherwise use `CFQ_USER_KEY2`.
45- `USR3` defaults to `KC_FN3`, otherwise use `CFQ_USER_KEY3`.
46- `USR4` defaults to `APP`, otherwise use `CFQ_USER_KEY4`.
45 47
46``` 48```
47,--------------------------------------------------. ,--------------------------------------------------. 49,--------------------------------------------------. ,--------------------------------------------------.
@@ -53,21 +55,23 @@ When undefined:
53|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| 55|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
54| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | 56| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
55`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 57`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
56 | LCtl |Super | Alt | USR2 |Space | | Left | Down | Up |Right | Del | 58 | LCtl |Super | Alt | USR4 |Space | | Left | Down | Up |Right | Del |
57 `----------------------------------' `----------------------------------' 59 `----------------------------------' `----------------------------------'
58 ,-------------. ,-------------. 60 ,-------------. ,-------------.
59 | Ins | ~L3 | | Home | End | 61 | Ins | USR3 | | Home | End |
60 ,------|------|------| |------+------+------. 62 ,------|------|------| |------+------+------.
61 | | | ~L2 | | PgUp | | | 63 | | | ~L2 | | PgUp | | |
62 |Space | USR1 |------| |------|Enter |Space | 64 | USR1 | USR2 |------| |------|Enter |Space |
63 | | | ~L1 | | PgDn | | | 65 | | | ~L1 | | PgDn | | |
64 `--------------------' `--------------------' 66 `--------------------' `--------------------'
65
66``` 67```
67 68
68## Keymap 1: Symbol layer 69## Keymap 1: Symbol layer
69 70
70Note the double bracket keys on this layer press left to position the cursor between them. 71Notes:
72
73- The double bracket keys on this layer press left to position the cursor between them.
74- The left thumb cluster is used for macro record/replay.
71 75
72``` 76```
73,--------------------------------------------------. ,--------------------------------------------------. 77,--------------------------------------------------. ,--------------------------------------------------.
@@ -82,10 +86,10 @@ Note the double bracket keys on this layer press left to position the cursor bet
82 | | | | | | | 0 | | . | + | | 86 | | | | | | | 0 | | . | + | |
83 `----------------------------------' `----------------------------------' 87 `----------------------------------' `----------------------------------'
84 ,-------------. ,---------------. 88 ,-------------. ,---------------.
85 | | | | | | 89 |Start1|Start2| | | |
86 ,------|------|------| |------+--------+------. 90 ,------|------|------| |------+--------+------.
87 | | | | | | | | 91 | | | Stop | | | | |
88 | | |------| |------| | | 92 |Play1 |Play2 |------| |------| | |
89 | | | | | | | | 93 | | | | | | | |
90 `--------------------' `----------------------' 94 `--------------------' `----------------------'
91``` 95```
@@ -115,6 +119,10 @@ Note the double bracket keys on this layer press left to position the cursor bet
115 119
116## Changelog 120## Changelog
117 121
122- 2017/10/28
123 Make more keys user defined on the left thumb cluster.
124 Add macro record/replay keys.
125
118- 2017/10/4 126- 2017/10/4
119 Move Insert key to the left thumb cluster (away from the modifier keys). 127 Move Insert key to the left thumb cluster (away from the modifier keys).
120 Replace with `USR2` which defaults to `APP`. 128 Replace with `USR2` which defaults to `APP`.