Co-authored-by: Ryan <fauxpark@gmail.com>pull/22872/head
@ -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": "FR_HASH", | |||
"label": "#", | |||
} | |||
"KC_1": { | |||
"key": "FR_1", | |||
"label": "1", | |||
} | |||
"KC_2": { | |||
"key": "FR_2", | |||
"label": "2", | |||
} | |||
"KC_3": { | |||
"key": "FR_3", | |||
"label": "3", | |||
} | |||
"KC_4": { | |||
"key": "FR_4", | |||
"label": "4", | |||
} | |||
"KC_5": { | |||
"key": "FR_5", | |||
"label": "5", | |||
} | |||
"KC_6": { | |||
"key": "FR_6", | |||
"label": "6", | |||
} | |||
"KC_7": { | |||
"key": "FR_7", | |||
"label": "7", | |||
} | |||
"KC_8": { | |||
"key": "FR_8", | |||
"label": "8", | |||
} | |||
"KC_9": { | |||
"key": "FR_9", | |||
"label": "9", | |||
} | |||
"KC_0": { | |||
"key": "FR_0", | |||
"label": "0", | |||
} | |||
"KC_MINS": { | |||
"key": "FR_MINS", | |||
"label": "-", | |||
} | |||
"KC_EQL": { | |||
"key": "FR_EQL", | |||
"label": "=", | |||
} | |||
"KC_Q": { | |||
"key": "FR_Q", | |||
"label": "Q", | |||
} | |||
"KC_W": { | |||
"key": "FR_W", | |||
"label": "W", | |||
} | |||
"KC_E": { | |||
"key": "FR_E", | |||
"label": "E", | |||
} | |||
"KC_R": { | |||
"key": "FR_R", | |||
"label": "R", | |||
} | |||
"KC_T": { | |||
"key": "FR_T", | |||
"label": "T", | |||
} | |||
"KC_Y": { | |||
"key": "FR_Y", | |||
"label": "Y", | |||
} | |||
"KC_U": { | |||
"key": "FR_U", | |||
"label": "U", | |||
} | |||
"KC_I": { | |||
"key": "FR_I", | |||
"label": "I", | |||
} | |||
"KC_O": { | |||
"key": "FR_O", | |||
"label": "O", | |||
} | |||
"KC_P": { | |||
"key": "FR_P", | |||
"label": "P", | |||
} | |||
"KC_LBRC": { | |||
"key": "FR_DCIR", | |||
"label": "^ (dead)", | |||
} | |||
"KC_RBRC": { | |||
"key": "FR_CEDL", | |||
"label": "¸ (dead)", | |||
} | |||
"KC_A": { | |||
"key": "FR_A", | |||
"label": "A", | |||
} | |||
"KC_S": { | |||
"key": "FR_S", | |||
"label": "S", | |||
} | |||
"KC_D": { | |||
"key": "FR_D", | |||
"label": "D", | |||
} | |||
"KC_F": { | |||
"key": "FR_F", | |||
"label": "F", | |||
} | |||
"KC_G": { | |||
"key": "FR_G", | |||
"label": "G", | |||
} | |||
"KC_H": { | |||
"key": "FR_H", | |||
"label": "H", | |||
} | |||
"KC_J": { | |||
"key": "FR_J", | |||
"label": "J", | |||
} | |||
"KC_K": { | |||
"key": "FR_K", | |||
"label": "K", | |||
} | |||
"KC_L": { | |||
"key": "FR_L", | |||
"label": "L", | |||
} | |||
"KC_SCLN": { | |||
"key": "FR_SCLN", | |||
"label": ";", | |||
} | |||
"KC_QUOT": { | |||
"key": "FR_DGRV", | |||
"label": "` (dead)", | |||
} | |||
"KC_NUHS": { | |||
"key": "FR_LABK", | |||
"label": "<", | |||
} | |||
"KC_NUBS": { | |||
"key": "FR_LDAQ", | |||
"label": "«", | |||
} | |||
"KC_Z": { | |||
"key": "FR_Z", | |||
"label": "Z", | |||
} | |||
"KC_X": { | |||
"key": "FR_X", | |||
"label": "X", | |||
} | |||
"KC_C": { | |||
"key": "FR_C", | |||
"label": "C", | |||
} | |||
"KC_V": { | |||
"key": "FR_V", | |||
"label": "V", | |||
} | |||
"KC_B": { | |||
"key": "FR_B", | |||
"label": "B", | |||
} | |||
"KC_N": { | |||
"key": "FR_N", | |||
"label": "N", | |||
} | |||
"KC_M": { | |||
"key": "FR_M", | |||
"label": "M", | |||
} | |||
"KC_COMM": { | |||
"key": "FR_COMM", | |||
"label": ",", | |||
} | |||
"KC_DOT": { | |||
"key": "FR_DOT", | |||
"label": ".", | |||
} | |||
"KC_SLSH": { | |||
"key": "FR_EACU", | |||
"label": "É", | |||
} | |||
/* Shifted symbols | |||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ | |||
* │ | │ ! │ " │ / │ $ │ % │ ? │ & │ * │ ( │ ) │ _ │ + │ │ | |||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ | |||
* │ │ │ │ │ │ │ │ │ │ │ │ │ ¨ │ │ | |||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ | |||
* │ │ │ │ │ │ │ │ │ │ │ : │ │ > │ │ | |||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ | |||
* │ │ » │ │ │ │ │ │ │ │ ' │ │ │ │ | |||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ | |||
* │ │ │ │ │ │ │ │ │ | |||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ | |||
*/ | |||
"S(FR_HASH)": { | |||
"key": "FR_PIPE", | |||
"label": "|", | |||
} | |||
"S(FR_1)": { | |||
"key": "FR_EXLM", | |||
"label": "!", | |||
} | |||
"S(FR_2)": { | |||
"key": "FR_DQUO", | |||
"label": "\"", | |||
} | |||
"S(FR_3)": { | |||
"key": "FR_SLSH", | |||
"label": "/", | |||
} | |||
"S(FR_4)": { | |||
"key": "FR_DLR", | |||
"label": "$", | |||
} | |||
"S(FR_5)": { | |||
"key": "FR_PERC", | |||
"label": "%", | |||
} | |||
"S(FR_6)": { | |||
"key": "FR_QUES", | |||
"label": "?", | |||
} | |||
"S(FR_7)": { | |||
"key": "FR_AMPR", | |||
"label": "&", | |||
} | |||
"S(FR_8)": { | |||
"key": "FR_ASTR", | |||
"label": "*", | |||
} | |||
"S(FR_9)": { | |||
"key": "FR_LPRN", | |||
"label": "(", | |||
} | |||
"S(FR_0)": { | |||
"key": "FR_RPRN", | |||
"label": ")", | |||
} | |||
"S(FR_MINS)": { | |||
"key": "FR_UNDS", | |||
"label": "_", | |||
} | |||
"S(FR_EQL)": { | |||
"key": "FR_PLUS", | |||
"label": "+", | |||
} | |||
"S(FR_CEDL)": { | |||
"key": "FR_DIAE", | |||
"label": "¨ (dead)", | |||
} | |||
"S(FR_SCLN)": { | |||
"key": "FR_COLN", | |||
"label": ":", | |||
} | |||
"S(FR_LABK)": { | |||
"key": "FR_RABK", | |||
"label": ">", | |||
} | |||
"S(FR_LDAQ)": { | |||
"key": "FR_RDAQ", | |||
"label": "»", | |||
} | |||
"S(FR_COMM)": { | |||
"key": "FR_QUOT", | |||
"label": "'", | |||
} | |||
/* AltGr symbols | |||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ | |||
* │ \ │ ± │ @ │ £ │ ¢ │ ¤ │ ¬ │ ¦ │ ² │ ³ │ ¼ │ ½ │ ¾ │ │ | |||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ | |||
* │ │ │ │ │ │ │ │ │ │ § │ ¶ │ [ │ ] │ │ | |||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ | |||
* │ │ │ │ │ │ │ │ │ │ │ ~ │ { │ } │ │ | |||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ | |||
* │ │ ° │ │ │ │ │ │ │ µ │ ¯ │ - │ ´ │ │ | |||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ | |||
* │ │ │ │ │ │ │ │ │ | |||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ | |||
*/ | |||
"ALGR(FR_HASH)": { | |||
"key": "FR_BSLS", | |||
"label": "\\", | |||
} | |||
"ALGR(FR_1)": { | |||
"key": "FR_PLMN", | |||
"label": "±", | |||
} | |||
"ALGR(FR_2)": { | |||
"key": "FR_AT", | |||
"label": "@", | |||
} | |||
"ALGR(FR_3)": { | |||
"key": "FR_PND", | |||
"label": "£", | |||
} | |||
"ALGR(FR_4)": { | |||
"key": "FR_CENT", | |||
"label": "¢", | |||
} | |||
"ALGR(FR_5)": { | |||
"key": "FR_CURR", | |||
"label": "¤", | |||
} | |||
"ALGR(FR_6)": { | |||
"key": "FR_NOT", | |||
"label": "¬", | |||
} | |||
"ALGR(FR_7)": { | |||
"key": "FR_BRKP", | |||
"label": "¦", | |||
} | |||
"ALGR(FR_8)": { | |||
"key": "FR_SUP2", | |||
"label": "²", | |||
} | |||
"ALGR(FR_9)": { | |||
"key": "FR_SUP3", | |||
"label": "³", | |||
} | |||
"ALGR(FR_0)": { | |||
"key": "FR_QRTR", | |||
"label": "¼", | |||
} | |||
"ALGR(FR_MINS)": { | |||
"key": "FR_HALF", | |||
"label": "½", | |||
} | |||
"ALGR(FR_EQL)": { | |||
"key": "FR_TQTR", | |||
"label": "¾", | |||
} | |||
"ALGR(FR_O)": { | |||
"key": "FR_SECT", | |||
"label": "§", | |||
} | |||
"ALGR(FR_P)": { | |||
"key": "FR_PARA", | |||
"label": "¶", | |||
} | |||
"ALGR(FR_DCIR)": { | |||
"key": "FR_LBRC", | |||
"label": "[", | |||
} | |||
"ALGR(FR_CEDL)": { | |||
"key": "FR_RBRC", | |||
"label": "]", | |||
} | |||
"ALGR(FR_SCLN)": { | |||
"key": "FR_TILD", | |||
"label": "~", | |||
} | |||
"ALGR(FR_DGRV)": { | |||
"key": "FR_LCBR", | |||
"label": "{", | |||
} | |||
"ALGR(FR_LABK)": { | |||
"key": "FR_RCBR", | |||
"label": "}", | |||
} | |||
"ALGR(FR_LDAQ)": { | |||
"key": "FR_DEG", | |||
"label": "°", | |||
} | |||
"ALGR(FR_M)": { | |||
"key": "FR_MICR", | |||
"label": "µ", | |||
} | |||
"ALGR(FR_COMM)": { | |||
"key": "FR_MACR", | |||
"label": "¯", | |||
} | |||
"ALGR(FR_DOT)": { | |||
"key": "FR_SHYP", | |||
"label": " (soft hyphen)", | |||
} | |||
"ALGR(FR_EACU)": { | |||
"key": "FR_ACUT", | |||
"label": "´ (dead)", | |||
} | |||
} | |||
} |
@ -0,0 +1,122 @@ | |||
// 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 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_RABK S(FR_LABK) // > | |||
#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_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) | |||
@ -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 <http://www.gnu.org/licenses/>. | |||
*/ | |||
// Sendstring lookup tables for Canadian French layouts | |||
#pragma once | |||
#include "keymap_canadian_french.h" | |||
#include "send_string.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, FR_1, FR_2, FR_HASH, FR_4, FR_5, FR_7, FR_COMM, | |||
// ( ) * + , - . / | |||
FR_9, FR_0, FR_8, FR_EQL, FR_COMM, FR_MINS, FR_DOT, FR_3, | |||
// 0 1 2 3 4 5 6 7 | |||
FR_0, FR_1, FR_2, FR_3, FR_4, FR_5, FR_6, FR_7, | |||
// 8 9 : ; < = > ? | |||
FR_8, FR_9, FR_SCLN, FR_SCLN, FR_LABK, FR_EQL, FR_LABK, FR_6, | |||
// @ A B C D E F 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 | |||
FR_H, FR_I, FR_J, FR_K, FR_L, FR_M, FR_N, FR_O, | |||
// P Q R S T U V W | |||
FR_P, FR_Q, FR_R, FR_S, FR_T, FR_U, FR_V, FR_W, | |||
// X Y Z [ \ ] ^ _ | |||
FR_X, FR_Y, FR_Z, FR_DCIR, FR_HASH, FR_CEDL, FR_DCIR, FR_MINS, | |||
// ` a b c d e f 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 | |||
FR_H, FR_I, FR_J, FR_K, FR_L, FR_M, FR_N, FR_O, | |||
// p q r s t u v w | |||
FR_P, FR_Q, FR_R, FR_S, FR_T, FR_U, FR_V, FR_W, | |||
// x y z { | } ~ DEL | |||
FR_X, FR_Y, FR_Z, FR_DGRV, FR_HASH, FR_LABK, FR_SCLN, KC_DEL | |||
}; |