From 17af712b7c3190a504110cc38a509c7da8e533a0 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 1 Apr 2020 14:00:34 +1100 Subject: [PATCH] Add Lithuanian keymap and sendstring LUT (#8562) * Add Lithuanian keymap and sendstring LUT * Add Lithuanian AZERTY --- .../keymap_extras/keymap_lithuanian_azerty.h | 156 ++++++++++++++++ .../keymap_extras/keymap_lithuanian_qwerty.h | 166 ++++++++++++++++++ .../sendstring_lithuanian_azerty.h | 100 +++++++++++ .../sendstring_lithuanian_qwerty.h | 80 +++++++++ 4 files changed, 502 insertions(+) create mode 100644 quantum/keymap_extras/keymap_lithuanian_azerty.h create mode 100644 quantum/keymap_extras/keymap_lithuanian_qwerty.h create mode 100644 quantum/keymap_extras/sendstring_lithuanian_azerty.h create mode 100644 quantum/keymap_extras/sendstring_lithuanian_qwerty.h diff --git a/quantum/keymap_extras/keymap_lithuanian_azerty.h b/quantum/keymap_extras/keymap_lithuanian_azerty.h new file mode 100644 index 0000000000..68bcd6dc1e --- /dev/null +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -0,0 +1,156 @@ +/* Copyright 2020 + * + * 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 . + */ + +#pragma once + +#include "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ ! │ - │ / │ ; │ : │ , │ . │ = │ ( │ ) │ ? │ X │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ Ą │ Ž │ E │ R │ T │ Y │ U │ I │ O │ P │ Į │ W │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ A │ S │ D │ Š │ G │ H │ J │ K │ L │ Ų │ Ė │ Q │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ < │ Z │ Ū │ C │ V │ B │ N │ M │ Č │ F │ Ę │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_GRV KC_GRV // ` +#define LT_EXLM KC_1 // ! +#define LT_MINS KC_2 // - +#define LT_SLSH KC_3 // / +#define LT_SCLN KC_4 // ; +#define LT_COLN KC_5 // : +#define LT_COMM KC_6 // , +#define LT_DOT KC_7 // . +#define LT_EQL KC_8 // = +#define LT_LPRN KC_9 // ( +#define LT_RPRN KC_0 // ) +#define LT_QUES KC_MINS // ? +#define LT_X KC_EQL // X +// Row 2 +#define LT_AOGO KC_Q // Ą +#define LT_ZCAR KC_W // Ž +#define LT_E KC_E // E +#define LT_R KC_R // R +#define LT_T KC_T // T +#define LT_Y KC_Y // Y +#define LT_U KC_U // U +#define LT_I KC_I // I +#define LT_O KC_O // O +#define LT_P KC_P // P +#define LT_IOGO KC_LBRC // Į +#define LT_W KC_RBRC // W +// Row 3 +#define LT_A KC_A // A +#define LT_S KC_S // S +#define LT_D KC_D // D +#define LT_SCAR KC_F // Š +#define LT_G KC_G // G +#define LT_H KC_H // H +#define LT_J KC_J // J +#define LT_K KC_K // K +#define LT_L KC_L // L +#define LT_UOGO KC_SCLN // Ų +#define LT_EDOT KC_QUOT // Ė +#define LT_Q KC_NUHS // Q +// Row 4 +#define LT_LABK KC_NUBS // < +#define LT_Z KC_Z // Z +#define LT_UMAC KC_X // Ū +#define LT_C KC_C // C +#define LT_V KC_V // V +#define LT_B KC_B // B +#define LT_N KC_N // N +#define LT_M KC_M // M +#define LT_CCAR KC_COMM // Č +#define LT_F KC_DOT // F +#define LT_EOGO KC_SLSH // Ę + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │   │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ > │   │   │   │   │   │   │   │   │   │   │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_TILD S(LT_GRV) // ~ +#define LT_1 S(LT_EXLM) // 1 +#define LT_2 S(LT_MINS) // 2 +#define LT_3 S(LT_SLSH) // 3 +#define LT_4 S(LT_SCLN) // 4 +#define LT_5 S(LT_COLN) // 5 +#define LT_6 S(LT_COMM) // 6 +#define LT_7 S(LT_DOT) // 7 +#define LT_8 S(LT_EQL) // 8 +#define LT_9 S(LT_LPRN) // 9 +#define LT_0 S(LT_RPRN) // 0 +#define LT_PLUS S(LT_QUES) // + +// Row 4 +#define LT_RABK S(LT_LABK) // > + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ´ │ @ │ _ │ # │ $ │ § │ ^ │ & │ * │ [ │ ] │ ' │ % │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │ € │   │   │   │   │   │   │   │ { │ } │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │ " │ | │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ – │   │   │   │   │   │   │   │ „ │ “ │ \ │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_ACUT ALGR(LT_GRV) // ´ +#define LT_AT ALGR(LT_EXLM) // @ +#define LT_UNDS ALGR(LT_MINS) // _ +#define LT_HASH ALGR(LT_SLSH) // # +#define LT_DLR ALGR(LT_SCLN) // $ +#define LT_SECT ALGR(LT_COLN) // § +#define LT_CIRC ALGR(LT_COMM) // ^ +#define LT_AMPR ALGR(LT_DOT) // & +#define LT_ASTR ALGR(LT_EQL) // * +#define LT_LBRC ALGR(LT_LRPN) // [ +#define LT_RBRC ALGR(LT_RPRN) // ] +#define LT_QUOT ALGR(LT_QUES) // ' +#define LT_PERC ALGR(LT_X) // % +// Row 2 +#define LT_EURO ALGR(LT_E) // € +#define LT_LCBR ALGR(LT_IOGO) // { +#define LT_RCBR ALGR(LT_W) // } +// Row 3 +#define LT_DQUO ALGR(LT_EDOT) // " +#define LT_PIPE ALGR(LT_Q) // | +// Row 4 +#define LT_NDSH ALGR(LT_LABK) // – +#define LT_DLQU ALGR(LT_CCAR) // „ +#define LT_LDQU ALGR(LT_F) // “ +#define LT_BSLS ALGR(LT_EOGO) // (backslash) diff --git a/quantum/keymap_extras/keymap_lithuanian_qwerty.h b/quantum/keymap_extras/keymap_lithuanian_qwerty.h new file mode 100644 index 0000000000..0f92562a13 --- /dev/null +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -0,0 +1,166 @@ +/* Copyright 2020 + * + * 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 . + */ + +#pragma once + +#include "keymap.h" + +// clang-format off + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ Ą │ Č │ Ę │ Ė │ Į │ Š │ Ų │ Ū │ 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 │ , │ . │ / │          │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_GRV KC_GRV // ` +#define LT_AOGO KC_1 // Ą +#define LT_CCAR KC_2 // Č +#define LT_EOGO KC_3 // Ę +#define LT_EDOT KC_4 // Ė +#define LT_IOGO KC_5 // Į +#define LT_SCAR KC_6 // Š +#define LT_UOGO KC_7 // Ų +#define LT_UMAC KC_8 // Ū +#define LT_9 KC_9 // 9 +#define LT_0 KC_0 // 0 +#define LT_MINS KC_MINS // - +#define LT_ZCAR KC_EQL // Ž +// Row 2 +#define LT_Q KC_Q // Q +#define LT_W KC_W // W +#define LT_E KC_E // E +#define LT_R KC_R // R +#define LT_T KC_T // T +#define LT_Y KC_Y // Y +#define LT_U KC_U // U +#define LT_I KC_I // I +#define LT_O KC_O // O +#define LT_P KC_P // P +#define LT_LBRC KC_LBRC // [ +#define LT_RBRC KC_RBRC // ] +// Row 3 +#define LT_A KC_A // A +#define LT_S KC_S // S +#define LT_D KC_D // D +#define LT_F KC_F // F +#define LT_G KC_G // G +#define LT_H KC_H // H +#define LT_J KC_J // J +#define LT_K KC_K // K +#define LT_L KC_L // L +#define LT_SCLN KC_SCLN // ; +#define LT_QUOT KC_QUOT // ' +#define LT_BSLS KC_NUHS // (backslash) +// Row 4 +#define LT_Z KC_Z // Z +#define LT_X KC_X // X +#define LT_C KC_C // C +#define LT_V KC_V // V +#define LT_B KC_B // B +#define LT_N KC_N // N +#define LT_M KC_M // M +#define LT_COMM KC_COMM // , +#define LT_DOT KC_DOT // . +#define LT_SLSH KC_SLSH // / + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │   │   │   │   │   │   │   │   │ ( │ ) │ _ │   │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │ { │ } │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │ : │ " │ | │    │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │        │   │   │   │   │   │   │   │ < │ > │ ? │          │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_TILD S(LT_GRV) // ~ +#define LT_LPRN S(LT_9) // ( +#define LT_RPRN S(LT_0) // ) +#define LT_UNDS S(LT_MINS) // * +// Row 2 +#define LT_LCBR S(LT_LBRC) // { +#define LT_RCBR S(LT_RBRC) // } +// Row 3 +#define LT_COLN S(LT_SCLN) // ; +#define LT_DQUO S(LT_QUOT) // " +#define LT_PIPE S(LT_BSLS) // | +// Row 4 +#define LT_LABK S(LT_COMM) // < +#define LT_RABK S(LT_DOT) // > +#define LT_QUES S(LT_SLSH) // ? + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │   │   │   │ = │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │ € │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │        │   │   │   │   │   │   │   │   │   │   │          │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_1 ALGR(LT_AOGO) // 1 +#define LT_2 ALGR(LT_CCAR) // 2 +#define LT_3 ALGR(LT_EOGO) // 3 +#define LT_4 ALGR(LT_EDOT) // 4 +#define LT_5 ALGR(LT_IOGO) // 5 +#define LT_6 ALGR(LT_SCAR) // 6 +#define LT_7 ALGR(LT_UOGO) // 7 +#define LT_8 ALGR(LT_UMAC) // 8 +#define LT_EQL ALGR(LT_PLUS) // = +// Row 2 +#define LT_EURO ALGR(LT_E) // € + +/* Shift+AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │   │   │   │ + │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │        │   │   │   │   │   │   │   │   │   │   │          │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define LT_EXLM S(ALGR(LT_AOGO)) // ! +#define LT_AT S(ALGR(LT_CCAR)) // @ +#define LT_HASH S(ALGR(LT_EOGO)) // # +#define LT_DLR S(ALGR(LT_EDOT)) // $ +#define LT_PERC S(ALGR(LT_IOGO)) // % +#define LT_CIRC S(ALGR(LT_SCAR)) // ^ +#define LT_AMPR S(ALGR(LT_UOGO)) // & +#define LT_ASTR S(ALGR(LT_UMAC)) // * +#define LT_PLUS S(ALGR(LT_PLUS)) // + diff --git a/quantum/keymap_extras/sendstring_lithuanian_azerty.h b/quantum/keymap_extras/sendstring_lithuanian_azerty.h new file mode 100644 index 0000000000..7498a3dc4d --- /dev/null +++ b/quantum/keymap_extras/sendstring_lithuanian_azerty.h @@ -0,0 +1,100 @@ +/* Copyright 2020 + * + * 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 Lithuanian ĄŽERTY layouts + +#pragma once + +#include "keymap_lithuanian_azerty.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, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 0, 1, 0, 0, 0, 0), + KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 1, 0, 0, 0, 0, 1, 0), + 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, 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) +}; + +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, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(0, 0, 1, 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, 1, 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, 1, 1, 1, 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, LT_EXLM, LT_EDOT, LT_SLSH, LT_SCLN, LT_X, LT_DOT, LT_QUES, + // ( ) * + , - . / + LT_LRPN, LT_RPRN, LT_EQL, LT_QUES, LT_COMM, LT_MINS, LT_DOT, LT_SLSH, + // 0 1 2 3 4 5 6 7 + LT_RPRN, LT_EXLM, LT_MINS, LT_SLSH, LT_SLCN, LT_COLN, LT_COMM, LT_DOT, + // 8 9 : ; < = > ? + LT_EQL, LT_LPRN, LT_COLN, LT_SCLN, LT_LABK, LT_EQL, LT_LABK, LT_QUES, + // @ A B C D E F G + LT_EXLM, LT_A, LT_B, LT_C, LT_D, LT_E, LT_F, LT_G, + // H I J K L M N O + LT_H, LT_I, LT_J, LT_K, LT_L, LT_M, LT_N, LT_O, + // P Q R S T U V W + LT_P, LT_Q, LT_R, LT_S, LT_T, LT_U, LT_V, LT_W, + // X Y Z [ \ ] ^ _ + LT_X, LT_Y, LT_Z, LT_LPRN, LT_EOGO, LT_RPRN, LT_COMM, LT_MINS, + // ` a b c d e f g + LT_GRV, LT_A, LT_B, LT_C, LT_D, LT_E, LT_F, LT_G, + // h i j k l m n o + LT_H, LT_I, LT_J, LT_K, LT_L, LT_M, LT_N, LT_O, + // p q r s t u v w + LT_P, LT_Q, LT_R, LT_S, LT_T, LT_U, LT_V, LT_W, + // x y z { | } ~ DEL + LT_X, LT_Y, LT_Z, LT_IOGO, LT_Q, LT_W, LT_GRV, KC_DEL +}; diff --git a/quantum/keymap_extras/sendstring_lithuanian_qwerty.h b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h new file mode 100644 index 0000000000..69cb94de71 --- /dev/null +++ b/quantum/keymap_extras/sendstring_lithuanian_qwerty.h @@ -0,0 +1,80 @@ +/* Copyright 2020 + * + * 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 Lithuanian QWERTY layouts + +#pragma once + +#include "keymap_lithuanian_qwerty.h" +#include "quantum.h" + +// clang-format off + +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, 1, 0, 1, 1, 1, 1, 0), + KCLUT_ENTRY(0, 0, 1, 1, 0, 0, 0, 0), + KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1), + KCLUT_ENTRY(1, 0, 0, 0, 0, 1, 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, 0, 0, 0, 1, 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) +}; + +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, LT_1, LT_QUOT, LT_3, LT_4, LT_5, LT_7, LT_QUOT, + // ( ) * + , - . / + LT_9, LT_0, LT_8, LT_ZCAR, LT_COMM, LT_MINS, LT_DOT, LT_SLSH, + // 0 1 2 3 4 5 6 7 + LT_0, LT_AOGO, LT_CCAR, LT_EOGO, LT_EDOT, LT_IOGO, LT_SCAR, LT_UOGO, + // 8 9 : ; < = > ? + LT_UMAC, LT_9, LT_SCLN, LT_SCLN, LT_COMM, LT_PLUS, LT_DOT, LT_SLSH, + // @ A B C D E F G + LT_CCAR, LT_A, LT_B, LT_C, LT_D, LT_E, LT_F, LT_G, + // H I J K L M N O + LT_H, LT_I, LT_J, LT_K, LT_L, LT_M, LT_N, LT_O, + // P Q R S T U V W + LT_P, LT_Q, LT_R, LT_S, LT_T, LT_U, LT_V, LT_W, + // X Y Z [ \ ] ^ _ + LT_X, LT_Y, LT_Z, LT_LBRC, LT_BSLS, LT_RBRC, LT_SCAR, LT_MINS, + // ` a b c d e f g + LT_GRV, LT_A, LT_B, LT_C, LT_D, LT_E, LT_F, LT_G, + // h i j k l m n o + LT_H, LT_I, LT_J, LT_K, LT_L, LT_M, LT_N, LT_O, + // p q r s t u v w + LT_P, LT_Q, LT_R, LT_S, LT_T, LT_U, LT_V, LT_W, + // x y z { | } ~ DEL + LT_X, LT_Y, LT_Z, LT_LBRC, LT_BSLS, LT_RBRC, LT_GRV, KC_DEL +};