From 49a2fbea0c4e0a9847c17c2e7c86133a5fa0d77a Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 16 Mar 2020 07:40:54 +1100 Subject: [PATCH] Update Slovenian keymap and add sendstring LUT (#8350) --- quantum/keymap_extras/keymap_slovenian.h | 232 ++++++++++++------- quantum/keymap_extras/sendstring_slovenian.h | 100 ++++++++ 2 files changed, 248 insertions(+), 84 deletions(-) create mode 100644 quantum/keymap_extras/sendstring_slovenian.h diff --git a/quantum/keymap_extras/keymap_slovenian.h b/quantum/keymap_extras/keymap_slovenian.h index 7a8b7bec3..c479cc07b 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,5 +1,4 @@ /* Copyright 2018 Žan Pevec - * * 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 @@ -15,93 +14,158 @@ * along with this program. If not, see . */ -#ifndef KEYMAP_SLOVENIAN -#define KEYMAP_SLOVENIAN +#pragma once #include "keymap.h" -// Swapped Z and Y -#define SI_Z KC_Y -#define SI_Y KC_Z +// clang-format off -// Special characters -#define SI_CV KC_SCLN -#define SI_SV KC_LBRC -#define SI_ZV KC_BSLS +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ¸ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ + │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ Š │ Đ │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Č │ Ć │ Ž │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define SI_CEDL KC_GRV // ¸ (dead) +#define SI_1 KC_1 // 1 +#define SI_2 KC_2 // 2 +#define SI_3 KC_3 // 3 +#define SI_4 KC_4 // 4 +#define SI_5 KC_5 // 5 +#define SI_6 KC_6 // 6 +#define SI_7 KC_7 // 7 +#define SI_8 KC_8 // 8 +#define SI_9 KC_9 // 9 +#define SI_0 KC_0 // 0 +#define SI_QUOT KC_MINS // ' +#define SI_PLUS KC_EQL // + +// Row 2 +#define SI_Q KC_Q // Q +#define SI_W KC_W // W +#define SI_E KC_E // E +#define SI_R KC_R // R +#define SI_T KC_T // T +#define SI_Z KC_Y // Z +#define SI_U KC_U // U +#define SI_I KC_I // I +#define SI_O KC_O // O +#define SI_P KC_P // P +#define SI_SCAR KC_LBRC // Š +#define SI_DSTR KC_RBRC // Đ +// Row 3 +#define SI_A KC_A // A +#define SI_S KC_S // S +#define SI_D KC_D // D +#define SI_F KC_F // F +#define SI_G KC_G // G +#define SI_H KC_H // H +#define SI_J KC_J // J +#define SI_K KC_K // K +#define SI_L KC_L // L +#define SI_CCAR KC_SCLN // Č +#define SI_CACU KC_QUOT // Ć +#define SI_ZCAR KC_NUHS // Ž +// Row 4 +#define SI_LABK KC_NUBS // < +#define SI_Y KC_Z // Y +#define SI_X KC_X // X +#define SI_C KC_C // C +#define SI_V KC_V // V +#define SI_B KC_B // B +#define SI_N KC_N // N +#define SI_M KC_M // M +#define SI_COMM KC_COMM // , +#define SI_DOT KC_DOT // . +#define SI_MINS KC_SLSH // - -#define SI_A KC_A -#define SI_B KC_B -#define SI_C KC_C -#define SI_D KC_D -#define SI_E KC_E -#define SI_F KC_F -#define SI_G KC_G -#define SI_H KC_H -#define SI_I KC_I -#define SI_J KC_J -#define SI_K KC_K -#define SI_L KC_L -#define SI_M KC_M -#define SI_N KC_N -#define SI_O KC_O -#define SI_P KC_P -#define SI_Q KC_Q -#define SI_R KC_R -#define SI_S KC_S -#define SI_T KC_T -#define SI_U KC_U -#define SI_V KC_V -#define SI_W KC_W -#define SI_X KC_X +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ¨ │ ! │ " │ # │ $ │ % │ & │ / │ ( │ ) │ = │ ? │ * │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │   │   │   │   │   │   │   │   │   │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define SI_DIAE S(SI_CEDL) // ¨ (dead) +#define SI_EXLM S(SI_1) // ! +#define SI_DQUO S(SI_2) // " +#define SI_HASH S(SI_3) // # +#define SI_DLR S(SI_4) // $ +#define SI_PERC S(SI_5) // % +#define SI_AMPR S(SI_6) // & +#define SI_SLSH S(SI_7) // / +#define SI_LPRN S(SI_8) // ( +#define SI_RPRN S(SI_9) // ) +#define SI_EQL S(SI_0) // = +#define SI_QUES S(SI_QUOT) // ? +#define SI_ASTR S(SI_PLUS) // * +// Row 4 +#define SI_RABK S(SI_LABK) // > +#define SI_SCLN S(SI_COMM) // ; +#define SI_COLN S(SI_DOT) // : +#define SI_UNDS S(SI_MINS) // _ -#define SI_0 KC_0 -#define SI_1 KC_1 -#define SI_2 KC_2 -#define SI_3 KC_3 -#define SI_4 KC_4 -#define SI_5 KC_5 -#define SI_6 KC_6 -#define SI_7 KC_7 -#define SI_8 KC_8 -#define SI_9 KC_9 +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │   │ ~ │ ˇ │ ^ │ ˘ │ ° │ ˛ │ ` │ ˙ │ ´ │ ˝ │   │   │       │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │     │ \ │ | │ € │   │   │   │   │   │   │   │ ÷ │ × │     │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │ + * │      │   │   │   │ [ │ ] │   │   │ ł │ Ł │   │ ß │ ¤ │    │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ + * │    │   │   │   │   │ @ │ { │ } │ § │   │   │   │          │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │    │    │    │                        │    │    │    │    │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ +// Row 1 +#define SI_TILD ALGR(SI_1) // ~ +#define SI_CARN ALGR(SI_2) // ˇ (dead) +#define SI_CIRC ALGR(SI_3) // ^ (dead) +#define SI_BREV ALGR(SI_4) // ˘ (dead) +#define SI_DEG ALGR(SI_5) // ° (dead) +#define SI_OGON ALGR(SI_6) // ˛ (dead) +#define SI_GRV ALGR(SI_7) // ` +#define SI_DOTA ALGR(SI_8) // ˙ (dead) +#define SI_ACCU ALGR(SI_9) // ´ (dead) +#define SI_DACU ALGR(SI_0) // ˝ (dead) +// Row 2 +#define SI_BSLS ALGR(SI_Q) // (backslash) +#define SI_PIPE ALGR(SI_W) // | +#define SI_EURO ALGR(SI_E) // € +#define SI_DIV ALGR(SI_SCAR) // ÷ +#define SI_MUL ALGR(SI_DSTR) // × +// Row 3 +#define SI_LBRC ALGR(SI_F) // [ +#define SI_RBRC ALGR(SI_G) // ] +#define SI_LLST ALGR(SI_K) // ł +#define SI_CLST ALGR(SI_L) // Ł +#define SI_SS ALGR(SI_CACU) // ß +#define SI_CURR ALGR(SI_ZCAR) // ¤ +// Row 4 +#define SI_AT ALGR(SI_V) // @ +#define SI_LCBR ALGR(SI_B) // { +#define SI_RCBR ALGR(SI_N) // } +#define SI_SECT ALGR(SI_M) // § -#define SI_DOT KC_DOT -#define SI_COMM KC_COMM - -#define SI_PLUS KC_EQL // + and * and ~ -#define SI_QOT KC_MINS // Single quote -#define SI_MINS KC_SLSH // - and _ - -// shifted characters -#define SI_EXLM LSFT(KC_1) // ! -#define SI_DQOT LSFT(KC_2) // " -#define SI_HASH LSFT(KC_3) // # -#define SI_DLR LSFT(KC_4) // $ -#define SI_PERC LSFT(KC_5) // % -#define SI_AMPR LSFT(KC_6) // & -#define SI_SLSH LSFT(KC_7) // / -#define SI_LPRN LSFT(KC_8) // ( -#define SI_RPRN LSFT(KC_9) // ) -#define SI_EQL LSFT(KC_0) // = -#define SI_QST LSFT(SI_QOT) // ? -#define SI_ASTR LSFT(SI_PLUS) // * -#define SI_COLN LSFT(KC_DOT) // : -#define SI_SCLN LSFT(KC_COMM) // ; -#define SI_UNDS LSFT(SI_MINS) // _ - -// Alt Gr-ed characters -#define SI_CIRC ALGR(KC_3) // ^ -#define SI_DEG ALGR(KC_5) // ° -#define SI_GRV ALGR(KC_7) // ` -#define SI_ACCU ALGR(KC_9) // ´ -#define SI_LCBR ALGR(KC_B) // { -#define SI_RCBR ALGR(KC_N) // } -#define SI_LBRC ALGR(KC_F) // [ -#define SI_RBRC ALGR(KC_G) // ] -#define SI_BSLS ALGR(KC_Q) // backslash -#define SI_AT ALGR(KC_V) // @ -#define SI_EURO ALGR(KC_E) // € -#define SI_TILD ALGR(KC_1) // ~ -#define SI_PIPE ALGR(KC_W) // | - -#endif +// DEPRECATED +#define SI_QOT SI_QUOT +#define SI_SV SI_SCAR +#define SI_CV SI_CCAR +#define SI_ZV SI_ZCAR +#define SI_DQOT SI_DQUO +#define SI_QST SI_QUES diff --git a/quantum/keymap_extras/sendstring_slovenian.h b/quantum/keymap_extras/sendstring_slovenian.h new file mode 100644 index 000000000..adf7ea47d --- /dev/null +++ b/quantum/keymap_extras/sendstring_slovenian.h @@ -0,0 +1,100 @@ +/* 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 Slovenian layouts + +#pragma once + +#include "keymap_slovenian.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, 1, 1, 1, 1, 0), + KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1), + KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), + KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 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, 0, 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, 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, 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, SI_1, SI_2, SI_3, SI_4, SI_5, SI_6, SI_QUOT, + // ( ) * + , - . / + SI_8, SI_9, SI_PLUS, SI_PLUS, SI_COMM, SI_MINS, SI_DOT, SI_7, + // 0 1 2 3 4 5 6 7 + SI_0, SI_1, SI_2, SI_3, SI_4, SI_5, SI_6, SI_7, + // 8 9 : ; < = > ? + SI_8, SI_9, SI_DOT, SI_COMM, SI_LABK, SI_0, SI_LABK, SI_QUOT, + // @ A B C D E F G + SI_V, SI_A, SI_B, SI_C, SI_D, SI_E, SI_F, SI_G, + // H I J K L M N O + SI_H, SI_I, SI_J, SI_K, SI_L, SI_M, SI_N, SI_O, + // P Q R S T U V W + SI_P, SI_Q, SI_R, SI_S, SI_T, SI_U, SI_V, SI_W, + // X Y Z [ \ ] ^ _ + SI_X, SI_Y, SI_Z, SI_F, SI_Q, SI_G, SI_3, SI_MINS, + // ` a b c d e f g + SI_7, SI_A, SI_B, SI_C, SI_D, SI_E, SI_F, SI_G, + // h i j k l m n o + SI_H, SI_I, SI_J, SI_K, SI_L, SI_M, SI_N, SI_O, + // p q r s t u v w + SI_P, SI_Q, SI_R, SI_S, SI_T, SI_U, SI_V, SI_W, + // x y z { | } ~ DEL + SI_X, SI_Y, SI_Z, SI_B, SI_W, SI_N, SI_1, KC_DEL +};