From 48eff6dd89672c6c71afd8a3d1cdc5d35b0bf768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:49:36 +0100 Subject: [PATCH 1/3] quantum: Add French keymap for OSX (keymap_french_osx) --- quantum/keymap_extras/keymap_french_osx.h | 77 +++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 quantum/keymap_extras/keymap_french_osx.h diff --git a/quantum/keymap_extras/keymap_french_osx.h b/quantum/keymap_extras/keymap_french_osx.h new file mode 100644 index 0000000000..eb31bfb4d0 --- /dev/null +++ b/quantum/keymap_extras/keymap_french_osx.h @@ -0,0 +1,77 @@ +#ifndef KEYMAP_FRENCH_OSX_H +#define KEYMAP_FRENCH_OSX_H + +#include "keymap_common.h" + +// Normal characters +#define FR_AT KC_GRV +#define FR_AMP KC_1 +#define FR_EACU KC_2 +#define FR_QUOT KC_3 +#define FR_APOS KC_4 +#define FR_LPRN KC_5 +#define FR_SECT KC_6 +#define FR_EGRV KC_7 +#define FR_EXLM KC_8 +#define FR_CCED KC_9 +#define FR_AGRV KC_0 +#define FR_RPRN KC_MINS +#define FR_MINS KC_EQL + +#define FR_A KC_Q +#define FR_Z KC_W +#define FR_CIRC KC_LBRC +#define FR_DLR KC_RBRC + +#define FR_Q KC_A +#define FR_M KC_SCLN +#define FR_UGRV KC_QUOT +#define FR_GRV KC_NUHS + +#define FR_LESS KC_NUBS +#define FR_W KC_Z +#define FR_COMM KC_M +#define FR_SCLN KC_COMM +#define FR_COLN KC_DOT +#define FR_EQL KC_SLSH + +// Shifted characters +#define FR_HASH LSFT(KC_GRV) +#define FR_1 LSFT(KC_1) +#define FR_2 LSFT(KC_2) +#define FR_3 LSFT(KC_3) +#define FR_4 LSFT(KC_4) +#define FR_5 LSFT(KC_5) +#define FR_6 LSFT(KC_6) +#define FR_7 LSFT(KC_7) +#define FR_8 LSFT(KC_8) +#define FR_9 LSFT(KC_9) +#define FR_0 LSFT(KC_0) +#define FR_UNDS LSFT(FR_MINS) + +#define FR_UMLT LSFT(FR_CIRC) +#define FR_ASTR LSFT(FR_DLR) + +#define FR_PERC LSFT(FR_UGRV) +#define FR_PND LSFT(FR_GRV) + +#define FR_GRTR LSFT(FR_LESS) +#define FR_QUES LSFT(FR_COMM) +#define FR_DOT LSFT(FR_SCLN) +#define FR_SLSH LSFT(FR_COLN) +#define FR_PLUS LSFT(FR_EQL) + +// Alted characters +#define FR_LCBR LALT(KC_5) +#define FR_RCBR LALT(FR_RPRN) +#define FR_EURO LALT(KC_E) +#define FR_BULT LALT(FR_DLR) +#define FR_TILD LALT(KC_N) + +// Shift+Alt-ed characters +#define FR_LBRC LSFT(LALT(KC_5)) +#define FR_RBRC LSFT(LALT(FR_RPRN)) +#define FR_PIPE LSFT(LALT(KC_L)) +#define FR_BSLS LSFT(LALT(FR_COLN)) + +#endif \ No newline at end of file From 14b4a01e7e0d567f3b0bb31d42bf6b85b38d0555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:49:49 +0100 Subject: [PATCH 2/3] ergodox_ez: Add French keymap for OSX (keymap_osx_fr) based on keymap_default_osx --- keyboard/ergodox_ez/keymaps/keymap_osx_fr.c | 187 ++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.c diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c new file mode 100644 index 0000000000..4b59d2eb29 --- /dev/null +++ b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.c @@ -0,0 +1,187 @@ +// French AZERTY version of the default_osx file +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_extras/keymap_french_osx.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ù /L1| < |AltShf| Left | Right| | Up | Down | ^ | $ | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| Tab |Enter | + * | |ace | End | | PgDn | | | + * `--------------------' `----------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[BASE] = KEYMAP( // layer 0 : default + // left hand + FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, + KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), + KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,FR_UGRV), FR_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC, KC_BSPC, KC_END, + + // right hand + KC_RGHT, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, + KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, + MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | , | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS, + KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV, + KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_TILD,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, FR_7, FR_8, FR_9, FR_ASTR, KC_F12, + KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS, + KC_TRNS, FR_AMP, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS, + KC_TRNS,FR_COMM, FR_0, FR_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void * matrix_init_user(void) { + +}; + +// Runs constantly in the background, in a loop. +void * matrix_scan_user(void) { + + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + switch (layer) { + // TODO: Make this relevant to the ErgoDox EZ. + case 1: + ergodox_right_led_1_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + +}; \ No newline at end of file From bee19e5261b9c4be53932d4fe12424685369921e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Pe=CC=81rochon?= Date: Tue, 5 Jan 2016 10:56:10 +0100 Subject: [PATCH 3/3] ergodox_ez: Add keymap_osx_fr hex file --- keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex | Bin 0 -> 64680 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex diff --git a/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex b/keyboard/ergodox_ez/keymaps/keymap_osx_fr.hex new file mode 100644 index 0000000000000000000000000000000000000000..8915d9caa55e386a447d44f0f46d4ef4a98d16d2 GIT binary patch literal 64680 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