From 28939d40ad32d8e00a43bfbb8da9be5f3eb99a36 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Wed, 5 Jul 2023 02:49:38 -0400 Subject: [PATCH 1/9] Add Canadian French input locale --- .../keycodes_canadian_french_0.0.1.hjson | 407 ++++++++++++++++++ docs/reference_keymap_extras.md | 1 + .../keymap_extras/keymap_canadian_french.h | 123 ++++++ .../sendstring_canadian_french.h | 120 ++++++ 4 files changed, 651 insertions(+) create mode 100644 data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson create mode 100644 quantum/keymap_extras/keymap_canadian_french.h create mode 100644 quantum/keymap_extras/sendstring_canadian_french.h diff --git a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson new file mode 100644 index 000000000000..349077d748cb --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson @@ -0,0 +1,407 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ ¸ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ` │ < │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ « │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ É │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "KC_GRV": { + "key": "FC_HASH", + "label": "#", + } + "KC_1": { + "key": "FC_1", + "label": "1", + } + "KC_2": { + "key": "FC_2", + "label": "2", + } + "KC_3": { + "key": "FC_3", + "label": "3", + } + "KC_4": { + "key": "FC_4", + "label": "4", + } + "KC_5": { + "key": "FC_5", + "label": "5", + } + "KC_6": { + "key": "FC_6", + "label": "6", + } + "KC_7": { + "key": "FC_7", + "label": "7", + } + "KC_8": { + "key": "FC_8", + "label": "8", + } + "KC_9": { + "key": "FC_9", + "label": "9", + } + "KC_0": { + "key": "FC_0", + "label": "0", + } + "KC_MINS": { + "key": "FC_MINS", + "label": "-", + } + "KC_EQL": { + "key": "FC_EQL", + "label": "=", + } + "KC_Q": { + "key": "FC_Q", + "label": "Q", + } + "KC_W": { + "key": "FC_W", + "label": "W", + } + "KC_E": { + "key": "FC_E", + "label": "E", + } + "KC_R": { + "key": "FC_R", + "label": "R", + } + "KC_T": { + "key": "FC_T", + "label": "T", + } + "KC_Y": { + "key": "FC_Y", + "label": "Y", + } + "KC_U": { + "key": "FC_U", + "label": "U", + } + "KC_I": { + "key": "FC_I", + "label": "I", + } + "KC_O": { + "key": "FC_O", + "label": "O", + } + "KC_P": { + "key": "FC_P", + "label": "P", + } + "KC_LBRC": { + "key": "FC_DCIR", + "label": "^ (dead)", + } + "KC_RBRC": { + "key": "FC_CEDL", + "label": "¸ (dead)", + } + "KC_A": { + "key": "FC_A", + "label": "A", + } + "KC_S": { + "key": "FC_S", + "label": "S", + } + "KC_D": { + "key": "FC_D", + "label": "D", + } + "KC_F": { + "key": "FC_F", + "label": "F", + } + "KC_G": { + "key": "FC_G", + "label": "G", + } + "KC_H": { + "key": "FC_H", + "label": "H", + } + "KC_J": { + "key": "FC_J", + "label": "J", + } + "KC_K": { + "key": "FC_K", + "label": "K", + } + "KC_L": { + "key": "FC_L", + "label": "L", + } + "KC_SCLN": { + "key": "FC_SCLN", + "label": ";", + } + "KC_QUOT": { + "key": "FC_DGRV", + "label": "` (dead)", + } + "KC_NUHS": { + "key": "FC_LABK", + "label": "<", + } + "KC_NUBS": { + "key": "FC_LDAQ", + "label": "«", + } + "KC_Z": { + "key": "FC_Z", + "label": "Z", + } + "KC_X": { + "key": "FC_X", + "label": "X", + } + "KC_C": { + "key": "FC_C", + "label": "C", + } + "KC_V": { + "key": "FC_V", + "label": "V", + } + "KC_B": { + "key": "FC_B", + "label": "B", + } + "KC_N": { + "key": "FC_N", + "label": "N", + } + "KC_M": { + "key": "FC_M", + "label": "M", + } + "KC_COMM": { + "key": "FC_COMM", + "label": ",", + } + "KC_DOT": { + "key": "FC_DOT", + "label": ".", + } + "KC_SLSH": { + "key": "FC_EACU", + "label": "É", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ | │ ! │ " │ / │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ : │ │ > │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ » │ │ │ │ │ │ │ │ ' │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "S(FC_HASH)": { + "key": "FC_PIPE", + "label": "|", + } + "S(FC_1)": { + "key": "FC_EXLM", + "label": "!", + } + "S(FC_2)": { + "key": "FC_DQUO", + "label": "\"", + } + "S(FC_3)": { + "key": "FC_SLSH", + "label": "/", + } + "S(FC_4)": { + "key": "FC_DLR", + "label": "$", + } + "S(FC_5)": { + "key": "FC_PERC", + "label": "%", + } + "S(FC_6)": { + "key": "FC_QUES", + "label": "?", + } + "S(FC_7)": { + "key": "FC_AMPR", + "label": "&", + } + "S(FC_8)": { + "key": "FC_ASTR", + "label": "*", + } + "S(FC_9)": { + "key": "FC_LPRN", + "label": "(", + } + "S(FC_0)": { + "key": "FC_RPRN", + "label": ")", + } + "S(FC_MINS)": { + "key": "FC_UNDS", + "label": "_", + } + "S(FC_EQL)": { + "key": "FC_PLUS", + "label": "+", + } + "S(FC_CEDL)": { + "key": "FC_DIAE", + "label": "¨ (dead)", + } + "S(FC_SCLN)": { + "key": "FC_COLN", + "label": ":", + } + "S(FC_LDAQ)": { + "key": "FC_RDAQ", + "label": "»", + } + "S(FC_COMM)": { + "key": "FC_QUOT", + "label": "'", + } +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ € │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ + * │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │ │ ° │ │ │ │ │ │ │ µ │ ¯ │shy│ ´ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(FC_HASH)": { + "key": "FC_BSLS", + "label": "\\", + } + "ALGR(FC_1)": { + "key": "FC_PLMN", + "label": "±", + } + "ALGR(FC_2)": { + "key": "FC_AT", + "label": "@", + } + "ALGR(FC_3)": { + "key": "FC_PND", + "label": "£", + } + "ALGR(FC_4)": { + "key": "FC_CENT", + "label": "¢", + } + "ALGR(FC_5)": { + "key": "FC_CURR", + "label": "¤", + } + "ALGR(FC_6)": { + "key": "FC_NOT", + "label": "¬", + } + "ALGR(FC_7)": { + "key": "FC_BRKP", + "label": "¦", + } + "ALGR(FC_8)": { + "key": "FC_SUP2", + "label": "²", + } + "ALGR(FC_9)": { + "key": "FC_SUP3", + "label": "³", + } + "ALGR(FC_0)": { + "key": "FC_QRTR", + "label": "¼", + } + "ALGR(FC_MINS)": { + "key": "FC_HALF", + "label": "½", + } + "ALGR(FC_EQL)": { + "key": "FC_TQTR", + "label": "¾", + } + "ALGR(FC_E)": { + "key": "FC_EURO", + "label": "€", + } + "ALGR(FC_O)": { + "key": "FC_SECT", + "label": "§", + } + "ALGR(FC_P)": { + "key": "FC_PARA", + "label": "¶", + } + "ALGR(FC_DCIR)": { + "key": "FC_LBRC", + "label": "[", + } + "ALGR(FC_CEDL)": { + "key": "FC_RBRC", + "label": "]", + } + "ALGR(FC_SCLN)": { + "key": "FC_TILD", + "label": "~", + } + "ALGR(FC_DGRV)": { + "key": "FC_LCBR", + "label": "{", + } + "ALGR(FC_LABK)": { + "key": "FC_RCBR", + "label": "}", + } + "ALGR(FC_LDAQ)": { + "key": "FC_DEG", + "label": "°", + } + "ALGR(FC_M)": { + "key": "FC_MICR", + "label": "µ", + } + "ALGR(FC_COMM)": { + "key": "FC_MACR", + "label": "¯", + } + "ALGR(FC_DOT)": { + "key": "FC_SHYP", + "label": "­ (soft hyphen)", + } + "ALGR(FC_EACU)": { + "key": "FC_ACUT", + "label": "´ (dead)", + } + } +} diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index b70d505f1f2e..954b6ad7800b 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -20,6 +20,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |Layout |Keycodes Header |Sendstring LUT Header | |---------------------------------|---------------------------------|------------------------------------| +|Canadian French |`keymap_canadian_french.h` |`sendstring_canadian_french.h` | |Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`| |Croatian |`keymap_croatian.h` |`sendstring_croatian.h` | |Czech |`keymap_czech.h` |`sendstring_czech.h` | diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h new file mode 100644 index 000000000000..b9625aea3908 --- /dev/null +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -0,0 +1,123 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +#pragma once +#include "keycodes.h" +// clang-format off + +// Aliases +#define FC_HASH KC_GRV // # +#define FC_1 KC_1 // 1 +#define FC_2 KC_2 // 2 +#define FC_3 KC_3 // 3 +#define FC_4 KC_4 // 4 +#define FC_5 KC_5 // 5 +#define FC_6 KC_6 // 6 +#define FC_7 KC_7 // 7 +#define FC_8 KC_8 // 8 +#define FC_9 KC_9 // 9 +#define FC_0 KC_0 // 0 +#define FC_MINS KC_MINS // - +#define FC_EQL KC_EQL // = +#define FC_Q KC_Q // Q +#define FC_W KC_W // W +#define FC_E KC_E // E +#define FC_R KC_R // R +#define FC_T KC_T // T +#define FC_Y KC_Y // Y +#define FC_U KC_U // U +#define FC_I KC_I // I +#define FC_O KC_O // O +#define FC_P KC_P // P +#define FC_DCIR KC_LBRC // ^ (dead) +#define FC_CEDL KC_RBRC // ¸ (dead) +#define FC_A KC_A // A +#define FC_S KC_S // S +#define FC_D KC_D // D +#define FC_F KC_F // F +#define FC_G KC_G // G +#define FC_H KC_H // H +#define FC_J KC_J // J +#define FC_K KC_K // K +#define FC_L KC_L // L +#define FC_SCLN KC_SCLN // ; +#define FC_DGRV KC_QUOT // ` (dead) +#define FC_LABK KC_NUHS // < +#define FC_LDAQ KC_NUBS // « +#define FC_Z KC_Z // Z +#define FC_X KC_X // X +#define FC_C KC_C // C +#define FC_V KC_V // V +#define FC_B KC_B // B +#define FC_N KC_N // N +#define FC_M KC_M // M +#define FC_COMM KC_COMM // , +#define FC_DOT KC_DOT // . +#define FC_EACU KC_SLSH // É +#define FC_PIPE S(FC_HASH) // | +#define FC_EXLM S(FC_1) // ! +#define FC_DQUO S(FC_2) // " +#define FC_SLSH S(FC_3) // / +#define FC_DLR S(FC_4) // $ +#define FC_PERC S(FC_5) // % +#define FC_QUES S(FC_6) // ? +#define FC_AMPR S(FC_7) // & +#define FC_ASTR S(FC_8) // * +#define FC_LPRN S(FC_9) // ( +#define FC_RPRN S(FC_0) // ) +#define FC_UNDS S(FC_MINS) // _ +#define FC_PLUS S(FC_EQL) // + +#define FC_DIAE S(FC_CEDL) // ¨ (dead) +#define FC_COLN S(FC_SCLN) // : +#define FC_RDAQ S(FC_LDAQ) // » +#define FC_QUOT S(FC_COMM) // ' +#define FC_BSLS ALGR(FC_HASH) // (backslash) +#define FC_PLMN ALGR(FC_1) // ± +#define FC_AT ALGR(FC_2) // @ +#define FC_PND ALGR(FC_3) // £ +#define FC_CENT ALGR(FC_4) // ¢ +#define FC_CURR ALGR(FC_5) // ¤ +#define FC_NOT ALGR(FC_6) // ¬ +#define FC_BRKP ALGR(FC_7) // ¦ +#define FC_SUP2 ALGR(FC_8) // ² +#define FC_SUP3 ALGR(FC_9) // ³ +#define FC_QRTR ALGR(FC_0) // ¼ +#define FC_HALF ALGR(FC_MINS) // ½ +#define FC_TQTR ALGR(FC_EQL) // ¾ +#define FC_EURO ALGR(FC_E) // € +#define FC_SECT ALGR(FC_O) // § +#define FC_PARA ALGR(FC_P) // ¶ +#define FC_LBRC ALGR(FC_DCIR) // [ +#define FC_RBRC ALGR(FC_CEDL) // ] +#define FC_TILD ALGR(FC_SCLN) // ~ +#define FC_LCBR ALGR(FC_DGRV) // { +#define FC_RCBR ALGR(FC_LABK) // } +#define FC_DEG ALGR(FC_LDAQ) // ° +#define FC_MICR ALGR(FC_M) // µ +#define FC_MACR ALGR(FC_COMM) // ¯ +#define FC_SHYP ALGR(FC_DOT) // ­ (soft hyphen) +#define FC_ACUT ALGR(FC_EACU) // ´ (dead) + + diff --git a/quantum/keymap_extras/sendstring_canadian_french.h b/quantum/keymap_extras/sendstring_canadian_french.h new file mode 100644 index 000000000000..7b872befb58b --- /dev/null +++ b/quantum/keymap_extras/sendstring_canadian_french.h @@ -0,0 +1,120 @@ +/* Copyright 2023 Nebuleon + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Sendstring lookup tables for Canadian French layouts + +#pragma once + +#include "keymap_canadian_french.h" +#include "quantum.h" + +// clang-format off + +const uint8_t ascii_to_shift_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 1, 1, 0, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 0, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 1, 0, 0, 0, 1, 1), + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0) +}; + +const uint8_t ascii_to_altgr_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 1, 1, 0) +}; + +const uint8_t ascii_to_dead_lut[16] PROGMEM = { + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 1, 0), + KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0) +}; + +const uint8_t ascii_to_keycode_lut[128] PROGMEM = { + // NUL SOH STX ETX EOT ENQ ACK BEL + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // BS TAB LF VT FF CR SO SI + KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // DLE DC1 DC2 DC3 DC4 NAK SYN ETB + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + // CAN EM SUB ESC FS GS RS US + XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + + // ! " # $ % & ' + KC_SPC, FC_1, FC_2, FC_HASH, FC_4, FC_5, FC_7, FC_COMM, + // ( ) * + , - . / + FC_9, FC_0, FC_8, FC_EQL, FC_COMM, FC_MINS, FC_DOT, FC_3, + // 0 1 2 3 4 5 6 7 + FC_0, FC_1, FC_2, FC_3, FC_4, FC_5, FC_6, FC_7, + // 8 9 : ; < = > ? + FC_8, FC_9, FC_SCLN, FC_SCLN, FC_LABK, FC_EQL, FC_LABK, FC_6, + // @ A B C D E F G + FC_2, FC_A, FC_B, FC_C, FC_D, FC_E, FC_F, FC_G, + // H I J K L M N O + FC_H, FC_I, FC_J, FC_K, FC_L, FC_M, FC_N, FC_O, + // P Q R S T U V W + FC_P, FC_Q, FC_R, FC_S, FC_T, FC_U, FC_V, FC_W, + // X Y Z [ \ ] ^ _ + FC_X, FC_Y, FC_Z, FC_DCIR, FC_HASH, FC_CEDL, FC_DCIR, FC_MINS, + // ` a b c d e f g + FC_DGRV, FC_A, FC_B, FC_C, FC_D, FC_E, FC_F, FC_G, + // h i j k l m n o + FC_H, FC_I, FC_J, FC_K, FC_L, FC_M, FC_N, FC_O, + // p q r s t u v w + FC_P, FC_Q, FC_R, FC_S, FC_T, FC_U, FC_V, FC_W, + // x y z { | } ~ DEL + FC_X, FC_Y, FC_Z, FC_DGRV, FC_HASH, FC_LABK, FC_SCLN, KC_DEL +}; From 06f48de0b0ecdb35f4e9bc49e8c26d793c9fa9b9 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Wed, 5 Jul 2023 13:36:24 -0400 Subject: [PATCH 2/9] Fix file requiring regeneration in the previous commit --- quantum/keymap_extras/keymap_canadian_french.h | 1 - 1 file changed, 1 deletion(-) diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index b9625aea3908..795b03e65ef4 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -120,4 +120,3 @@ #define FC_SHYP ALGR(FC_DOT) // ­ (soft hyphen) #define FC_ACUT ALGR(FC_EACU) // ´ (dead) - From 12815db88f4a96eb42f0ab88af4375bddf1dc535 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Thu, 6 Jul 2023 02:49:50 -0400 Subject: [PATCH 3/9] Change Canadian French key prefix to FR_ and its name to French (Canada) --- .../keycodes_canadian_french_0.0.1.hjson | 268 +++++++++--------- docs/reference_keymap_extras.md | 2 +- .../keymap_extras/keymap_canadian_french.h | 182 ++++++------ 3 files changed, 226 insertions(+), 226 deletions(-) diff --git a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson index 349077d748cb..130abf1fe2d5 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson @@ -14,195 +14,195 @@ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ "KC_GRV": { - "key": "FC_HASH", + "key": "FR_HASH", "label": "#", } "KC_1": { - "key": "FC_1", + "key": "FR_1", "label": "1", } "KC_2": { - "key": "FC_2", + "key": "FR_2", "label": "2", } "KC_3": { - "key": "FC_3", + "key": "FR_3", "label": "3", } "KC_4": { - "key": "FC_4", + "key": "FR_4", "label": "4", } "KC_5": { - "key": "FC_5", + "key": "FR_5", "label": "5", } "KC_6": { - "key": "FC_6", + "key": "FR_6", "label": "6", } "KC_7": { - "key": "FC_7", + "key": "FR_7", "label": "7", } "KC_8": { - "key": "FC_8", + "key": "FR_8", "label": "8", } "KC_9": { - "key": "FC_9", + "key": "FR_9", "label": "9", } "KC_0": { - "key": "FC_0", + "key": "FR_0", "label": "0", } "KC_MINS": { - "key": "FC_MINS", + "key": "FR_MINS", "label": "-", } "KC_EQL": { - "key": "FC_EQL", + "key": "FR_EQL", "label": "=", } "KC_Q": { - "key": "FC_Q", + "key": "FR_Q", "label": "Q", } "KC_W": { - "key": "FC_W", + "key": "FR_W", "label": "W", } "KC_E": { - "key": "FC_E", + "key": "FR_E", "label": "E", } "KC_R": { - "key": "FC_R", + "key": "FR_R", "label": "R", } "KC_T": { - "key": "FC_T", + "key": "FR_T", "label": "T", } "KC_Y": { - "key": "FC_Y", + "key": "FR_Y", "label": "Y", } "KC_U": { - "key": "FC_U", + "key": "FR_U", "label": "U", } "KC_I": { - "key": "FC_I", + "key": "FR_I", "label": "I", } "KC_O": { - "key": "FC_O", + "key": "FR_O", "label": "O", } "KC_P": { - "key": "FC_P", + "key": "FR_P", "label": "P", } "KC_LBRC": { - "key": "FC_DCIR", + "key": "FR_DCIR", "label": "^ (dead)", } "KC_RBRC": { - "key": "FC_CEDL", + "key": "FR_CEDL", "label": "¸ (dead)", } "KC_A": { - "key": "FC_A", + "key": "FR_A", "label": "A", } "KC_S": { - "key": "FC_S", + "key": "FR_S", "label": "S", } "KC_D": { - "key": "FC_D", + "key": "FR_D", "label": "D", } "KC_F": { - "key": "FC_F", + "key": "FR_F", "label": "F", } "KC_G": { - "key": "FC_G", + "key": "FR_G", "label": "G", } "KC_H": { - "key": "FC_H", + "key": "FR_H", "label": "H", } "KC_J": { - "key": "FC_J", + "key": "FR_J", "label": "J", } "KC_K": { - "key": "FC_K", + "key": "FR_K", "label": "K", } "KC_L": { - "key": "FC_L", + "key": "FR_L", "label": "L", } "KC_SCLN": { - "key": "FC_SCLN", + "key": "FR_SCLN", "label": ";", } "KC_QUOT": { - "key": "FC_DGRV", + "key": "FR_DGRV", "label": "` (dead)", } "KC_NUHS": { - "key": "FC_LABK", + "key": "FR_LABK", "label": "<", } "KC_NUBS": { - "key": "FC_LDAQ", + "key": "FR_LDAQ", "label": "«", } "KC_Z": { - "key": "FC_Z", + "key": "FR_Z", "label": "Z", } "KC_X": { - "key": "FC_X", + "key": "FR_X", "label": "X", } "KC_C": { - "key": "FC_C", + "key": "FR_C", "label": "C", } "KC_V": { - "key": "FC_V", + "key": "FR_V", "label": "V", } "KC_B": { - "key": "FC_B", + "key": "FR_B", "label": "B", } "KC_N": { - "key": "FC_N", + "key": "FR_N", "label": "N", } "KC_M": { - "key": "FC_M", + "key": "FR_M", "label": "M", } "KC_COMM": { - "key": "FC_COMM", + "key": "FR_COMM", "label": ",", } "KC_DOT": { - "key": "FC_DOT", + "key": "FR_DOT", "label": ".", } "KC_SLSH": { - "key": "FC_EACU", + "key": "FR_EACU", "label": "É", } /* Shifted symbols @@ -218,72 +218,72 @@ * │ │ │ │ │ │ │ │ │ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ - "S(FC_HASH)": { - "key": "FC_PIPE", + "S(FR_HASH)": { + "key": "FR_PIPE", "label": "|", } - "S(FC_1)": { - "key": "FC_EXLM", + "S(FR_1)": { + "key": "FR_EXLM", "label": "!", } - "S(FC_2)": { - "key": "FC_DQUO", + "S(FR_2)": { + "key": "FR_DQUO", "label": "\"", } - "S(FC_3)": { - "key": "FC_SLSH", + "S(FR_3)": { + "key": "FR_SLSH", "label": "/", } - "S(FC_4)": { - "key": "FC_DLR", + "S(FR_4)": { + "key": "FR_DLR", "label": "$", } - "S(FC_5)": { - "key": "FC_PERC", + "S(FR_5)": { + "key": "FR_PERC", "label": "%", } - "S(FC_6)": { - "key": "FC_QUES", + "S(FR_6)": { + "key": "FR_QUES", "label": "?", } - "S(FC_7)": { - "key": "FC_AMPR", + "S(FR_7)": { + "key": "FR_AMPR", "label": "&", } - "S(FC_8)": { - "key": "FC_ASTR", + "S(FR_8)": { + "key": "FR_ASTR", "label": "*", } - "S(FC_9)": { - "key": "FC_LPRN", + "S(FR_9)": { + "key": "FR_LPRN", "label": "(", } - "S(FC_0)": { - "key": "FC_RPRN", + "S(FR_0)": { + "key": "FR_RPRN", "label": ")", } - "S(FC_MINS)": { - "key": "FC_UNDS", + "S(FR_MINS)": { + "key": "FR_UNDS", "label": "_", } - "S(FC_EQL)": { - "key": "FC_PLUS", + "S(FR_EQL)": { + "key": "FR_PLUS", "label": "+", } - "S(FC_CEDL)": { - "key": "FC_DIAE", + "S(FR_CEDL)": { + "key": "FR_DIAE", "label": "¨ (dead)", } - "S(FC_SCLN)": { - "key": "FC_COLN", + "S(FR_SCLN)": { + "key": "FR_COLN", "label": ":", } - "S(FC_LDAQ)": { - "key": "FC_RDAQ", + "S(FR_LDAQ)": { + "key": "FR_RDAQ", "label": "»", } - "S(FC_COMM)": { - "key": "FC_QUOT", + "S(FR_COMM)": { + "key": "FR_QUOT", "label": "'", } /* AltGr symbols @@ -299,108 +299,108 @@ * │ │ │ │ │ │ │ │ │ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ */ - "ALGR(FC_HASH)": { - "key": "FC_BSLS", + "ALGR(FR_HASH)": { + "key": "FR_BSLS", "label": "\\", } - "ALGR(FC_1)": { - "key": "FC_PLMN", + "ALGR(FR_1)": { + "key": "FR_PLMN", "label": "±", } - "ALGR(FC_2)": { - "key": "FC_AT", + "ALGR(FR_2)": { + "key": "FR_AT", "label": "@", } - "ALGR(FC_3)": { - "key": "FC_PND", + "ALGR(FR_3)": { + "key": "FR_PND", "label": "£", } - "ALGR(FC_4)": { - "key": "FC_CENT", + "ALGR(FR_4)": { + "key": "FR_CENT", "label": "¢", } - "ALGR(FC_5)": { - "key": "FC_CURR", + "ALGR(FR_5)": { + "key": "FR_CURR", "label": "¤", } - "ALGR(FC_6)": { - "key": "FC_NOT", + "ALGR(FR_6)": { + "key": "FR_NOT", "label": "¬", } - "ALGR(FC_7)": { - "key": "FC_BRKP", + "ALGR(FR_7)": { + "key": "FR_BRKP", "label": "¦", } - "ALGR(FC_8)": { - "key": "FC_SUP2", + "ALGR(FR_8)": { + "key": "FR_SUP2", "label": "²", } - "ALGR(FC_9)": { - "key": "FC_SUP3", + "ALGR(FR_9)": { + "key": "FR_SUP3", "label": "³", } - "ALGR(FC_0)": { - "key": "FC_QRTR", + "ALGR(FR_0)": { + "key": "FR_QRTR", "label": "¼", } - "ALGR(FC_MINS)": { - "key": "FC_HALF", + "ALGR(FR_MINS)": { + "key": "FR_HALF", "label": "½", } - "ALGR(FC_EQL)": { - "key": "FC_TQTR", + "ALGR(FR_EQL)": { + "key": "FR_TQTR", "label": "¾", } - "ALGR(FC_E)": { - "key": "FC_EURO", + "ALGR(FR_E)": { + "key": "FR_EURO", "label": "€", } - "ALGR(FC_O)": { - "key": "FC_SECT", + "ALGR(FR_O)": { + "key": "FR_SECT", "label": "§", } - "ALGR(FC_P)": { - "key": "FC_PARA", + "ALGR(FR_P)": { + "key": "FR_PARA", "label": "¶", } - "ALGR(FC_DCIR)": { - "key": "FC_LBRC", + "ALGR(FR_DCIR)": { + "key": "FR_LBRC", "label": "[", } - "ALGR(FC_CEDL)": { - "key": "FC_RBRC", + "ALGR(FR_CEDL)": { + "key": "FR_RBRC", "label": "]", } - "ALGR(FC_SCLN)": { - "key": "FC_TILD", + "ALGR(FR_SCLN)": { + "key": "FR_TILD", "label": "~", } - "ALGR(FC_DGRV)": { - "key": "FC_LCBR", + "ALGR(FR_DGRV)": { + "key": "FR_LCBR", "label": "{", } - "ALGR(FC_LABK)": { - "key": "FC_RCBR", + "ALGR(FR_LABK)": { + "key": "FR_RCBR", "label": "}", } - "ALGR(FC_LDAQ)": { - "key": "FC_DEG", + "ALGR(FR_LDAQ)": { + "key": "FR_DEG", "label": "°", } - "ALGR(FC_M)": { - "key": "FC_MICR", + "ALGR(FR_M)": { + "key": "FR_MICR", "label": "µ", } - "ALGR(FC_COMM)": { - "key": "FC_MACR", + "ALGR(FR_COMM)": { + "key": "FR_MACR", "label": "¯", } - "ALGR(FC_DOT)": { - "key": "FC_SHYP", + "ALGR(FR_DOT)": { + "key": "FR_SHYP", "label": "­ (soft hyphen)", } - "ALGR(FC_EACU)": { - "key": "FC_ACUT", + "ALGR(FR_EACU)": { + "key": "FR_ACUT", "label": "´ (dead)", } } diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 954b6ad7800b..6c5ba24673c6 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -20,7 +20,6 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |Layout |Keycodes Header |Sendstring LUT Header | |---------------------------------|---------------------------------|------------------------------------| -|Canadian French |`keymap_canadian_french.h` |`sendstring_canadian_french.h` | |Canadian Multilingual (CSA) |`keymap_canadian_multilingual.h` |`sendstring_canadian_multilingual.h`| |Croatian |`keymap_croatian.h` |`sendstring_croatian.h` | |Czech |`keymap_czech.h` |`sendstring_czech.h` | @@ -37,6 +36,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` | |French (BÉPO) |`keymap_bepo.h` |`sendstring_bepo.h` | |French (Belgium) |`keymap_belgian.h` |`sendstring_belgian.h` | +|French (Canada) |`keymap_canadian_french.h` |`sendstring_canadian_french.h` | |French (Switzerland) |`keymap_swiss_fr.h` |`sendstring_swiss_fr.h` | |French (macOS, ISO) |`keymap_french_mac_iso.h` |`sendstring_french_mac_iso.h` | |German |`keymap_german.h` |`sendstring_german.h` | diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index 795b03e65ef4..bb8ae3e15eb0 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -28,95 +28,95 @@ // clang-format off // Aliases -#define FC_HASH KC_GRV // # -#define FC_1 KC_1 // 1 -#define FC_2 KC_2 // 2 -#define FC_3 KC_3 // 3 -#define FC_4 KC_4 // 4 -#define FC_5 KC_5 // 5 -#define FC_6 KC_6 // 6 -#define FC_7 KC_7 // 7 -#define FC_8 KC_8 // 8 -#define FC_9 KC_9 // 9 -#define FC_0 KC_0 // 0 -#define FC_MINS KC_MINS // - -#define FC_EQL KC_EQL // = -#define FC_Q KC_Q // Q -#define FC_W KC_W // W -#define FC_E KC_E // E -#define FC_R KC_R // R -#define FC_T KC_T // T -#define FC_Y KC_Y // Y -#define FC_U KC_U // U -#define FC_I KC_I // I -#define FC_O KC_O // O -#define FC_P KC_P // P -#define FC_DCIR KC_LBRC // ^ (dead) -#define FC_CEDL KC_RBRC // ¸ (dead) -#define FC_A KC_A // A -#define FC_S KC_S // S -#define FC_D KC_D // D -#define FC_F KC_F // F -#define FC_G KC_G // G -#define FC_H KC_H // H -#define FC_J KC_J // J -#define FC_K KC_K // K -#define FC_L KC_L // L -#define FC_SCLN KC_SCLN // ; -#define FC_DGRV KC_QUOT // ` (dead) -#define FC_LABK KC_NUHS // < -#define FC_LDAQ KC_NUBS // « -#define FC_Z KC_Z // Z -#define FC_X KC_X // X -#define FC_C KC_C // C -#define FC_V KC_V // V -#define FC_B KC_B // B -#define FC_N KC_N // N -#define FC_M KC_M // M -#define FC_COMM KC_COMM // , -#define FC_DOT KC_DOT // . -#define FC_EACU KC_SLSH // É -#define FC_PIPE S(FC_HASH) // | -#define FC_EXLM S(FC_1) // ! -#define FC_DQUO S(FC_2) // " -#define FC_SLSH S(FC_3) // / -#define FC_DLR S(FC_4) // $ -#define FC_PERC S(FC_5) // % -#define FC_QUES S(FC_6) // ? -#define FC_AMPR S(FC_7) // & -#define FC_ASTR S(FC_8) // * -#define FC_LPRN S(FC_9) // ( -#define FC_RPRN S(FC_0) // ) -#define FC_UNDS S(FC_MINS) // _ -#define FC_PLUS S(FC_EQL) // + -#define FC_DIAE S(FC_CEDL) // ¨ (dead) -#define FC_COLN S(FC_SCLN) // : -#define FC_RDAQ S(FC_LDAQ) // » -#define FC_QUOT S(FC_COMM) // ' -#define FC_BSLS ALGR(FC_HASH) // (backslash) -#define FC_PLMN ALGR(FC_1) // ± -#define FC_AT ALGR(FC_2) // @ -#define FC_PND ALGR(FC_3) // £ -#define FC_CENT ALGR(FC_4) // ¢ -#define FC_CURR ALGR(FC_5) // ¤ -#define FC_NOT ALGR(FC_6) // ¬ -#define FC_BRKP ALGR(FC_7) // ¦ -#define FC_SUP2 ALGR(FC_8) // ² -#define FC_SUP3 ALGR(FC_9) // ³ -#define FC_QRTR ALGR(FC_0) // ¼ -#define FC_HALF ALGR(FC_MINS) // ½ -#define FC_TQTR ALGR(FC_EQL) // ¾ -#define FC_EURO ALGR(FC_E) // € -#define FC_SECT ALGR(FC_O) // § -#define FC_PARA ALGR(FC_P) // ¶ -#define FC_LBRC ALGR(FC_DCIR) // [ -#define FC_RBRC ALGR(FC_CEDL) // ] -#define FC_TILD ALGR(FC_SCLN) // ~ -#define FC_LCBR ALGR(FC_DGRV) // { -#define FC_RCBR ALGR(FC_LABK) // } -#define FC_DEG ALGR(FC_LDAQ) // ° -#define FC_MICR ALGR(FC_M) // µ -#define FC_MACR ALGR(FC_COMM) // ¯ -#define FC_SHYP ALGR(FC_DOT) // ­ (soft hyphen) -#define FC_ACUT ALGR(FC_EACU) // ´ (dead) +#define FR_HASH KC_GRV // # +#define FR_1 KC_1 // 1 +#define FR_2 KC_2 // 2 +#define FR_3 KC_3 // 3 +#define FR_4 KC_4 // 4 +#define FR_5 KC_5 // 5 +#define FR_6 KC_6 // 6 +#define FR_7 KC_7 // 7 +#define FR_8 KC_8 // 8 +#define FR_9 KC_9 // 9 +#define FR_0 KC_0 // 0 +#define FR_MINS KC_MINS // - +#define FR_EQL KC_EQL // = +#define FR_Q KC_Q // Q +#define FR_W KC_W // W +#define FR_E KC_E // E +#define FR_R KC_R // R +#define FR_T KC_T // T +#define FR_Y KC_Y // Y +#define FR_U KC_U // U +#define FR_I KC_I // I +#define FR_O KC_O // O +#define FR_P KC_P // P +#define FR_DCIR KC_LBRC // ^ (dead) +#define FR_CEDL KC_RBRC // ¸ (dead) +#define FR_A KC_A // A +#define FR_S KC_S // S +#define FR_D KC_D // D +#define FR_F KC_F // F +#define FR_G KC_G // G +#define FR_H KC_H // H +#define FR_J KC_J // J +#define FR_K KC_K // K +#define FR_L KC_L // L +#define FR_SCLN KC_SCLN // ; +#define FR_DGRV KC_QUOT // ` (dead) +#define FR_LABK KC_NUHS // < +#define FR_LDAQ KC_NUBS // « +#define FR_Z KC_Z // Z +#define FR_X KC_X // X +#define FR_C KC_C // C +#define FR_V KC_V // V +#define FR_B KC_B // B +#define FR_N KC_N // N +#define FR_M KC_M // M +#define FR_COMM KC_COMM // , +#define FR_DOT KC_DOT // . +#define FR_EACU KC_SLSH // É +#define FR_PIPE S(FR_HASH) // | +#define FR_EXLM S(FR_1) // ! +#define FR_DQUO S(FR_2) // " +#define FR_SLSH S(FR_3) // / +#define FR_DLR S(FR_4) // $ +#define FR_PERC S(FR_5) // % +#define FR_QUES S(FR_6) // ? +#define FR_AMPR S(FR_7) // & +#define FR_ASTR S(FR_8) // * +#define FR_LPRN S(FR_9) // ( +#define FR_RPRN S(FR_0) // ) +#define FR_UNDS S(FR_MINS) // _ +#define FR_PLUS S(FR_EQL) // + +#define FR_DIAE S(FR_CEDL) // ¨ (dead) +#define FR_COLN S(FR_SCLN) // : +#define FR_RDAQ S(FR_LDAQ) // » +#define FR_QUOT S(FR_COMM) // ' +#define FR_BSLS ALGR(FR_HASH) // (backslash) +#define FR_PLMN ALGR(FR_1) // ± +#define FR_AT ALGR(FR_2) // @ +#define FR_PND ALGR(FR_3) // £ +#define FR_CENT ALGR(FR_4) // ¢ +#define FR_CURR ALGR(FR_5) // ¤ +#define FR_NOT ALGR(FR_6) // ¬ +#define FR_BRKP ALGR(FR_7) // ¦ +#define FR_SUP2 ALGR(FR_8) // ² +#define FR_SUP3 ALGR(FR_9) // ³ +#define FR_QRTR ALGR(FR_0) // ¼ +#define FR_HALF ALGR(FR_MINS) // ½ +#define FR_TQTR ALGR(FR_EQL) // ¾ +#define FR_EURO ALGR(FR_E) // € +#define FR_SECT ALGR(FR_O) // § +#define FR_PARA ALGR(FR_P) // ¶ +#define FR_LBRC ALGR(FR_DCIR) // [ +#define FR_RBRC ALGR(FR_CEDL) // ] +#define FR_TILD ALGR(FR_SCLN) // ~ +#define FR_LCBR ALGR(FR_DGRV) // { +#define FR_RCBR ALGR(FR_LABK) // } +#define FR_DEG ALGR(FR_LDAQ) // ° +#define FR_MICR ALGR(FR_M) // µ +#define FR_MACR ALGR(FR_COMM) // ¯ +#define FR_SHYP ALGR(FR_DOT) // ­ (soft hyphen) +#define FR_ACUT ALGR(FR_EACU) // ´ (dead) From 423b6bfd83436da4e804eeabecc5fd7b83614169 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 9 Jul 2023 03:57:57 -0400 Subject: [PATCH 4/9] Add missing FR_RABK to the Canadian French input locale --- .../keycodes/extras/keycodes_canadian_french_0.0.1.hjson | 4 ++++ quantum/keymap_extras/keymap_canadian_french.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson index 130abf1fe2d5..b8c2eb6524a2 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson @@ -278,6 +278,10 @@ "key": "FR_COLN", "label": ":", } + "S(FR_LABK)": { + "key": "FR_RABK", + "label": ">", + } "S(FR_LDAQ)": { "key": "FR_RDAQ", "label": "»", diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index bb8ae3e15eb0..a18ce37dc395 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -91,6 +91,7 @@ #define FR_PLUS S(FR_EQL) // + #define FR_DIAE S(FR_CEDL) // ¨ (dead) #define FR_COLN S(FR_SCLN) // : +#define FR_RABK S(FR_LABK) // > #define FR_RDAQ S(FR_LDAQ) // » #define FR_QUOT S(FR_COMM) // ' #define FR_BSLS ALGR(FR_HASH) // (backslash) @@ -120,3 +121,4 @@ #define FR_SHYP ALGR(FR_DOT) // ­ (soft hyphen) #define FR_ACUT ALGR(FR_EACU) // ´ (dead) + From 2de2297cbaf693487a901b50da0268503ea24e6a Mon Sep 17 00:00:00 2001 From: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 9 Jul 2023 13:21:11 -0400 Subject: [PATCH 5/9] Update sendstring header include for Canadian French per #21485 Co-authored-by: Ryan --- quantum/keymap_extras/sendstring_canadian_french.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/keymap_extras/sendstring_canadian_french.h b/quantum/keymap_extras/sendstring_canadian_french.h index 7b872befb58b..66d40cd915dd 100644 --- a/quantum/keymap_extras/sendstring_canadian_french.h +++ b/quantum/keymap_extras/sendstring_canadian_french.h @@ -19,7 +19,7 @@ #pragma once #include "keymap_canadian_french.h" -#include "quantum.h" +#include "send_string.h" // clang-format off From 81c9d0235c59e46f9f877de6363af70a58f66b38 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 10 Dec 2023 03:01:41 -0500 Subject: [PATCH 6/9] Remove FR_EURO, not present in common Windows builds, from AltGr in Canadian French --- .../keycodes/extras/keycodes_canadian_french_0.0.1.hjson | 6 +----- quantum/keymap_extras/keymap_canadian_french.h | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson index b8c2eb6524a2..b901d8d336cc 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson @@ -294,7 +294,7 @@ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ * │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ │ │ │ € │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │ + * │ │ │ │ │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ * │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ @@ -355,10 +355,6 @@ "key": "FR_TQTR", "label": "¾", } - "ALGR(FR_E)": { - "key": "FR_EURO", - "label": "€", - } "ALGR(FR_O)": { "key": "FR_SECT", "label": "§", diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index a18ce37dc395..f0cf380cbb8d 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -107,7 +107,6 @@ #define FR_QRTR ALGR(FR_0) // ¼ #define FR_HALF ALGR(FR_MINS) // ½ #define FR_TQTR ALGR(FR_EQL) // ¾ -#define FR_EURO ALGR(FR_E) // € #define FR_SECT ALGR(FR_O) // § #define FR_PARA ALGR(FR_P) // ¶ #define FR_LBRC ALGR(FR_DCIR) // [ From 19a113ce6fb0853f564b90caf56bb1488cb18352 Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Sun, 10 Dec 2023 03:09:37 -0500 Subject: [PATCH 7/9] Fix file requiring regeneration in the previous commit --- quantum/keymap_extras/keymap_canadian_french.h | 1 - 1 file changed, 1 deletion(-) diff --git a/quantum/keymap_extras/keymap_canadian_french.h b/quantum/keymap_extras/keymap_canadian_french.h index f0cf380cbb8d..a61d48d3ed39 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -120,4 +120,3 @@ #define FR_SHYP ALGR(FR_DOT) // ­ (soft hyphen) #define FR_ACUT ALGR(FR_EACU) // ´ (dead) - From d328803e740b39deea09d27c3c97c7c4bc757caa Mon Sep 17 00:00:00 2001 From: Nebuleon Fumika <2391500+Nebuleon@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:03:03 -0500 Subject: [PATCH 8/9] Fix change from FC_ to FR_ also in the sendstring header --- .../sendstring_canadian_french.h | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/quantum/keymap_extras/sendstring_canadian_french.h b/quantum/keymap_extras/sendstring_canadian_french.h index 66d40cd915dd..2abba3a9d308 100644 --- a/quantum/keymap_extras/sendstring_canadian_french.h +++ b/quantum/keymap_extras/sendstring_canadian_french.h @@ -94,27 +94,27 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = { XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, // ! " # $ % & ' - KC_SPC, FC_1, FC_2, FC_HASH, FC_4, FC_5, FC_7, FC_COMM, + KC_SPC, FR_1, FR_2, FR_HASH, FR_4, FR_5, FR_7, FR_COMM, // ( ) * + , - . / - FC_9, FC_0, FC_8, FC_EQL, FC_COMM, FC_MINS, FC_DOT, FC_3, + FR_9, FR_0, FR_8, FR_EQL, FR_COMM, FR_MINS, FR_DOT, FR_3, // 0 1 2 3 4 5 6 7 - FC_0, FC_1, FC_2, FC_3, FC_4, FC_5, FC_6, FC_7, + FR_0, FR_1, FR_2, FR_3, FR_4, FR_5, FR_6, FR_7, // 8 9 : ; < = > ? - FC_8, FC_9, FC_SCLN, FC_SCLN, FC_LABK, FC_EQL, FC_LABK, FC_6, + FR_8, FR_9, FR_SCLN, FR_SCLN, FR_LABK, FR_EQL, FR_LABK, FR_6, // @ A B C D E F G - FC_2, FC_A, FC_B, FC_C, FC_D, FC_E, FC_F, FC_G, + FR_2, FR_A, FR_B, FR_C, FR_D, FR_E, FR_F, FR_G, // H I J K L M N O - FC_H, FC_I, FC_J, FC_K, FC_L, FC_M, FC_N, FC_O, + FR_H, FR_I, FR_J, FR_K, FR_L, FR_M, FR_N, FR_O, // P Q R S T U V W - FC_P, FC_Q, FC_R, FC_S, FC_T, FC_U, FC_V, FC_W, + FR_P, FR_Q, FR_R, FR_S, FR_T, FR_U, FR_V, FR_W, // X Y Z [ \ ] ^ _ - FC_X, FC_Y, FC_Z, FC_DCIR, FC_HASH, FC_CEDL, FC_DCIR, FC_MINS, + FR_X, FR_Y, FR_Z, FR_DCIR, FR_HASH, FR_CEDL, FR_DCIR, FR_MINS, // ` a b c d e f g - FC_DGRV, FC_A, FC_B, FC_C, FC_D, FC_E, FC_F, FC_G, + FR_DGRV, FR_A, FR_B, FR_C, FR_D, FR_E, FR_F, FR_G, // h i j k l m n o - FC_H, FC_I, FC_J, FC_K, FC_L, FC_M, FC_N, FC_O, + FR_H, FR_I, FR_J, FR_K, FR_L, FR_M, FR_N, FR_O, // p q r s t u v w - FC_P, FC_Q, FC_R, FC_S, FC_T, FC_U, FC_V, FC_W, + FR_P, FR_Q, FR_R, FR_S, FR_T, FR_U, FR_V, FR_W, // x y z { | } ~ DEL - FC_X, FC_Y, FC_Z, FC_DGRV, FC_HASH, FC_LABK, FC_SCLN, KC_DEL + FR_X, FR_Y, FR_Z, FR_DGRV, FR_HASH, FR_LABK, FR_SCLN, KC_DEL }; From f6e9da03668f30bc405b2afdf1bb0fc2715ed74a Mon Sep 17 00:00:00 2001 From: Nebuleon <2391500+Nebuleon@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:06:14 -0500 Subject: [PATCH 9/9] Canadian French: update the description of soft hyphen from "shy" to "-" Co-authored-by: Ryan --- .../keycodes/extras/keycodes_canadian_french_0.0.1.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson index b901d8d336cc..6fefd11f59d5 100644 --- a/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson +++ b/data/constants/keycodes/extras/keycodes_canadian_french_0.0.1.hjson @@ -298,7 +298,7 @@ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ * │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ - * │ │ ° │ │ │ │ │ │ │ µ │ ¯ │shy│ ´ │ │ + * │ │ ° │ │ │ │ │ │ │ µ │ ¯ │ - │ ´ │ │ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ * │ │ │ │ │ │ │ │ │ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘