aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErez Zukerman <bulk@ezuk.org>2017-03-12 13:50:31 -0400
committerGitHub <noreply@github.com>2017-03-12 13:50:31 -0400
commit987b0f8521ea8bda303498beef53ea7e07464f82 (patch)
tree3df49b3372cc63d12838c0cf3abb407efd47de83
parent7c7a77d4bf8f35cd7f59119be0e95b5d28063988 (diff)
parente3f934ed919f75f27379dcf8b1316fa0ed8e78c3 (diff)
downloadqmk_firmware-987b0f8521ea8bda303498beef53ea7e07464f82.tar.gz
qmk_firmware-987b0f8521ea8bda303498beef53ea7e07464f82.zip
Merge pull request #1154 from dennistruemper/neo2_on_qwerz_hardware
Neo2 on qwertz hardware
-rw-r--r--keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c408
-rw-r--r--keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md194
2 files changed, 602 insertions, 0 deletions
diff --git a/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c
new file mode 100644
index 000000000..ab2464c42
--- /dev/null
+++ b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.c
@@ -0,0 +1,408 @@
1#include "ergodox.h"
2#include "action_layer.h"
3#include "keymap_extras/keymap_german.h"
4
5#define UM 0
6
7#define L0 0 // layer_0
8#define L1 1 // layer_1
9#define L2 2 // layer_2
10#define L3 3 // layer_3
11#define L4 4 // layer_4
12#define L5 5 // layer_5
13#define L6 6 // layer_6
14
15const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
16/*
17 .------------------------------------.------------------------------------.
18 |ESC | 1 | 2 | 3 | 4 | 5 | ´ | ` | 6 | 7 | 8 | 9 | 0 | ^ |
19 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
20 |TAB | X | V | L | C | W |Print| | K | H | G | F | Q | ß |
21 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
22 |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | Y |
23 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
24 |LSFT | ü | ö | ä | P | Z |SPACE| | B | M | , | . | J |RSFT |
25 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
26 |LCTL|LGUI|LALT|MO(3)|MO(2)| !MO(2)|MO(3)|APP |RALT|RCTL|
27 '------------------------' '------------------------'
28 .-----------. .-----------.
29 |VOL- |VOL+ | !MUTE |PLAY |
30 .-----+-----+-----! !-----+-----+-----.
31 ! ! | | ! | ! !
32 ! ! |-----| !-----| ! !
33 ! CTL ! ! ALT ! ! CTL ! ! ALT !
34 |ENTER|MO(1)| TAB | !ESC |MO(1)|SPACE|
35 '-----------------' '-----------------'
36 */
37[L0] = KEYMAP(
38 KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT,
39 KC_TAB, DE_X, DE_V, DE_L, DE_C, DE_W, KC_PSCR,
40 MO(1), DE_U, DE_I, DE_A, DE_E, DE_O,
41 KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_SPACE,
42 KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2),
43 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_VOLU,
44 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
45 /*-*/ /*-*/ /*-*/ /*-*/ CTL_T(KC_ENTER), MO(1), ALT_T(KC_TAB),
46 DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC,
47 KC_TRNS, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS,
48 /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_Y,
49 KC_TRNS, DE_B, DE_M, DE_COMM, DE_DOT, DE_J, KC_RSFT,
50 /*-*/ /*-*/ MO(2), MO(3), KC_APP, KC_RALT, KC_RCTL,
51 KC_MUTE, KC_MPLY,
52 KC_TRNS,
53 CTL_T(KC_ESC), MO(1), ALT_T(KC_SPACE)
54),
55/*
56 .------------------------------------.------------------------------------.
57 | | | | | | | | | | | | | | |
58 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
59 | | € | _ | [ | ] | | | | ! | < | > | = | & | |
60 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
61 | | \ | / | { | } | * |-----!-----! ? | ( | ) | - | : | @ |
62 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
63 | | # | $ | | | ~ | | | | + | % | " | ' | ; | |
64 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
65 | | | | | | ! | | | | |
66 '------------------------' '------------------------'
67 .-----------. .-----------.
68 | | | ! | |
69 .-----+-----+-----! !-----+-----+-----.
70 ! ! | | ! | ! !
71 ! ! !-----! !-----! ! !
72 | | | | ! | | |
73 '-----------------' '-----------------'
74 */
75[L1] = KEYMAP(
76 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
77 KC_TRNS, DE_EURO, DE_UNDS, DE_LBRC, DE_RBRC, KC_TRNS, KC_TRNS,
78 KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR,
79 KC_TRNS, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS,
80 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
81 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
82 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
83 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
84 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
85 KC_TRNS, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_TRNS,
86 /*-*/ DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT,
87 KC_TRNS, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_TRNS,
88 /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
89 KC_TRNS, KC_TRNS,
90 KC_TRNS,
91 KC_TRNS, KC_TRNS, KC_TRNS
92),
93/*
94 * .------------------------------------.------------------------------------.
95 * | | | | | | | | | | | | | | |
96 * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
97 * | |PGUP|BSPC| UP |DEL |PGDN| | | | 7 | 8 | 9 | | |
98 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
99 * | |HOME|LEFT|DOWN|RGHT|END |-----!-----! | 4 | 5 | 6 | | |
100 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
101 * | | | |PREV|NEXT| | | | | 1 | 2 | 3 | | |
102 * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
103 * | | | | | | ! | | | | |
104 * '------------------------' '------------------------'
105 * .-----------. .-----------.
106 * | | | ! | |
107 * .-----+-----+-----! !-----+-----+-----.
108 * ! ! | | ! | ! !
109 * ! ! !-----! !-----! ! !
110 * | | | | ! | | 0 |
111 * '-----------------' '-----------------'
112 */
113[L2] = KEYMAP(
114 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
115 KC_TRNS, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS,
116 KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
117 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
118 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
119 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
120 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
121 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
123 KC_TRNS, KC_TRNS, DE_7, DE_8, DE_9, KC_TRNS, KC_TRNS,
124 /*-*/ KC_TRNS, DE_4, DE_5, DE_6, KC_TRNS, KC_TRNS,
125 KC_TRNS, KC_TRNS, DE_1, DE_2, DE_3, KC_TRNS, KC_TRNS,
126 /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
127 KC_TRNS, KC_TRNS,
128 KC_TRNS,
129 KC_TRNS, KC_TRNS, DE_0
130),
131/*
132 * .------------------------------------.------------------------------------.
133 * | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | |
134 * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
135 * | | F7 | F8 | F9 | F10| F11| F12 | | |M_WU|M_CU|M_WD| | |
136 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
137 * |M_B5 |M_B4|M_B3|M_B2|M_B1| |-----!-----! |M_CL|M_CD|M_CR| | |
138 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
139 * | | |M_A2|M_A1|M_A0| | | | | | | | | |
140 * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
141 * | | | | | | ! | | | | |
142 * '------------------------' '------------------------'
143 * .-----------. .-----------.
144 * | | | ! | |
145 * .-----+-----+-----! !-----+-----+-----.
146 * ! ! | | ! | ! !
147 * ! ! !-----! !-----! ! !
148 * | | | | ! | | |
149 * '-----------------' '-----------------'
150 */
151[L3] = KEYMAP(
152 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
153 KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
154 KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS,
155 KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS,
156 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
157 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
158 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
159 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
160 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
161 KC_TRNS, KC_TRNS, KC_WH_U, KC_MS_U, KC_WH_D, KC_TRNS, KC_TRNS,
162 /*-*/ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
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,
165 KC_TRNS, KC_TRNS,
166 KC_TRNS,
167 KC_TRNS, KC_TRNS, KC_TRNS
168),
169/*
170 * .------------------------------------.------------------------------------.
171 * | | | | | | | | | | | | | | |
172 * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
173 * | | | | | | | | | | | | | | |
174 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
175 * | | | | | | |-----!-----! | | | | | |
176 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
177 * | | | | | | | | | | | | | | |
178 * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
179 * | | | | | | ! | | | | |
180 * '------------------------' '------------------------'
181 * .-----------. .-----------.
182 * | | | ! | |
183 * .-----+-----+-----! !-----+-----+-----.
184 * ! ! | | ! | ! !
185 * ! ! !-----! !-----! ! !
186 * | | | | ! | | |
187 * '-----------------' '-----------------'
188 */
189[L4] = KEYMAP(
190 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
191 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
192 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
193 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
194 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
195 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
196 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
197 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
198 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
199 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
200 /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
201 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
202 /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
203 KC_TRNS, KC_TRNS,
204 KC_TRNS,
205 KC_TRNS, KC_TRNS, KC_TRNS
206),
207/*
208 * .------------------------------------.------------------------------------.
209 * | | | | | | | | | | | | | | |
210 * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
211 * | | | | | | | | | | | | | | |
212 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
213 * | | | | | | |-----!-----! | | | | | |
214 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
215 * | | | | | | | | | | | | | | |
216 * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
217 * | | | | | | ! | | | | |
218 * '------------------------' '------------------------'
219 * .-----------. .-----------.
220 * | | | ! | |
221 * .-----+-----+-----! !-----+-----+-----.
222 * ! ! | | ! | ! !
223 * ! ! !-----! !-----! ! !
224 * | | | | ! | | |
225 * '-----------------' '-----------------'
226 */
227[L5] = KEYMAP(
228 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
229 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
230 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
231 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
232 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
233 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
234 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
235 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
236 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
237 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
238 /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
239 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
240 /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
241 KC_TRNS, KC_TRNS,
242 KC_TRNS,
243 KC_TRNS, KC_TRNS, KC_TRNS
244),
245/*
246 * .------------------------------------.------------------------------------.
247 * | | | | | | | | | | | | | | |
248 * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
249 * | | | | | | | | | | | | | | |
250 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
251 * | | | | | | |-----!-----! | | | | | |
252 * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
253 * | | | | | | | | | | | | | | |
254 * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
255 * | | | | | | ! | | | | |
256 * '------------------------' '------------------------'
257 * .-----------. .-----------.
258 * | | | ! | |
259 * .-----+-----+-----! !-----+-----+-----.
260 * ! ! | | ! | ! !
261 * ! ! !-----! !-----! ! !
262 * | | | | ! | | |
263 * '-----------------' '-----------------'
264 */
265[L6] = KEYMAP(
266 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
267 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
268 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
269 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
270 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
271 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
272 /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
273 /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
274 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
275 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
276 /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
277 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
278 /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
279 KC_TRNS, KC_TRNS,
280 KC_TRNS,
281 KC_TRNS, KC_TRNS, KC_TRNS
282),
283};
284
285const uint16_t PROGMEM fn_actions[] = {};
286
287#define UC_MODE_WIN 0
288#define UC_MODE_LINUX 1
289#define UC_MODE_OSX 2
290
291// TODO: allow default mode to be configured
292static uint16_t unicode_mode = UC_MODE_WIN;
293
294uint16_t hextokeycode(uint8_t hex) {
295 if (hex == 0x0) {
296 return KC_P0;
297 }
298 if (hex < 0xA) {
299 return KC_P1 + (hex - 0x1);
300 }
301 return KC_A + (hex - 0xA);
302}
303
304void unicode_action_function(uint16_t hi, uint16_t lo) {
305 switch (unicode_mode) {
306 case UC_MODE_WIN:
307 register_code(KC_LALT);
308
309 register_code(KC_PPLS);
310 unregister_code(KC_PPLS);
311
312 register_code(hextokeycode((hi & 0xF0) >> 4));
313 unregister_code(hextokeycode((hi & 0xF0) >> 4));
314 register_code(hextokeycode((hi & 0x0F)));
315 unregister_code(hextokeycode((hi & 0x0F)));
316 register_code(hextokeycode((lo & 0xF0) >> 4));
317 unregister_code(hextokeycode((lo & 0xF0) >> 4));
318 register_code(hextokeycode((lo & 0x0F)));
319 unregister_code(hextokeycode((lo & 0x0F)));
320
321 unregister_code(KC_LALT);
322 break;
323 case UC_MODE_LINUX:
324 register_code(KC_LCTL);
325 register_code(KC_LSFT);
326
327 register_code(KC_U);
328 unregister_code(KC_U);
329
330 register_code(hextokeycode((hi & 0xF0) >> 4));
331 unregister_code(hextokeycode((hi & 0xF0) >> 4));
332 register_code(hextokeycode((hi & 0x0F)));
333 unregister_code(hextokeycode((hi & 0x0F)));
334 register_code(hextokeycode((lo & 0xF0) >> 4));
335 unregister_code(hextokeycode((lo & 0xF0) >> 4));
336 register_code(hextokeycode((lo & 0x0F)));
337 unregister_code(hextokeycode((lo & 0x0F)));
338
339 unregister_code(KC_LCTL);
340 unregister_code(KC_LSFT);
341 break;
342 case UC_MODE_OSX:
343 break;
344 }
345}
346
347const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
348 if (!record->event.pressed) {
349 return MACRO_NONE;
350 }
351 // MACRODOWN only works in this function
352 switch(id) {
353 case UM:
354 unicode_mode = (unicode_mode + 1) % 2;
355 break;
356
357
358 default:
359 break;
360 }
361 return MACRO_NONE;
362};
363
364// Runs just one time when the keyboard initializes.
365void matrix_init_user(void) {
366
367};
368
369// Runs constantly in the background, in a loop.
370void matrix_scan_user(void) {
371 uint8_t layer = biton32(layer_state);
372
373 ergodox_board_led_off();
374 ergodox_right_led_1_off();
375 ergodox_right_led_2_off();
376 ergodox_right_led_3_off();
377 switch (layer) {
378 case L1:
379 ergodox_right_led_1_on();
380 break;
381 case L2:
382 ergodox_right_led_2_on();
383 break;
384 case L3:
385 ergodox_right_led_3_on();
386 break;
387 case L4:
388 ergodox_right_led_1_on();
389 ergodox_right_led_2_on();
390 break;
391 case L5:
392 ergodox_right_led_1_on();
393 ergodox_right_led_3_on();
394 break;
395 // case L6:
396 // ergodox_right_led_2_on();
397 // ergodox_right_led_3_on();
398 // break;
399 // case L7:
400 // ergodox_right_led_1_on();
401 // ergodox_right_led_2_on();
402 // ergodox_right_led_3_on();
403 // break;
404 default:
405 ergodox_board_led_off();
406 break;
407 }
408};
diff --git a/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md
new file mode 100644
index 000000000..d9fcda966
--- /dev/null
+++ b/keyboards/ergodox/keymaps/neo2_on_qwertz_hardware/keymap.md
@@ -0,0 +1,194 @@
1# Neo2 for ErgoDox on QWERTZ
2#
3# Description
4This layout is ment to be used on PCs with DE-de with an additional guest keyboard. E.g. on your PC at work you can use your ergodox with neo but a second keybord is plugged in so your coworkers can enter a few signs if necessary. I live in Germany, so this is my usecase.
5# Layers
6[Layer0](#layer-0)
7Letters, modifiers and volume
8
9[Layer1](#layer-1)
10Symbols
11
12[Layer2](#layer-2)
13Motion, digits and next/prev Song
14
15[Layer3](#layer-3)
16F1 to F12 and mouse actions
17
18[Layer4](#layer-4)
19not used
20
21[Layer5](#layer-5)
22not used
23
24[Layer6](#layer-6)
25not used
26
27
28## Layer 0
29
30 .------------------------------------.------------------------------------.
31 |ESC | 1 | 2 | 3 | 4 | 5 | ´ | ` | 6 | 7 | 8 | 9 | 0 | ^ |
32 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
33 |TAB | X | V | L | C | W |Print| | K | H | G | F | Q | ß |
34 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
35 |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | Y |
36 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
37 |LSFT | ü | ö | ä | P | Z |SPACE| | B | M | , | . | J |RSFT |
38 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
39 |LCTL|LGUI|LALT|MO(3)|MO(2)| !MO(2)|MO(3)|APP |RALT|RCTL|
40 '------------------------' '------------------------'
41 .-----------. .-----------.
42 |VOL- |VOL+ | !MUTE |PLAY |
43 .-----+-----+-----! !-----+-----+-----.
44 ! ! | | ! | ! !
45 ! ! |-----| !-----| ! !
46 ! CTL ! ! ALT ! ! CTL ! ! ALT !
47 |ENTER|MO(1)| TAB | !ESC |MO(1)|SPACE|
48 '-----------------' '-----------------'
49
50* Left side ESC, TAB, [SymbolLayer], Shift, Ctr, Gui(Windows key), and Alt like normal QWERTZ with neo2.
51* Space on right side of left half for mous activity so you don't have to leave the mouse for Space.
52* Top row of thumb keys is hard to reach for me, so I put media control on there.
53* Thumb keys make use of modifier/tap. E.g. if you tap the Enter key it will be Enter. If you keep it pressed down it will be Ctr. The hold action is written on top of the tap action.
54* The small middle thumb keys are not used, es well as the 1.5 sized ones on the left side of the right half.
55
56
57## Layer 1
58
59 .------------------------------------.------------------------------------.
60 | | | | | | | | | | | | | | |
61 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
62 | | € | _ | [ | ] | | | | ! | < | > | = | & | |
63 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
64 | | \ | / | { | } | * |-----!-----! ? | ( | ) | - | : | @ |
65 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
66 | | # | $ | | | ~ | | | | + | % | " | ' | ; | |
67 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
68 | | | | | | ! | | | | |
69 '------------------------' '------------------------'
70 .-----------. .-----------.
71 | | | ! | |
72 .-----+-----+-----! !-----+-----+-----.
73 ! ! | | ! | ! !
74 ! ! !-----! !-----! ! !
75 | | | | ! | | |
76 '-----------------' '-----------------'
77
78
79## Layer 2
80
81 .------------------------------------.------------------------------------.
82 | | | | | | | | | | | | | | |
83 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
84 | |PGUP|BSPC| UP |DEL |PGDN| | | | 7 | 8 | 9 | | |
85 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
86 | |HOME|LEFT|DOWN|RGHT|END |-----!-----! | 4 | 5 | 6 | | |
87 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
88 | | | |PREV|NEXT| | | | | 1 | 2 | 3 | | |
89 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
90 | | | | | | ! | | | | |
91 '------------------------' '------------------------'
92 .-----------. .-----------.
93 | | | ! | |
94 .-----+-----+-----! !-----+-----+-----.
95 ! ! | | ! | ! !
96 ! ! !-----! !-----! ! !
97 | | | | ! | | 0 |
98 '-----------------' '-----------------'
99
100
101
102## Layer 3
103
104 .------------------------------------.------------------------------------.
105 | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | |
106 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
107 | | F7 | F8 | F9 | F10| F11| F12 | | |M_WU|M_CU|M_WD| | |
108 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
109 |M_B5 |M_B4|M_B3|M_B2|M_B1| |-----!-----! |M_CL|M_CD|M_CR| | |
110 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
111 | | |M_A2|M_A1|M_A0| | | | | | | | | |
112 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
113 | | | | | | ! | | | | |
114 '------------------------' '------------------------'
115 .-----------. .-----------.
116 | | | ! | |
117 .-----+-----+-----! !-----+-----+-----.
118 ! ! | | ! | ! !
119 ! ! !-----! !-----! ! !
120 | | | | ! | | |
121 '-----------------' '-----------------'
122* M_A Mouse acceleration
123* M_B Mouse button
124* M_C Mouse cursor
125* M_W Mouse wheel
126
127## Layer 4
128
129
130
131 .------------------------------------.------------------------------------.
132 | | | | | | | | | | | | | | |
133 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
134 | | | | | | | | | | | | | | |
135 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
136 | | | | | | |-----!-----! | | | | | |
137 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
138 | | | | | | | | | | | | | | |
139 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
140 | | | | | | ! | | | | |
141 '------------------------' '------------------------'
142 .-----------. .-----------.
143 | | | ! | |
144 .-----+-----+-----! !-----+-----+-----.
145 ! ! | | ! | ! !
146 ! ! !-----! !-----! ! !
147 | | | | ! | | |
148 '-----------------' '-----------------'
149
150
151## Layer 5
152
153
154 .------------------------------------.------------------------------------.
155 | | | | | | | | | | | | | | |
156 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
157 | | | | | | | | | | | | | | |
158 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
159 | | | | | | |-----!-----! | | | | | |
160 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
161 | | | | | | | | | | | | | | |
162 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
163 | | | | | | ! | | | | |
164 '------------------------' '------------------------'
165 .-----------. .-----------.
166 | | | ! | |
167 .-----+-----+-----! !-----+-----+-----.
168 ! ! | | ! | ! !
169 ! ! !-----! !-----! ! !
170 | | | | ! | | |
171 '-----------------' '-----------------'
172
173
174## Layer 6
175
176 .------------------------------------.------------------------------------.
177 | | | | | | | | | | | | | | |
178 !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
179 | | | | | | | | | | | | | | |
180 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
181 | | | | | | |-----!-----! | | | | | |
182 !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
183 | | | | | | | | | | | | | | |
184 '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
185 | | | | | | ! | | | | |
186 '------------------------' '------------------------'
187 .-----------. .-----------.
188 | | | ! | |
189 .-----+-----+-----! !-----+-----+-----.
190 ! ! | | ! | ! !
191 ! ! !-----! !-----! ! !
192 | | | | ! | | |
193 '-----------------' '-----------------'
194