diff --git a/quantum/keymap_extras/keymap_turkish_f.h b/quantum/keymap_extras/keymap_turkish_f.h new file mode 100644 index 000000000..acb130c83 --- /dev/null +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -0,0 +1,197 @@ +/* Copyright 2019 + * + * 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 + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ + │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ / │ - │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ F │ G │ Ğ │ I │ O │ D │ R │ N │ H │ P │ Q │ W │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ U │ İ │ E │ A │ Ü │ T │ K │ M │ L │ Y │ Ş │ X │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ < │ J │ Ö │ V │ C │ Ç │ Z │ S │ B │ . │ , │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_PLUS KC_GRV // + +#define TR_1 KC_1 // 1 +#define TR_2 KC_2 // 2 +#define TR_3 KC_3 // 3 +#define TR_4 KC_4 // 4 +#define TR_5 KC_5 // 5 +#define TR_6 KC_6 // 6 +#define TR_7 KC_7 // 7 +#define TR_8 KC_8 // 8 +#define TR_9 KC_9 // 9 +#define TR_0 KC_0 // 0 +#define TR_SLSH KC_MINS // / +#define TR_MINS KC_EQL // - +// Row 2 +#define TR_F KC_Q // F +#define TR_G KC_W // G +#define TR_GBRV KC_E // Ğ +#define TR_I KC_R // I +#define TR_O KC_T // O +#define TR_D KC_Y // D +#define TR_R KC_U // R +#define TR_N KC_I // N +#define TR_H KC_O // H +#define TR_P KC_P // P +#define TR_Q KC_LBRC // Q +#define TR_W KC_RBRC // W +// Row 3 +#define TR_U KC_A // U +#define TR_IDOT KC_S // İ +#define TR_E KC_D // E +#define TR_A KC_F // A +#define TR_UDIA KC_G // Ü +#define TR_T KC_H // T +#define TR_K KC_J // K +#define TR_M KC_K // M +#define TR_L KC_L // L +#define TR_Y KC_SCLN // Y +#define TR_SCED KC_QUOT // Ş +#define TR_X KC_NUHS // X +// Row 4 +#define TR_LABK KC_NUBS // < +#define TR_J KC_Z // J +#define TR_ODIA KC_X // Ö +#define TR_V KC_C // V +#define TR_C KC_V // C +#define TR_CCED KC_B // Ç +#define TR_Z KC_N // Z +#define TR_S KC_M // S +#define TR_B KC_COMM // B +#define TR_DOT KC_DOT // . +#define TR_COMM KC_SLSH // , + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ * │ ! │ " │ ^ │ $ │ % │ & │ ' │ ( │ ) │ = │ ? │ _ │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ > │   │   │   │   │   │   │   │   │ : │ ; │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_ASTR S(TR_PLUS) // * +#define TR_EXLM S(TR_1) // ! +#define TR_DQUO S(TR_2) // " +#define TR_CIRC S(TR_3) // ^ (dead) +#define TR_DLR S(TR_4) // $ +#define TR_PERC S(TR_5) // % +#define TR_AMPR S(TR_6) // & +#define TR_QUOT S(TR_7) // ' +#define TR_LPRN S(TR_8) // ( +#define TR_RPRN S(TR_9) // ) +#define TR_EQL S(TR_0) // = +#define TR_QUES S(TR_ASTR) // ? +#define TR_UNDS S(TR_MINS) // _ +// Row 4 +#define TR_RABK S(TR_LABK) // > +#define TR_COLN S(TR_DOT) // : +#define TR_SCLN S(TR_COMM) // ; + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ¬ │ ¹ │ ² │ # │ ¼ │ ½ │ ¾ │ { │ [ │ ] │ } │ \ │ | │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ @ │   │   │ ¶ │   │ ¥ │   │   │ Ø │ £ │ ¨ │ ~ │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ Æ │ ß │ € │   │   │ ₺ │   │   │   │ ´ │   │ ` │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │ « │ » │ ¢ │   │   │   │ µ │ × │ ÷ │ - │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_NOT ALGR(TR_PLUS) // ¬ +#define TR_SUP1 ALGR(TR_1) // ¹ +#define TR_SUP2 ALGR(TR_2) // ² +#define TR_HASH ALGR(TR_3) // # +#define TR_QRTR ALGR(TR_4) // ¼ +#define TR_HALF ALGR(TR_5) // ½ +#define TR_TQTR ALGR(TR_6) // ¾ +#define TR_LCBR ALGR(TR_7) // { +#define TR_LBRC ALGR(TR_8) // [ +#define TR_RBRC ALGR(TR_9) // ] +#define TR_RCBR ALGR(TR_0) // } +#define TR_BSLS ALGR(TR_SLSH) // (backslash) +#define TR_PIPE ALGR(TR_MINS) // | +// Row 2 +#define TR_AT ALGR(TR_F) // @ +#define TR_PILC ALGR(TR_I) // ¶ +#define TR_YEN ALGR(TR_D) // ¥ +#define TR_OSTR ALGR(TR_H) // Ø +#define TR_PND ALGR(TR_P) // £ +#define TR_DIAE ALGR(TR_Q) // ¨ (dead) +#define TR_TILD ALGR(TR_W) // ~ (dead) +// Row 3 +#define TR_AE ALGR(TR_U) // Æ +#define TR_SS ALGR(TR_IDOT) // ß +#define TR_EURO ALGR(TR_E) // € +#define TR_LIRA ALGR(TR_T) // ₺ +#define TR_ACUT ALGR(TR_Y) // ´ (dead) +#define TR_GRV ALGR(TR_X) // ` (dead) +// Row 4 +#define TR_LDAQ ALGR(TR_J) // « +#define TR_RDAQ ALGR(TR_ODIA) // » +#define TR_CENT ALGR(TR_V) // ¢ +#define TR_MICR ALGR(TR_S) // µ +#define TR_MUL ALGR(TR_B) // × +#define TR_DIV ALGR(TR_DOT) // ÷ +#define TR_SHYP ALGR(TR_COMM) // (soft hyphen) + +/* Shift+AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │   │   │ ³ │ ¤ │   │   │   │   │   │   │ ¿ │   │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │ ® │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │ § │   │ ª │   │   │   │   │   │   │   │   │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ ¦ │   │   │ © │   │   │   │ º │   │   │   │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_SUP3 S(ALGR(TR_3)) // ³ +#define TR_CURR S(ALGR(TR_4)) // ¤ +#define TR_IQUE S(ALGR(TR_SLSH)) // ¿ +// Row 2 +#define TR_REGD S(ALGR(TR_I) // ® +// Row 3 +#define TR_SECT S(ALGR(TR_IDOT)) // § +#define TR_FORD S(ALGR(TR_A)) // ª +// Row 4 +#define TR_BRKP S(ALGR(TR_LABK)) // ¦ +#define TR_COPY S(ALGR(TR_V)) // © +#define TR_MORD S(ALGR(TR_S)) // º diff --git a/quantum/keymap_extras/keymap_turkish_q.h b/quantum/keymap_extras/keymap_turkish_q.h new file mode 100644 index 000000000..738718d2d --- /dev/null +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -0,0 +1,156 @@ +/* Copyright 2019 + * + * 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 + +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ " │ 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 │ Ö │ Ç │ . │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_DQUO KC_GRV // " +#define TR_1 KC_1 // 1 +#define TR_2 KC_2 // 2 +#define TR_3 KC_3 // 3 +#define TR_4 KC_4 // 4 +#define TR_5 KC_5 // 5 +#define TR_6 KC_6 // 6 +#define TR_7 KC_7 // 7 +#define TR_8 KC_8 // 8 +#define TR_9 KC_9 // 9 +#define TR_0 KC_0 // 0 +#define TR_ASTR KC_MINS // * +#define TR_MINS KC_EQL // - +// Row 2 +#define TR_Q KC_Q // Q +#define TR_W KC_W // W +#define TR_E KC_E // E +#define TR_R KC_R // R +#define TR_T KC_T // T +#define TR_Y KC_Y // Y +#define TR_U KC_U // U +#define TR_I KC_I // I +#define TR_O KC_O // O +#define TR_P KC_P // P +#define TR_GBRV KC_LBRC // Ğ +#define TR_UDIA KC_RBRC // Ü +// Row 3 +#define TR_A KC_A // A +#define TR_S KC_S // S +#define TR_D KC_D // D +#define TR_F KC_F // F +#define TR_G KC_G // G +#define TR_H KC_H // H +#define TR_J KC_J // J +#define TR_K KC_K // K +#define TR_L KC_L // L +#define TR_SCED KC_SCLN // Ş +#define TR_IDOT KC_QUOT // İ +#define TR_COMM KC_NUHS // , +// Row 4 +#define TR_LABK KC_NUBS // < +#define TR_Z KC_Z // Z +#define TR_X KC_X // X +#define TR_C KC_C // C +#define TR_V KC_V // V +#define TR_B KC_B // B +#define TR_N KC_N // N +#define TR_M KC_M // M +#define TR_ODIA KC_COMM // Ö +#define TR_CCED KC_DOT // Ç +#define TR_DOT KC_SLSH // . + +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ é │ ! │ ' │ ^ │ + │ % │ & │ / │ ( │ ) │ = │ ? │ _ │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │ ; │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ > │   │   │   │   │   │   │   │   │   │ : │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_EACU S(TR_DQUO) // é +#define TR_EXLM S(TR_1) // ! +#define TR_QUOT S(TR_2) // ' +#define TR_CIRC S(TR_3) // ^ (dead) +#define TR_PLUS S(TR_4) // + +#define TR_PERC S(TR_5) // % +#define TR_AMPR S(TR_6) // & +#define TR_SLSH S(TR_7) // / +#define TR_LPRN S(TR_8) // ( +#define TR_RPRN S(TR_9) // ) +#define TR_EQL S(TR_0) // = +#define TR_QUES S(TR_ASTR) // ? +#define TR_UNDS S(TR_MINS) // _ +// Row 3 +#define TR_SCLN S(TR_COMM) // ; +// Row 4 +#define TR_RABK S(TR_LABK) // > +#define TR_COLN S(TR_DOT) // : + +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │   │ £ │ # │ $ │ ½ │   │ { │ [ │ ] │ } │ \ │ | │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ @ │   │ € │   │ ₺ │   │   │   │   │   │ ¨ │ ~ │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ Æ │ ß │   │   │   │   │   │   │   │ ´ │   │ ` │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │   │   │   │   │   │   │   │   │   │   │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define TR_PND ALGR(TR_2) // £ +#define TR_HASH ALGR(TR_3) // # +#define TR_DLR ALGR(TR_4) // $ +#define TR_HALF ALGR(TR_5) // ½ +#define TR_LCBR ALGR(TR_7) // { +#define TR_LBRC ALGR(TR_8) // [ +#define TR_RBRC ALGR(TR_9) // ] +#define TR_RCBR ALGR(TR_0) // } +#define TR_BSLS ALGR(TR_ASTR) // (backslash) +#define TR_PIPE ALGR(TR_MINS) // | +// Row 2 +#define TR_AT ALGR(TR_Q) // @ +#define TR_EURO ALGR(TR_E) // € +#define TR_LIRA ALGR(TR_T) // ₺ +#define TR_DIAE ALGR(TR_GBRV) // ¨ (dead) +#define TR_TILD ALGR(TR_UDIA) // ~ (dead) +// Row 3 +#define TR_AE ALGR(TR_A) // Æ +#define TR_SS ALGR(TR_S) // ß +#define TR_ACUT ALGR(TR_SCED) // ´ (dead) +#define TR_GRV ALGR(TR_COMM) // ` (dead) diff --git a/quantum/keymap_extras/sendstring_turkish_f.h b/quantum/keymap_extras/sendstring_turkish_f.h new file mode 100644 index 000000000..82dbbdbcb --- /dev/null +++ b/quantum/keymap_extras/sendstring_turkish_f.h @@ -0,0 +1,99 @@ +/* Copyright 2019 + * + * 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 Turkish F layouts + +#pragma once + +#include "keymap_turkish_f.h" + +// clang-format off + +const bool ascii_to_shift_lut[128] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const bool ascii_to_altgr_lut[128] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 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, TR_1, TR_2, TR_3, TR_4, TR_5, TR_6, TR_7, + // ( ) * + , - . / + TR_8, TR_9, TR_PLUS, TR_PLUS, TR_COMM, TR_MINS, TR_DOT, TR_SLSH, + // 0 1 2 3 4 5 6 7 + TR_0, TR_1, TR_2, TR_3, TR_4, TR_5, TR_6, TR_7, + // 8 9 : ; < = > ? + TR_8, TR_9, TR_DOT, TR_COMM, TR_LABK, TR_0, TR_LABK, TR_SLSH, + // @ A B C D E F G + TR_F, TR_A, TR_B, TR_C, TR_D, TR_E, TR_F, TR_G, + // H I J K L M N O + TR_H, TR_I, TR_J, TR_K, TR_L, TR_M, TR_N, TR_O, + // P Q R S T U V W + TR_P, TR_Q, TR_R, TR_S, TR_T, TR_U, TR_V, TR_W, + // X Y Z [ \ ] ^ _ + TR_X, TR_Y, TR_Z, TR_8, TR_SLSH, TR_9, TR_3, TR_MINS, + // ` a b c d e f g + TR_X, TR_A, TR_B, TR_C, TR_D, TR_E, TR_F, TR_G, + // h i j k l m n o + TR_H, TR_I, TR_J, TR_K, TR_L, TR_M, TR_N, TR_O, + // p q r s t u v w + TR_P, TR_Q, TR_R, TR_S, TR_T, TR_U, TR_V, TR_W, + // x y z { | } ~ DEL + TR_X, TR_Y, TR_Z, TR_7, TR_MINS, TR_0, TR_W, KC_DEL +}; diff --git a/quantum/keymap_extras/sendstring_turkish_q.h b/quantum/keymap_extras/sendstring_turkish_q.h new file mode 100644 index 000000000..58505b849 --- /dev/null +++ b/quantum/keymap_extras/sendstring_turkish_q.h @@ -0,0 +1,99 @@ +/* Copyright 2019 + * + * 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 Turkish Q layouts + +#pragma once + +#include "keymap_turkish_q.h" + +// clang-format off + +const bool ascii_to_shift_lut[128] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 1, 0, 0, 0, 1, 1, 1, + 1, 1, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0 +}; + +const bool ascii_to_altgr_lut[128] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 1, 1, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 1, 1, 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, TR_1, TR_DQUO, TR_3, TR_4, TR_5, TR_6, TR_2, + // ( ) * + , - . / + TR_8, TR_9, TR_ASTR, TR_4, TR_COMM, TR_MINS, TR_DOT, TR_7, + // 0 1 2 3 4 5 6 7 + TR_0, TR_1, TR_2, TR_3, TR_4, TR_5, TR_6, TR_7, + // 8 9 : ; < = > ? + TR_8, TR_9, TR_DOT, TR_COMM, TR_LABK, TR_0, TR_LABK, TR_ASTR, + // @ A B C D E F G + TR_Q, TR_A, TR_B, TR_C, TR_D, TR_E, TR_F, TR_G, + // H I J K L M N O + TR_H, TR_I, TR_J, TR_K, TR_L, TR_M, TR_N, TR_O, + // P Q R S T U V W + TR_P, TR_Q, TR_R, TR_S, TR_T, TR_U, TR_V, TR_W, + // X Y Z [ \ ] ^ _ + TR_X, TR_Y, TR_Z, TR_8, TR_ASTR, TR_9, TR_3, TR_MINS, + // ` a b c d e f g + TR_COMM, TR_A, TR_B, TR_C, TR_D, TR_E, TR_F, TR_G, + // h i j k l m n o + TR_H, TR_I, TR_J, TR_K, TR_L, TR_M, TR_N, TR_O, + // p q r s t u v w + TR_P, TR_Q, TR_R, TR_S, TR_T, TR_U, TR_V, TR_W, + // x y z { | } ~ DEL + TR_X, TR_Y, TR_Z, TR_7, TR_MINS, TR_0, TR_UDIA, KC_DEL +};