diff options
| author | Guillaume Gérard <1322081+GreatWizard@users.noreply.github.com> | 2020-06-25 07:52:40 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-24 22:52:40 -0700 |
| commit | 9b85bd68a45026fb796806342b47ac0176ab6510 (patch) | |
| tree | 959be61add3234e6974a0a676f237ecbe66622f1 /quantum/keymap_extras | |
| parent | ce91b36c5dd75a7e09700a2362adeb04021582c4 (diff) | |
| download | qmk_firmware-9b85bd68a45026fb796806342b47ac0176ab6510.tar.gz qmk_firmware-9b85bd68a45026fb796806342b47ac0176ab6510.zip | |
feat: add dvorak-fr as extra keymap (#9512)
Diffstat (limited to 'quantum/keymap_extras')
| -rw-r--r-- | quantum/keymap_extras/keymap_dvorak_fr.h | 135 | ||||
| -rw-r--r-- | quantum/keymap_extras/sendstring_dvorak_fr.h | 80 |
2 files changed, 215 insertions, 0 deletions
diff --git a/quantum/keymap_extras/keymap_dvorak_fr.h b/quantum/keymap_extras/keymap_dvorak_fr.h new file mode 100644 index 000000000..7bb5893d3 --- /dev/null +++ b/quantum/keymap_extras/keymap_dvorak_fr.h | |||
| @@ -0,0 +1,135 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | /* Dvorak for the French language | ||
| 18 | * Version: 2 | ||
| 19 | * | ||
| 20 | * The layout is designed by Francis Leboutte <dvorak-fr@algo.be> | ||
| 21 | * | ||
| 22 | * Source: https://algo.be/ergo/dvorak-fr.html | ||
| 23 | */ | ||
| 24 | |||
| 25 | #pragma once | ||
| 26 | |||
| 27 | #include "keymap.h" | ||
| 28 | |||
| 29 | // clang-format off | ||
| 30 | |||
| 31 | /* | ||
| 32 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ | ||
| 33 | * │ « │ » │ / │ - │ è │ \ │ ^ │ ( │ ` │ ) │ _ │ [ │ ] │ │ | ||
| 34 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ | ||
| 35 | * │ │ : │ ' │ é │ G │ . │ H │ V │ C │ M │ K │ Z │ ¨ │ │ | ||
| 36 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ | ||
| 37 | * │ │ O │ A │ U │ E │ B │ F │ S │ T │ N │ D │ W │ ~ │ │ | ||
| 38 | * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ | ||
| 39 | * │ │ à │ ; │ Q │ , │ I │ Y │ X │ R │ L │ P │ J │ │ | ||
| 40 | * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ | ||
| 41 | * │ │ │ │ │ │ │ │ │ | ||
| 42 | * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ | ||
| 43 | */ | ||
| 44 | // Row 1 | ||
| 45 | #define DV_LDAQ KC_GRV // « | ||
| 46 | #define DV_RDAQ KC_1 // » | ||
| 47 | #define DV_SLSH KC_2 // / | ||
| 48 | #define DV_MINS KC_3 // - | ||
| 49 | #define DV_EGRV KC_4 // è | ||
| 50 | #define DV_BSLS KC_5 // (backslash) | ||
| 51 | #define DV_CIRC KC_6 // ^ (dead) | ||
| 52 | #define DV_LPRN KC_7 // ( | ||
| 53 | #define DV_GRV KC_8 // ` (dead) | ||
| 54 | #define DV_RPRN KC_9 // ) | ||
| 55 | #define DV_UNDS KC_0 // _ | ||
| 56 | #define DV_LBRC KC_MINS // [ | ||
| 57 | #define DV_RBRC KC_EQL // ] | ||
| 58 | // Row 2 | ||
| 59 | #define DV_COLN KC_Q // : | ||
| 60 | #define DV_QUOT KC_W // ' | ||
| 61 | #define DV_EACU KC_E // é | ||
| 62 | #define DV_G KC_R // G | ||
| 63 | #define DV_DOT KC_T // . | ||
| 64 | #define DV_H KC_Y // H | ||
| 65 | #define DV_V KC_U // V | ||
| 66 | #define DV_C KC_I // C | ||
| 67 | #define DV_M KC_O // M | ||
| 68 | #define DV_K KC_P // K | ||
| 69 | #define DV_Z KC_LBRC // Z | ||
| 70 | #define DV_DIAE KC_RBRC // ¨ (dead) | ||
| 71 | // Row 3 | ||
| 72 | #define DV_O KC_A // O | ||
| 73 | #define DV_A KC_S // A | ||
| 74 | #define DV_U KC_D // U | ||
| 75 | #define DV_E KC_F // E | ||
| 76 | #define DV_B KC_G // B | ||
| 77 | #define DV_F KC_H // F | ||
| 78 | #define DV_S KC_J // S | ||
| 79 | #define DV_T KC_K // T | ||
| 80 | #define DV_N KC_L // N | ||
| 81 | #define DV_D KC_SCLN // D | ||
| 82 | #define DV_W KC_QUOT // W | ||
| 83 | #define DV_TILD KC_NUHS // ~ (dead) | ||
| 84 | // Row 4 | ||
| 85 | #define DV_AGRV KC_NUBS // à | ||
| 86 | #define DV_SCLN KC_Z // ; | ||
| 87 | #define DV_Q KC_X // Q | ||
| 88 | #define DV_COMM KC_C // , | ||
| 89 | #define DV_I KC_V // I | ||
| 90 | #define DV_Y KC_B // Y | ||
| 91 | #define DV_X KC_N // X | ||
| 92 | #define DV_R KC_M // R | ||
| 93 | #define DV_L KC_COMM // L | ||
| 94 | #define DV_P KC_DOT // P | ||
| 95 | #define DV_J KC_SLSH // J | ||
| 96 | |||
| 97 | /* Shifted symbols | ||
| 98 | * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ | ||
| 99 | * │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 0 │ 0 │ + │ % │ │ | ||
| 100 | * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ | ||
| 101 | * │ │ ? │ < │ > │ │ ! │ │ │ │ │ │ │ = │ │ | ||
| 102 | * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ | ||
| 103 | * │ │ │ │ │ │ │ │ │ │ │ │ │ # │ │ | ||
| 104 | * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ | ||
| 105 | * │ │ ç │ | │ │ @ │ │ │ │ │ │ │ │ │ | ||
| 106 | * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ | ||
| 107 | * │ │ │ │ │ │ │ │ │ | ||
| 108 | * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ | ||
| 109 | */ | ||
| 110 | // Row 1 | ||
| 111 | #define DV_ASTR S(DV_LDAQ) // * | ||
| 112 | #define DV_1 S(DV_RDAQ) // 1 | ||
| 113 | #define DV_2 S(DV_SLSH) // 2 | ||
| 114 | #define DV_3 S(DV_MINS) // 3 | ||
| 115 | #define DV_4 S(DV_EGRV) // 4 | ||
| 116 | #define DV_5 S(DV_BSLS) // 5 | ||
| 117 | #define DV_6 S(DV_CIRC) // 6 | ||
| 118 | #define DV_7 S(DV_LPRN) // 7 | ||
| 119 | #define DV_8 S(DV_GRV) // 8 | ||
| 120 | #define DV_9 S(DV_RPRN) // 9 | ||
| 121 | #define DV_0 S(DV_UNDS) // 0 | ||
| 122 | #define DV_PLUS S(DV_LBRC) // + | ||
| 123 | #define DV_PERC S(DV_RBRC) // % | ||
| 124 | // Row 2 | ||
| 125 | #define DV_QUES S(DV_COLN) // ? | ||
| 126 | #define DV_LABK S(DV_QUOT) // < | ||
| 127 | #define DV_RABK S(DV_EACU) // > | ||
| 128 | #define DV_EXLM S(DV_DOT) // ! | ||
| 129 | #define DV_EQL S(DV_DIAE) // = | ||
| 130 | // Row 3 | ||
| 131 | #define DV_HASH S(DV_TILD) // # | ||
| 132 | // Row 4 | ||
| 133 | #define DV_CCED S(DV_AGRV) // ç | ||
| 134 | #define DV_PIPE S(DV_SCLN) // | | ||
| 135 | #define DV_AT S(DV_COMM) // @ | ||
diff --git a/quantum/keymap_extras/sendstring_dvorak_fr.h b/quantum/keymap_extras/sendstring_dvorak_fr.h new file mode 100644 index 000000000..98d0577af --- /dev/null +++ b/quantum/keymap_extras/sendstring_dvorak_fr.h | |||
| @@ -0,0 +1,80 @@ | |||
| 1 | /* Copyright 2020 Guillaume Gérard | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | |||
| 17 | // Sendstring lookup tables for Dvorak French layouts | ||
| 18 | |||
| 19 | #pragma once | ||
| 20 | |||
| 21 | #include "keymap_dvorak_fr.h" | ||
| 22 | |||
| 23 | // clang-format off | ||
| 24 | |||
| 25 | const uint8_t ascii_to_shift_lut[16] PROGMEM = { | ||
| 26 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 27 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 28 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 29 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 30 | |||
| 31 | KCLUT_ENTRY(0, 1, 0, 1, 0, 1, 0, 0), | ||
| 32 | KCLUT_ENTRY(0, 0, 1, 1, 0, 0, 0, 0), | ||
| 33 | KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), | ||
| 34 | KCLUT_ENTRY(1, 1, 0, 0, 1, 1, 1, 1), | ||
| 35 | KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), | ||
| 36 | KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), | ||
| 37 | KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1), | ||
| 38 | KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 0), | ||
| 39 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 40 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 41 | KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0), | ||
| 42 | KCLUT_ENTRY(0, 0, 0, 0, 1, 0, 0, 0), | ||
| 43 | }; | ||
| 44 | |||
| 45 | |||
| 46 | const uint8_t ascii_to_keycode_lut[128] PROGMEM = { | ||
| 47 | // NUL SOH STX ETX EOT ENQ ACK BEL | ||
| 48 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 49 | // BS TAB LF VT FF CR SO SI | ||
| 50 | KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 51 | // DLE DC1 DC2 DC3 DC4 NAK SYN ETB | ||
| 52 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 53 | // CAN EM SUB ESC FS GS RS US | ||
| 54 | XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 55 | |||
| 56 | // ! " # $ % & ' | ||
| 57 | KC_SPC, DV_DOT, XXXXXXX, DV_TILD, XXXXXXX, DV_RBRC, XXXXXXX, DV_QUOT, | ||
| 58 | // ( ) * + , - . / | ||
| 59 | DV_LPRN, DV_RPRN, DV_LDAQ, DV_LBRC, DV_COMM, DV_MINS, DV_DOT, DV_SLSH, | ||
| 60 | // 0 1 2 3 4 5 6 7 | ||
| 61 | DV_UNDS, DV_RDAQ, DV_SLSH, DV_MINS, DV_EGRV, DV_BSLS, DV_CIRC, DV_LPRN, | ||
| 62 | // 8 9 : ; < = > ? | ||
| 63 | DV_GRV, DV_RPRN, DV_COLN, DV_SCLN, DV_QUOT, DV_DIAE, DV_EACU, DV_COLN, | ||
| 64 | // @ A B C D E F G | ||
| 65 | DV_COMM, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
| 66 | // H I J K L M N O | ||
| 67 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
| 68 | // P Q R S T U V W | ||
| 69 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
| 70 | // X Y Z [ \ ] ^ _ | ||
| 71 | DV_X, DV_Y, DV_Z, DV_LBRC, DV_BSLS, DV_RBRC, DV_CIRC, DV_UNDS, | ||
| 72 | // ` a b c d e f g | ||
| 73 | DV_GRV, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, DV_G, | ||
| 74 | // h i j k l m n o | ||
| 75 | DV_H, DV_I, DV_J, DV_K, DV_L, DV_M, DV_N, DV_O, | ||
| 76 | // p q r s t u v w | ||
| 77 | DV_P, DV_Q, DV_R, DV_S, DV_T, DV_U, DV_V, DV_W, | ||
| 78 | // x y z { | } ~ DEL | ||
| 79 | DV_X, DV_Y, DV_Z, XXXXXXX, DV_SCLN, XXXXXXX, DV_TILD, KC_DEL | ||
| 80 | }; | ||
