aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox/colemak_programmer
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ergodox/colemak_programmer')
-rw-r--r--layouts/community/ergodox/colemak_programmer/keymap.c256
-rw-r--r--layouts/community/ergodox/colemak_programmer/readme.md23
-rw-r--r--layouts/community/ergodox/colemak_programmer/rules.mk1
3 files changed, 280 insertions, 0 deletions
diff --git a/layouts/community/ergodox/colemak_programmer/keymap.c b/layouts/community/ergodox/colemak_programmer/keymap.c
new file mode 100644
index 000000000..46cd28dc8
--- /dev/null
+++ b/layouts/community/ergodox/colemak_programmer/keymap.c
@@ -0,0 +1,256 @@
1#include QMK_KEYBOARD_H
2
3const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
4/* Keymap 0: Basic layer
5 * MEH: Alt+Control+Shift
6 * HYPER: Alt+Control+Shift+Gui
7 * ,--------------------------------------------------. ,--------------------------------------------------.
8 * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backsp |
9 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
10 * | TAB | Q | W | F | P | G |TG(3) | |TG(4) | J | L | U | Y | ; : | ' " |
11 * |--------+------+------+------+------+------|F-lck | |N-lck |------+------+------+------+------+--------|
12 * | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT |
13 * |--------+------+------+------+------+------| MEH | | MEH |------+------+------+------+------+--------|
14 * | Shift | Z | X | C | V | B | | | | K | M | , < | . > | UP | Shift |
15 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
16 * | LCTL | LCTL | LGUI | LALT | LGUI | | RALT | RCTL | LEFT | DOWN | RIGHT|
17 * `----------------------------------' `----------------------------------'
18 * ,--------------. ,--------------.
19 * | Esc | App | | Ins | Del |
20 * ,------|------|-------| |------+-------+------.
21 * | | | Home | | PgUp | | |
22 * | MO(2)| MO(4)|-------| |------| Space |Space |
23 * |symbol|N-Lock| End | | PgDn | | |
24 * `---------------------' `---------------------'
25 */
26[0] = LAYOUT_ergodox( // layer 0 : default
27 // left hand
28 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
29 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(3),
30 KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D,
31 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MEH,
32 KC_LCTL, KC_LCTL, KC_LGUI, KC_LALT, KC_LGUI,
33
34 KC_ESC, KC_APP,
35 KC_HOME,
36 MO(2), MO(4), KC_END,
37
38 // right hand
39 KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
40 TG(4), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_QUOT,
41 KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
42 KC_MEH, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
43 KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT,
44
45 KC_INS, KC_DEL,
46 KC_PGUP,
47 KC_PGDN, KC_SPC, KC_SPC
48 ),
49
50/* Keymap 1: QWERTY layer (games)
51 *
52 * ,--------------------------------------------------. ,--------------------------------------------------.
53 * | | | | | | | | | | | | | | | |
54 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
55 * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
56 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
57 * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
58 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
59 * | | Z | X | C | V | B | | | | N | M | | | | |
60 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
61 * | | | | | | | | | | | |
62 * `----------------------------------' `----------------------------------'
63 * ,-------------. ,-------------.
64 * | | | | | |
65 * ,------|------|------| |------+--------+------.
66 * | | | | | | | |
67 * | | |------| |------| | |
68 * | | | | | | | |
69 * `--------------------' `----------------------'
70 */
71[1] = LAYOUT_ergodox( // layer 1: QWERTY layer (games)
72 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
73 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
74 KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
75 KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS,
76 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
77
78 KC_TRNS, KC_TRNS,
79 KC_TRNS,
80 KC_TRNS, KC_TRNS, KC_TRNS,
81
82 // right hand
83 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
84 KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
85 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
86 KC_TRNS, KC_N, KC_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
87 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
88 KC_TRNS, KC_TRNS,
89 KC_TRNS,
90 KC_TRNS, KC_TRNS, KC_TRNS
91 ),
92
93/* Keymap 2: Symbol Layer
94*
95* ,--------------------------------------------------. ,--------------------------------------------------.
96* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
97* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
98* | | | | + | < | % | # | DF(1)| | | & | [ | ] | \ | : | " |
99* |--------+------+------+------+------+------|QWERTY| | |------+------+------+------+------+--------|
100* | | ! | - | > | = | @ |------| |------| * | { | } | / | ? | |
101* |--------+------+------+------+------+------| DF(0)| | |------+------+------+------+------+--------|
102* | | NUBS | NUHS | / | $ | ^ |COLEMAK | | | | ( | ) | | | |
103* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
104* | | | | | | | | | | | |
105* `----------------------------------' `----------------------------------'
106* ,-------------. ,-------------.
107* | | | | | |
108* ,------|------|------| |------+------+------.
109* | | | | | | | |
110* | | |------| |------| | |
111* | | | | | | | |
112* `--------------------' `--------------------'
113*/
114// SYMBOLS
115[2] = LAYOUT_ergodox(
116 // left hand
117 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
118 KC_TRNS, KC_PIPE, KC_PLUS, KC_LT, KC_PERC, KC_HASH, DF(1),
119 KC_LBRC, KC_EXCLAIM, KC_MINUS, KC_GT, KC_EQUAL, KC_AT,
120 KC_TRNS, KC_NUBS, KC_NUHS, KC_SLSH, KC_DOLLAR, KC_CIRC, DF(0),
121 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
122
123 KC_TRNS, KC_TRNS,
124 KC_TRNS,
125 KC_TRNS, KC_TRNS, KC_TRNS,
126
127 // right hand
128 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
129 KC_TRNS, KC_AMPERSAND, KC_LBRC, KC_RBRC, KC_BSLS, KC_COLN, KC_DQT,
130 KC_ASTERISK, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, KC_TRNS,
131 KC_TRNS, KC_PIPE, KC_LPRN, KC_RPRN, KC_TRNS, KC_TRNS, KC_TRNS,
132 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
133
134 KC_TRNS, KC_TRNS,
135 KC_TRNS,
136 KC_TRNS, KC_TRNS, KC_TRNS
137),
138
139/* Keymap 3:
140 *
141 * ,--------------------------------------------------. ,--------------------------------------------------.
142 * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
143 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
144 * | | | | | | | | | | | | | | | |
145 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
146 * | | | | | | |------| |------| | | | | | |
147 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
148 * | | | | | | | HYPR | | HYPR | | | | | | |
149 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
150 * | | | | | | | | | | | |
151 * `----------------------------------' `----------------------------------'
152 * ,-------------. ,-------------.
153 * | | | | | |
154 * ,------|------|------| |------+------+------.
155 * | | | | | | | |
156 * | | |------ |------| | |
157 * | | | | | | | |
158 * `--------------------' `--------------------'
159 */
160// F-keys
161[3] = LAYOUT_ergodox(
162 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
163 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
164 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
165 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HYPR,
166 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
167
168 KC_TRNS, KC_TRNS,
169 KC_TRNS,
170 KC_TRNS, KC_TRNS, KC_TRNS,
171
172 // right hand
173 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
174 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
175 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
176 KC_HYPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
177 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
178
179 KC_TRNS, KC_TRNS,
180 KC_TRNS,
181 KC_TRNS, KC_TRNS, KC_TRNS
182),
183/* Keymap 4: Numlock
184 *
185 * ,--------------------------------------------------. ,--------------------------------------------------.
186 * | RESET | | | |P-SCRE|S-LOCK|PAUSE | |NLOCK | CALC | = | / | * | | |
187 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
188 * | | | | | | | | | | Vol+ | 7 | 8 | 9 | - | |
189 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
190 * | | | | | | |------| |------| Vol- | 4 | 5 | 6 | + | |
191 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
192 * | | | | | | | HYPR | | HYPR | Mute | 1 | 2 | 3 |Enter | |
193 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
194 * | | | | | | | | 0 | . | RCTL | RCTL |
195 * `----------------------------------' `----------------------------------'
196 * ,-------------. ,-------------.
197 * | | | | | |
198 * ,------|------|------| |------+------+------.
199 * | | | | | | | |
200 * | | |------ |------| | |
201 * | | | | | | | |
202 * `--------------------' `--------------------'
203 */
204[4] = LAYOUT_ergodox(
205 RESET, KC_LSFT, KC_LSFT, KC_SYSREQ, KC_PSCR, KC_SLCK, KC_PAUSE,
206 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
207 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
208 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HYPR,
209 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
210
211 KC_TRNS, KC_TRNS,
212 KC_TRNS,
213 KC_TRNS, KC_TRNS, KC_TRNS,
214
215 // right hand
216 KC_NLCK, KC_CALC, KC_PEQL, KC_PSLS, KC_PAST, KC_LSFT, KC_TRNS,
217 KC_TRNS, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS,
218 KC_VOLD, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS,
219 KC_HYPR, KC_MUTE, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS,
220 KC_TRNS, KC_P0, KC_PDOT, KC_RCTL, KC_RCTL,
221
222 KC_TRNS, KC_TRNS,
223 KC_TRNS,
224 KC_TRNS, KC_TRNS, KC_TRNS
225),
226
227};
228
229
230// Runs constantly in the background, in a loop.
231void matrix_scan_user(void) {
232 static uint8_t state;
233
234 ergodox_board_led_off();
235 ergodox_right_led_1_off();
236 ergodox_right_led_2_off();
237 ergodox_right_led_3_off();
238
239 //reduce LED on time to 1/6th because LEDs are too strong
240 if (++state < 6) return;
241 state = 0;
242
243 //bit 1: default layer 1 - QWERTY
244 if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on();
245
246 uint8_t layer = biton32(layer_state);
247
248 //layer 2 : Symbols (& Fs)
249 //if (layer == 2) ergodox_right_led_2_on();
250
251 //layer 3 : F-lock
252 if (layer == 3) ergodox_right_led_2_on();
253
254 //layer 4 : Num-lock
255 if (layer == 4) ergodox_right_led_3_on();
256};
diff --git a/layouts/community/ergodox/colemak_programmer/readme.md b/layouts/community/ergodox/colemak_programmer/readme.md
new file mode 100644
index 000000000..a1544dcc5
--- /dev/null
+++ b/layouts/community/ergodox/colemak_programmer/readme.md
@@ -0,0 +1,23 @@
1# ErgoDox EZ colemak_programmer
2
3## Features
4
5* Qwerty and colemak 2 in 1
6 * Use DF() macro to swap the bottom layer so it behaves literally as collemak or qwerty
7 * Graphical creator did not allow this so I had to use TO(0) and TO(1) on the picture
8* Symbol layer programmers friendly
9 * Not only symbols are easy to access but common combination are easy too: ->, =>, !=, etc.
10* Windows and Mac
11 * The extra repeated Win key is very handy on Mac
12* Numlock
13
14I came to this layout after several iterations. It is not the ultimate best ergonomic layout but it is the best if you switch back and forth between ergodox and laptops.
15
16## Notes
17* The Quote and Enter can be swapped
18* If you use sculpted key caps try turning the bottom key 180 degrees so it became very comfortable to type with thumb.
19
20Alternatively view the [graphical creator version](http://configure.ergodox-ez.com/keyboard_layouts/kmevwm/edit) but beware it is not the same due to the creator limitations.
21
22![Default](https://i.imgur.com/BCJEoKw.jpg)
23![Default](https://i.imgur.com/0P1jBph.jpg) \ No newline at end of file
diff --git a/layouts/community/ergodox/colemak_programmer/rules.mk b/layouts/community/ergodox/colemak_programmer/rules.mk
new file mode 100644
index 000000000..91b77c77a
--- /dev/null
+++ b/layouts/community/ergodox/colemak_programmer/rules.mk
@@ -0,0 +1 @@
TAP_DANCE_ENABLE = no \ No newline at end of file