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 | |
parent | ce91b36c5dd75a7e09700a2362adeb04021582c4 (diff) | |
download | qmk_firmware-9b85bd68a45026fb796806342b47ac0176ab6510.tar.gz qmk_firmware-9b85bd68a45026fb796806342b47ac0176ab6510.zip |
feat: add dvorak-fr as extra keymap (#9512)
-rw-r--r-- | docs/reference_keymap_extras.md | 1 | ||||
-rw-r--r-- | quantum/keymap_extras/keymap_dvorak_fr.h | 135 | ||||
-rw-r--r-- | quantum/keymap_extras/sendstring_dvorak_fr.h | 80 |
3 files changed, 216 insertions, 0 deletions
diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index 44b056af6..a7026a099 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md | |||
@@ -64,6 +64,7 @@ There are also a few which are not quite language-specific, but useful if you ar | |||
64 | |-------------------|------------------------| | 64 | |-------------------|------------------------| |
65 | |Colemak |`keymap_colemak.h` | | 65 | |Colemak |`keymap_colemak.h` | |
66 | |Dvorak |`keymap_dvorak.h` | | 66 | |Dvorak |`keymap_dvorak.h` | |
67 | |Dvorak (French) |`keymap_dvorak_fr.h` | | ||
67 | |Dvorak (Programmer)|`keymap_dvp.h` | | 68 | |Dvorak (Programmer)|`keymap_dvp.h` | |
68 | |Norman |`keymap_norman.h` | | 69 | |Norman |`keymap_norman.h` | |
69 | |Plover* |`keymap_plover.h` | | 70 | |Plover* |`keymap_plover.h` | |
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 | }; | ||