aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox/french_hacker/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ergodox/french_hacker/keymap.c')
-rw-r--r--layouts/community/ergodox/french_hacker/keymap.c263
1 files changed, 35 insertions, 228 deletions
diff --git a/layouts/community/ergodox/french_hacker/keymap.c b/layouts/community/ergodox/french_hacker/keymap.c
index b4c8e37bd..44b0c4786 100644
--- a/layouts/community/ergodox/french_hacker/keymap.c
+++ b/layouts/community/ergodox/french_hacker/keymap.c
@@ -7,82 +7,64 @@
7#define BASE 0 // default Colemak Mod-DH layer 7#define BASE 0 // default Colemak Mod-DH layer
8#define SYMB 1 // symbols 8#define SYMB 1 // symbols
9#define MDIA 2 // media keys 9#define MDIA 2 // media keys
10#define ACC 3 // accented characters
11
12#define QCOPY 0 // Qubes OS VM to VM copy
13#define QPASTE 1 // Qubes OS VM to VM paste
14#define M_ACIRC 2 // â
15#define M_ECIRC 3 // ê
16#define M_ICIRC 4 // î
17#define M_OCIRC 5 // ô
18#define M_UCIRC 6 // û
19#define M_YCIRC 7 // ŷ
20#define M_AUMLT 8 // ä
21#define M_EUMLT 9 // ë
22#define M_IUMLT 10 // ï
23#define M_OUMLT 11 // ö
24#define M_UUMLT 12 // ü
25#define M_YUMLT 13 // ÿ
26 10
27const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28/* Keymap 0: Base Colemak Mod-DH layer 12/* Keymap 0: Base Colemak Mod-DH layer
29 * 13 *
30 * ,--------------------------------------------------. ,--------------------------------------------------. 14 * ,--------------------------------------------------. ,--------------------------------------------------.
31 * | Esc | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | 15 * | Esc | & _1 | é _2 | " _3 | ' _4 | ( _5 | | | | - _6 | è _7 | _ _8 | ç _9 | à _0 | |
32 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 16 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
33 * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | | 17 * | | Q | W | F | P | B | TO(0)| |TO(2) | J | L | U | Y | ; | Ins |
34 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 18 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
35 * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | Bcksp | 19 * | Tab | A | R | S | T | G |------| |------| M | N | E | I | O | Bcksp |
36 * |--------+------+------+------+------+------| TO(1)| |OSL(3)|------+------+------+------+------+--------| 20 * |--------+------+------+------+------+------| TO(1)| | MEH |------+------+------+------+------+--------|
37 * | LShift | Z | X | C | D | V | | | | K | H | , | . | : | Rshift | 21 * | LShift | Z | X | C | D | V | | | | K | H | , | . | : | Rshift |
38 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 22 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
39 * | Ins | Caps | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp | 23 * | ù | | Left | Right| MO(2)| | MO(2)| Down | Up | PgDn | PgUp |
40 * `----------------------------------' `----------------------------------' 24 * `----------------------------------' `----------------------------------'
41 * ,-------------. ,-------------. 25 * ,-------------. ,-------------.
42 * |QCopy | Ralt | | Ralt |QPaste| 26 * | | Ralt | | Ralt | |
43 * ,------|------|------| |------+------+------. 27 * ,-------|------|------| |------+------+------.
44 * | | | Home | | End | | | 28 * | | | Home | | End | | |
45 * | Space| Ctrl |------| |------| Ctrl |Enter | 29 * | Space | Ctrl |------| |------| Ctrl | Enter |
46 * | | | LAlt | | LAlt | | | 30 * | | | LAlt | | LAlt | | |
47 * `--------------------' `--------------------' 31 * `---------------------' `---------------------'
48 */ 32 */
49 // If it accepts an argument (i.e, is a function), it doesn't need KC_.
50// Otherwise, it needs KC_*
51[BASE] = LAYOUT_ergodox( // layer 0 : default 33[BASE] = LAYOUT_ergodox( // layer 0 : default
52 // left hand 34 // left hand
53 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, 35 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
54 KC_TRNS, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE), 36 KC_NO, FR_Q, FR_W, KC_F, KC_P, KC_B, TO(BASE),
55 KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G, 37 KC_TAB, FR_A, KC_R, KC_S, KC_T, KC_G,
56 KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB), 38 KC_LSFT, FR_Z, KC_X, KC_C, KC_D, KC_V, TO(SYMB),
57 KC_INS, KC_CAPS, KC_LEFT,KC_RIGHT, MO(SYMB), 39 FR_UGRV, KC_NO, KC_LEFT, KC_RIGHT, MO(SYMB),
58 M(QCOPY), KC_RALT, 40 KC_NO, KC_RALT,
59 KC_HOME, 41 KC_HOME,
60 KC_SPC,KC_LCTRL, KC_LALT, 42 KC_SPC,KC_LCTRL, KC_LALT,
61 // right hand 43 // right hand
62 KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, 44 KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
63 TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_TRNS, 45 TO(MDIA), KC_J, KC_L, KC_U, KC_Y, FR_SCLN, KC_INS,
64 FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC, 46 FR_M, KC_N, KC_E, KC_I, KC_O, KC_BSPC,
65 OSL(ACC), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT, 47 OSM(MOD_MEH), KC_K, KC_H, FR_COMM, FR_DOT, FR_COLN, KC_RSFT,
66 MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP, 48 MO(SYMB), KC_DOWN, KC_UP, KC_PGDN, KC_PGUP,
67 49
68 KC_RALT, M(QPASTE), 50 KC_RALT, KC_NO,
69 KC_END, 51 KC_END,
70 KC_LALT,KC_RCTL, KC_ENT 52 KC_LALT,KC_RCTL, KC_ENT
71 ), 53 ),
72 54
73 55
74/* Keymap 1: Symbol Layer 56/* Keymap 1: Symbol Layer
75 * // TODO missing: ¤ 57 *
76 * ,--------------------------------------------------. ,--------------------------------------------------. 58 * ,--------------------------------------------------. ,--------------------------------------------------.
77 * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | 59 * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
78 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 60 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
79 * | | § | < | { | \ | ~ | | | | % | @ | } | > | µ | F12 | 61 * | | § | < | { | \ | ~ | | | | % | @ | } | > | ¨ | F12 |
80 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 62 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
81 * | | ' | = | - | ( | + |------| |------| * | ) | _ | / | " | | 63 * | | ' | = | - | ( | + |------| |------| * | ) | _ | / | " | |
82 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 64 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
83 * | | ` | ? | # | [ | | | | | | & | ] | $ | ! | ^ | | 65 * | | ` | ? | # | [ | | | | | | & | ] | $ | ! | ^ | |
84 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 66 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
85 * | € | £ | $ | | | | | | | ß | | 67 * | € | £ | ¤ | ² | | | | ° | µ | ß | |
86 * `----------------------------------' `----------------------------------' 68 * `----------------------------------' `----------------------------------'
87 * ,-------------. ,-------------. 69 * ,-------------. ,-------------.
88 * | | | | | | 70 * | | | | | |
@@ -95,20 +77,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
95// SYMBOLS 77// SYMBOLS
96[SYMB] = LAYOUT_ergodox( 78[SYMB] = LAYOUT_ergodox(
97 // left hand 79 // left hand
98 M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 80 M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
99 KC_TRNS,FR_SECT,FR_LABK, FR_LCBR,FR_BSLS,FR_TILD,KC_TRNS, 81 KC_TRNS, FR_SECT, FR_LABK, FR_LCBR, FR_BSLS, FR_TILD, KC_TRNS,
100 KC_TRNS,FR_QUOT,FR_EQL, FR_MINS,FR_LPRN,FR_PLUS, 82 KC_TRNS, FR_QUOT, FR_EQL, FR_MINS, FR_LPRN, FR_PLUS,
101 KC_TRNS,FR_GRV,FR_QUES,FR_HASH,FR_LBRC,FR_PIPE,KC_TRNS, 83 KC_TRNS, FR_GRV, FR_QUES, FR_HASH, FR_LBRC, FR_PIPE, KC_TRNS,
102 FR_EURO,FR_PND,FR_DLR,KC_TRNS,KC_TRNS, 84 FR_EURO, FR_PND, FR_CURR, FR_SUP2, KC_TRNS,
103 KC_TRNS,KC_TRNS, 85 KC_TRNS,KC_TRNS,
104 KC_TRNS, 86 KC_TRNS,
105 KC_TRNS,KC_TRNS,KC_TRNS, 87 KC_TRNS,KC_TRNS,KC_TRNS,
106 // right hand 88 // right hand
107 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 89 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
108 KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_MICR, KC_F12, 90 KC_TRNS, FR_PERC, FR_AT, FR_RCBR, FR_RABK, FR_DIAE, KC_F12,
109 FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS, 91 FR_ASTR, FR_RPRN, FR_UNDS, FR_SLSH, FR_DQUO, KC_TRNS,
110 KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS, 92 KC_TRNS, FR_AMPR, FR_RBRC, FR_DLR, FR_EXLM, FR_CIRC, KC_TRNS,
111 KC_TRNS, KC_TRNS, KC_TRNS, ALGR(KC_S), KC_TRNS, 93 KC_TRNS, FR_DEG, FR_MICR, ALGR(KC_S), KC_TRNS,
112 KC_TRNS, KC_TRNS, 94 KC_TRNS, KC_TRNS,
113 KC_TRNS, 95 KC_TRNS,
114 KC_TRNS, KC_TRNS, KC_TRNS 96 KC_TRNS, KC_TRNS, KC_TRNS
@@ -154,178 +136,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
154 KC_TRNS, 136 KC_TRNS,
155 KC_TRNS, KC_TRNS, KC_WBAK 137 KC_TRNS, KC_TRNS, KC_WBAK
156), 138),
157
158/* Keymap 3: accented characters
159 *
160 * ,--------------------------------------------------. ,--------------------------------------------------.
161 * | | | | | | | | | | | | | | | |
162 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
163 * | | | à | â | ä | | | | | | | î | ï | | |
164 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
165 * | | é | è | ê | ë | |------| |------| | | ô | ö | | |
166 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
167 * | | | ù | û | ü | | | | | | | ŷ | ÿ | | |
168 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
169 * | | | | | | | | | | | |
170 * `----------------------------------' `----------------------------------'
171 * ,-------------. ,-------------.
172 * | | | | | |
173 * ,------|------|------| |------+------+------.
174 * | | | | | | | |
175 * | | |------| |------| | |
176 * | | | | | | | |
177 * `--------------------' `--------------------'
178 */
179// ACCENTED CHARACTERS
180[ACC] = LAYOUT_ergodox(
181 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
182
183 KC_TRNS, KC_TRNS, FR_AGRV, M(M_ACIRC), M(M_AUMLT), KC_TRNS, KC_TRNS,
184 KC_TRNS, FR_EACU, FR_EGRV, M(M_ECIRC), M(M_EUMLT), KC_TRNS,
185 KC_TRNS, KC_TRNS, FR_UGRV, M(M_UCIRC), M(M_UUMLT), KC_TRNS, KC_TRNS,
186 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
187 KC_TRNS, KC_TRNS,
188 KC_TRNS,
189 KC_TRNS, KC_TRNS, KC_TRNS,
190 // right hand
191 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
192 KC_TRNS, KC_TRNS, KC_TRNS, M(M_ICIRC), M(M_IUMLT), KC_TRNS, KC_TRNS,
193 KC_TRNS, KC_TRNS, M(M_OCIRC), M(M_OUMLT), KC_TRNS, KC_TRNS,
194 KC_TRNS, KC_TRNS, KC_TRNS, M(M_YCIRC), M(M_YUMLT), KC_TRNS, KC_TRNS,
195 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
196 KC_TRNS, KC_TRNS,
197 KC_TRNS,
198 KC_TRNS, KC_TRNS, KC_TRNS
199),
200};
201
202const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
203{
204 // MACRODOWN only works in this function
205 switch(id) {
206 case QCOPY:
207 if (record->event.pressed) {
208 return MACRO(I(255),
209 D(LCTRL),
210 T(C),
211 D(LSFT),
212 T(C),
213 U(LCTRL),
214 U(LSFT),
215 END);
216 }
217 break;
218 case QPASTE:
219 if (record->event.pressed) {
220 return MACRO(I(255),
221 D(LCTRL),
222 D(LSFT),
223 T(V),
224 U(LCTRL),
225 T(INS),
226 U(LSFT),
227 END);
228 }
229 break;
230 case M_ACIRC:
231 if (record->event.pressed) {
232 return MACRO(T(LBRC), // FR_CIRC
233 T(Q), // FR_A
234 END);
235 }
236 break;
237 case M_ECIRC:
238 if (record->event.pressed) {
239 return MACRO(T(LBRC), // FR_CIRC
240 T(E),
241 END);
242 }
243 break;
244 case M_UCIRC:
245 if (record->event.pressed) {
246 return MACRO(T(LBRC), // FR_CIRC
247 T(U),
248 END);
249 }
250 break;
251 case M_ICIRC:
252 if (record->event.pressed) {
253 return MACRO(T(LBRC), // FR_CIRC
254 T(I),
255 END);
256 }
257 break;
258 case M_OCIRC:
259 if (record->event.pressed) {
260 return MACRO(T(LBRC), // FR_CIRC
261 T(O),
262 END);
263 }
264 break;
265 case M_YCIRC:
266 if (record->event.pressed) {
267 return MACRO(T(LBRC), // FR_CIRC
268 T(Y),
269 END);
270 }
271 break;
272 case M_AUMLT:
273 if (record->event.pressed) {
274 return MACRO(D(LSFT),
275 T(LBRC),
276 U(LSFT),
277 T(Q),
278 END);
279 }
280 break;
281 case M_EUMLT:
282 if (record->event.pressed) {
283 return MACRO(D(LSFT),
284 T(LBRC),
285 U(LSFT),
286 T(E),
287 END);
288 }
289 break;
290 case M_UUMLT:
291 if (record->event.pressed) {
292 return MACRO(D(LSFT),
293 T(LBRC),
294 U(LSFT),
295 T(U),
296 END);
297 }
298 break;
299 case M_IUMLT:
300 if (record->event.pressed) {
301 return MACRO(D(LSFT),
302 T(LBRC),
303 U(LSFT),
304 T(I),
305 END);
306 }
307 break;
308 case M_OUMLT:
309 if (record->event.pressed) {
310 return MACRO(D(LSFT),
311 T(LBRC),
312 U(LSFT),
313 T(O),
314 END);
315 }
316 break;
317 case M_YUMLT:
318 if (record->event.pressed) {
319 return MACRO(D(LSFT),
320 T(LBRC),
321 U(LSFT),
322 T(Y),
323 END);
324 }
325 break;
326
327 }
328 return MACRO_NONE;
329}; 139};
330 140
331// Runs just one time when the keyboard initializes. 141// Runs just one time when the keyboard initializes.
@@ -350,9 +160,6 @@ void matrix_scan_user(void) {
350 case MDIA: 160 case MDIA:
351 ergodox_right_led_2_on(); 161 ergodox_right_led_2_on();
352 break; 162 break;
353 case ACC:
354 ergodox_right_led_3_on();
355 break;
356 default: 163 default:
357 // none 164 // none
358 break; 165 break;