summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--quantum/keymap_extras/keymap_lithuanian_azerty.h156
-rw-r--r--quantum/keymap_extras/keymap_lithuanian_qwerty.h166
-rw-r--r--quantum/keymap_extras/sendstring_lithuanian_azerty.h100
-rw-r--r--quantum/keymap_extras/sendstring_lithuanian_qwerty.h80
4 files changed, 502 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>.
+ */
+
+#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 <http://www.gnu.org/licenses/>.
+ */
+
+#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 <http://www.gnu.org/licenses/>.
+ */
+
+// 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 <http://www.gnu.org/licenses/>.
+ */
+
+// 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
+};