aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Loiseau <didierloiseau+git@gmail.com>2016-02-18 00:47:23 +0100
committerDidier Loiseau <didierloiseau+git@gmail.com>2016-04-02 18:16:30 +0200
commit7840e69bfaee1d67de273c235b532d6f20c905a9 (patch)
tree42e72e40766c3aed235d999ac1b99a059201c749
parenta7cef2ca0a2322448d02008337013936b1d550ec (diff)
downloadqmk_firmware-7840e69bfaee1d67de273c235b532d6f20c905a9.tar.gz
qmk_firmware-7840e69bfaee1d67de273c235b532d6f20c905a9.zip
BÉPO over CSA: AltGr layer
- implemented the most useful characters: - all French characters + € - common programmer characters - other keys implemented as KC_NO to avoid mistyping a character from a lower layer - AltGr+Shift not supported (yet)
-rw-r--r--keyboard/ergodox_ez/keymaps/bepo/keymap.c54
-rw-r--r--quantum/keymap_extras/keymap_canadian_multilingual.h11
2 files changed, 64 insertions, 1 deletions
diff --git a/keyboard/ergodox_ez/keymaps/bepo/keymap.c b/keyboard/ergodox_ez/keymaps/bepo/keymap.c
index ce887997e..64fac7f9b 100644
--- a/keyboard/ergodox_ez/keymaps/bepo/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/bepo/keymap.c
@@ -36,6 +36,8 @@ enum macros {
36 M_SCLN, 36 M_SCLN,
37 M_GRV, 37 M_GRV,
38 M_NBSP, 38 M_NBSP,
39 // macros for characters that don't have a simple key combination in LR_CA_MULT_ALTGR
40 M_CRC,
39 // other layer macros 41 // other layer macros
40 M_DBL0, 42 M_DBL0,
41 M_FNLR, 43 M_FNLR,
@@ -108,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
108 KC_BSPC, CM_DCRC, KC_V, KC_D, KC_L, KC_J, KC_Z, 110 KC_BSPC, CM_DCRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
109 KC_C, KC_T, KC_S, KC_R, KC_N, KC_M, 111 KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
110 KC_ENT, CM_APOS, KC_Q, KC_G, KC_H, KC_F, M(M_CMSFT), 112 KC_ENT, CM_APOS, KC_Q, KC_G, KC_H, KC_F, M(M_CMSFT),
111 CM_ALGR, KC_PERC, KC_HOME, CM_CCED, CTL_T(KC_END), 113 MO(LR_CSA_AGR), KC_PERC, KC_HOME, CM_CCED, CTL_T(KC_END),
112 114
113 KC_LEFT, KC_RGHT, 115 KC_LEFT, KC_RGHT,
114 KC_UP, 116 KC_UP,
@@ -158,6 +160,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
158 KC_TRNS, 160 KC_TRNS,
159 KC_TRNS, KC_TRNS, M(M_NBSP) 161 KC_TRNS, KC_TRNS, M(M_NBSP)
160 ), 162 ),
163/* AltGr-ed BÉPO over Canadian Multilingual
164 * "////" indicates that the key is disabled (unsupported bépo character)
165 *
166 * ,--------------------------------------------------. ,--------------------------------------------------.
167 * | ////// | //// | < | > | [ | ] | | | | ^ | //// | //// | //// | //// | ////// |
168 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
169 * | | | |dead '| & | œ |dead `| | | | //// | //// | //// | //// | //// | ////// |
170 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
171 * | ////// | æ | ù |dead "| € | //// |------| |------| //// | //// | //// | //// | //// | ////// |
172 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
173 * | | \ | { | } | //// | ~ | | | | //// | //// | //// | //// | //// | |
174 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
175 * | | | | | | | | //// | | //// | |
176 * `----------------------------------' `-----------------------------------'
177 * ,-------------. ,-------------.
178 * | | | | | |
179 * ,------|------|------| |------+------+------.
180 * | | | | | | | |
181 * | _ | |------| |------| | _ |
182 * | | | | | | | |
183 * `--------------------' `--------------------'
184 */
185[LR_CSA_AGR] = KEYMAP(
186 // left hand
187 KC_NO, KC_NO, CM_LESS, CM_GRTR, CM_LBRC, CM_RBRC, KC_TRNS,
188 KC_TRNS, CM_PIPE, CM_DACT, KC_AMPR, CM_OE, CM_DGRV, KC_TRNS,
189 KC_NO, CM_AE, CM_UGRV, CM_DTRM, CM_EURO, KC_NO,
190 KC_TRNS, CM_BSLS, CM_LCBR, CM_RCBR, KC_NO, CM_TILD, KC_TRNS,
191 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
192
193 KC_TRNS, KC_TRNS,
194 KC_TRNS,
195 KC_UNDS, KC_TRNS, KC_TRNS,
196
197 // right hand
198 KC_TRNS, M(M_CRC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
199 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
200 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
201 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
202 KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS,
203
204 KC_TRNS, KC_TRNS,
205 KC_TRNS,
206 KC_TRNS, KC_TRNS, KC_UNDS
207 ),
161/* Numeric Layer 208/* Numeric Layer
162 * 209 *
163 * ,--------------------------------------------------. ,--------------------------------------------------. 210 * ,--------------------------------------------------. ,--------------------------------------------------.
@@ -310,6 +357,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
310 } 357 }
311 } 358 }
312 break; 359 break;
360 case M_CRC:
361 if (record->event.pressed) {
362 return MACRO(TYPE(CM_DCRC), T(SPACE), END);
363 }
364 break;
313 case M_DBL0: 365 case M_DBL0:
314 if (record->event.pressed) { 366 if (record->event.pressed) {
315 return MACRO( I(25), T(P0), T(P0), END ); 367 return MACRO( I(25), T(P0), T(P0), END );
diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h
index ae60ffe37..e30419b5b 100644
--- a/quantum/keymap_extras/keymap_canadian_multilingual.h
+++ b/quantum/keymap_extras/keymap_canadian_multilingual.h
@@ -102,4 +102,15 @@
102#define CM_NON_BREAKING_SPACE ALTGR(KC_SPACE) 102#define CM_NON_BREAKING_SPACE ALTGR(KC_SPACE)
103#define CM_NBSP CM_NON_BREAKING_SPACE 103#define CM_NBSP CM_NON_BREAKING_SPACE
104 104
105// GR2A-ed characters (non-exhaustive list)
106// second row
107#define CM_OE_LIGATURE GR2A(KC_E) // œ
108#define CM_OE CM_OE_LIGATURE
109
110// third row
111#define CM_AE_LIGATURE GR2A(KC_A) // æ
112#define CM_AE CM_AE_LIGATURE
113#define CM_DEAD_ACUTE GR2A(KC_SCLN) // dead acute accent
114#define CM_DACT CM_DEAD_ACUTE
115
105#endif 116#endif