summaryrefslogtreecommitdiff
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 ce887997e7..64fac7f9ba 100644
--- a/keyboard/ergodox_ez/keymaps/bepo/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/bepo/keymap.c
@@ -36,6 +36,8 @@ enum macros {
M_SCLN,
M_GRV,
M_NBSP,
+ // macros for characters that don't have a simple key combination in LR_CA_MULT_ALTGR
+ M_CRC,
// other layer macros
M_DBL0,
M_FNLR,
@@ -108,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_BSPC, CM_DCRC, KC_V, KC_D, KC_L, KC_J, KC_Z,
KC_C, KC_T, KC_S, KC_R, KC_N, KC_M,
KC_ENT, CM_APOS, KC_Q, KC_G, KC_H, KC_F, M(M_CMSFT),
- CM_ALGR, KC_PERC, KC_HOME, CM_CCED, CTL_T(KC_END),
+ MO(LR_CSA_AGR), KC_PERC, KC_HOME, CM_CCED, CTL_T(KC_END),
KC_LEFT, KC_RGHT,
KC_UP,
@@ -158,6 +160,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS,
KC_TRNS, KC_TRNS, M(M_NBSP)
),
+/* AltGr-ed BÉPO over Canadian Multilingual
+ * "////" indicates that the key is disabled (unsupported bépo character)
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ////// | //// | < | > | [ | ] | | | | ^ | //// | //// | //// | //// | ////// |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | |dead '| & | œ |dead `| | | | //// | //// | //// | //// | //// | ////// |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | ////// | æ | ù |dead "| € | //// |------| |------| //// | //// | //// | //// | //// | ////// |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | \ | { | } | //// | ~ | | | | //// | //// | //// | //// | //// | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | //// | | //// | |
+ * `----------------------------------' `-----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | _ | |------| |------| | _ |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+[LR_CSA_AGR] = KEYMAP(
+ // left hand
+ KC_NO, KC_NO, CM_LESS, CM_GRTR, CM_LBRC, CM_RBRC, KC_TRNS,
+ KC_TRNS, CM_PIPE, CM_DACT, KC_AMPR, CM_OE, CM_DGRV, KC_TRNS,
+ KC_NO, CM_AE, CM_UGRV, CM_DTRM, CM_EURO, KC_NO,
+ KC_TRNS, CM_BSLS, CM_LCBR, CM_RCBR, KC_NO, CM_TILD, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_UNDS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, M(M_CRC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS,
+
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UNDS
+ ),
/* Numeric Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
@@ -310,6 +357,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
}
}
break;
+ case M_CRC:
+ if (record->event.pressed) {
+ return MACRO(TYPE(CM_DCRC), T(SPACE), END);
+ }
+ break;
case M_DBL0:
if (record->event.pressed) {
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 ae60ffe37e..e30419b5be 100644
--- a/quantum/keymap_extras/keymap_canadian_multilingual.h
+++ b/quantum/keymap_extras/keymap_canadian_multilingual.h
@@ -102,4 +102,15 @@
#define CM_NON_BREAKING_SPACE ALTGR(KC_SPACE)
#define CM_NBSP CM_NON_BREAKING_SPACE
+// GR2A-ed characters (non-exhaustive list)
+// second row
+#define CM_OE_LIGATURE GR2A(KC_E) // œ
+#define CM_OE CM_OE_LIGATURE
+
+// third row
+#define CM_AE_LIGATURE GR2A(KC_A) // æ
+#define CM_AE CM_AE_LIGATURE
+#define CM_DEAD_ACUTE GR2A(KC_SCLN) // dead acute accent
+#define CM_DACT CM_DEAD_ACUTE
+
#endif