aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--quantum/keymap_extras/keymap_fr_ch.h303
-rw-r--r--quantum/keymap_extras/keymap_german_ch.h245
-rw-r--r--quantum/keymap_extras/sendstring_fr_ch.h100
-rw-r--r--quantum/keymap_extras/sendstring_german_ch.h100
4 files changed, 571 insertions, 177 deletions
diff --git a/quantum/keymap_extras/keymap_fr_ch.h b/quantum/keymap_extras/keymap_fr_ch.h
index 8da5ae6aa..02ee22a12 100644
--- a/quantum/keymap_extras/keymap_fr_ch.h
+++ b/quantum/keymap_extras/keymap_fr_ch.h
@@ -13,97 +13,226 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#ifndef KEYMAP_FR_CH
17#define KEYMAP_FR_CH
18 16
19#include "keymap.h" 17#pragma once
20
21// normal characters
22#define FR_CH_Z KC_Y
23#define FR_CH_Y KC_Z
24
25#define FR_CH_A KC_A
26#define FR_CH_B KC_B
27#define FR_CH_C KC_C
28#define FR_CH_D KC_D
29#define FR_CH_E KC_E
30#define FR_CH_F KC_F
31#define FR_CH_G KC_G
32#define FR_CH_H KC_H
33#define FR_CH_I KC_I
34#define FR_CH_J KC_J
35#define FR_CH_K KC_K
36#define FR_CH_L KC_L
37#define FR_CH_M KC_M
38#define FR_CH_N KC_N
39#define FR_CH_O KC_O
40#define FR_CH_P KC_P
41#define FR_CH_Q KC_Q
42#define FR_CH_R KC_R
43#define FR_CH_S KC_S
44#define FR_CH_T KC_T
45#define FR_CH_U KC_U
46#define FR_CH_V KC_V
47#define FR_CH_W KC_W
48#define FR_CH_X KC_X
49
50#define FR_CH_0 KC_0
51#define FR_CH_1 KC_1
52#define FR_CH_2 KC_2
53#define FR_CH_3 KC_3
54#define FR_CH_4 KC_4
55#define FR_CH_5 KC_5
56#define FR_CH_6 KC_6
57#define FR_CH_7 KC_7
58#define FR_CH_8 KC_8
59#define FR_CH_9 KC_9
60 18
61#define FR_CH_DOT KC_DOT 19#include "keymap.h"
62#define FR_CH_COMM KC_COMM
63 20
64#define FR_CH_QUOT KC_MINS 21// clang-format off
65#define FR_CH_AE KC_QUOT
66#define FR_CH_UE KC_LBRC
67#define FR_CH_OE KC_SCLN
68 22
69#define FR_CH_CIRC KC_EQL // accent circumflex ^ and grave ` and ~ 23/*
70#define FR_CH_LESS KC_NUBS // < and > and backslash 24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
71#define FR_CH_MINS KC_SLSH // - and _ 25 * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ ^ │       │
72#define FR_CH_DLR KC_BSLS // $, £ and } 26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
73#define FR_CH_PARA KC_GRV // § and ring ° 27 * │     │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ è │ ¨ │     │
74#define FR_CH_DIAE KC_RBRC // accent ¨ 28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
29 * │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ é │ à │ $ │    │
30 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
31 * │    │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │          │
32 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
33 * │    │    │    │                        │    │    │    │    │
34 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
35 */
36// Row 1
37#define CH_SECT KC_GRV // §
38#define CH_1 KC_1 // 1
39#define CH_2 KC_2 // 2
40#define CH_3 KC_3 // 3
41#define CH_4 KC_4 // 4
42#define CH_5 KC_5 // 5
43#define CH_6 KC_6 // 6
44#define CH_7 KC_7 // 7
45#define CH_8 KC_8 // 8
46#define CH_9 KC_9 // 9
47#define CH_0 KC_0 // 0
48#define CH_QUOT KC_MINS // '
49#define CH_CIRC KC_EQL // ^ (dead)
50// Row 2
51#define CH_Q KC_Q // Q
52#define CH_W KC_W // W
53#define CH_E KC_E // E
54#define CH_R KC_R // R
55#define CH_T KC_T // T
56#define CH_Z KC_Y // Z
57#define CH_U KC_U // U
58#define CH_I KC_I // I
59#define CH_O KC_O // O
60#define CH_P KC_P // P
61#define CH_EGRV KC_LBRC // è
62#define CH_DIAE KC_RBRC // ¨ (dead)
63// Row 3
64#define CH_A KC_A // A
65#define CH_S KC_S // S
66#define CH_D KC_D // D
67#define CH_F KC_F // F
68#define CH_G KC_G // G
69#define CH_H KC_H // H
70#define CH_J KC_J // J
71#define CH_K KC_K // K
72#define CH_L KC_L // L
73#define CH_EACU KC_SCLN // é
74#define CH_AGRV KC_QUOT // à
75#define CH_DLR KC_NUHS // $
76// Row 4
77#define CH_LABK KC_NUBS // <
78#define CH_Y KC_Z // Y
79#define CH_X KC_X // X
80#define CH_C KC_C // C
81#define CH_V KC_V // V
82#define CH_B KC_B // B
83#define CH_N KC_N // N
84#define CH_M KC_M // M
85#define CH_COMM KC_COMM // ,
86#define CH_DOT KC_DOT // .
87#define CH_MINS KC_SLSH // -
75 88
76// shifted characters 89/* Shifted symbols
77#define FR_CH_RING LSFT(KC_GRV) // ° 90 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
78#define FR_CH_EXLM LSFT(KC_RBRC) // ! 91 * │ ° │ + │ " │ * │ ç │ % │ & │ / │ ( │ ) │ = │ ? │ ` │       │
79#define FR_CH_PLUS LSFT(KC_1) // + 92 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
80#define FR_CH_DQOT LSFT(KC_2) // " 93 * │     │   │   │   │   │   │   │   │   │   │   │ ü │ ! │     │
81#define FR_CH_ASTR LSFT(KC_3) // * 94 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
82#define FR_CH_PERC LSFT(KC_5) // % 95 * │      │   │   │   │   │   │   │   │   │   │ ö │ ä │ £ │    │
83#define FR_CH_AMPR LSFT(KC_6) // & 96 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
84#define FR_CH_SLSH LSFT(KC_7) // / 97 * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │          │
85#define FR_CH_LPRN LSFT(KC_8) // ( 98 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
86#define FR_CH_RPRN LSFT(KC_9) // ) 99 * │    │    │    │                        │    │    │    │    │
87#define FR_CH_EQL LSFT(KC_0) // = 100 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
88#define FR_CH_QST LSFT(FR_CH_QUOT) // ? 101 */
89#define FR_CH_MORE LSFT(FR_CH_LESS) // > 102// Row 1
90#define FR_CH_COLN LSFT(KC_DOT) // : 103#define CH_DEG S(CH_SECT) // °
91#define FR_CH_SCLN LSFT(KC_COMM) // ; 104#define CH_PLUS S(CH_1) // +
92#define FR_CH_UNDS LSFT(FR_CH_MINS) // _ 105#define CH_DQUO S(CH_2) // "
93#define FR_CH_CCED LSFT(KC_4) // ç 106#define CH_ASTR S(CH_3) // *
94#define FR_CH_GRV LSFT(FR_CH_CIRC) // accent grave ` 107#define CH_CCED S(CH_4) // ç
108#define CH_PERC S(CH_5) // %
109#define CH_AMPR S(CH_6) // &
110#define CH_SLSH S(CH_7) // /
111#define CH_LPRN S(CH_8) // (
112#define CH_RPRN S(CH_9) // )
113#define CH_EQL S(CH_0) // =
114#define CH_QUES S(CH_QUOT) // ?
115#define CH_GRV S(CH_CIRC) // ` (dead)
116// Row 2
117#define CH_UDIA S(CH_EGRV) // ü
118#define CH_EXLM S(CH_DIAE) // !
119// Row 3
120#define CH_ODIA S(CH_EACU) // ö
121#define CH_ADIA S(CH_AGRV) // ä
122#define CH_PND S(CH_DLR) // £
123// Row 4
124#define CH_RABK S(CH_LABK) // >
125#define CH_SCLN S(CH_COMM) // ;
126#define CH_COLN S(CH_DOT) // :
127#define CH_UNDS S(CH_MINS) // _
95 128
96// Alt Gr-ed characters 129/* AltGr symbols
97#define FR_CH_LCBR ALGR(KC_QUOT) // { 130 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
98#define FR_CH_LBRC ALGR(KC_LBRC) // [ 131 * │   │ ¦ │ @ │ # │   │   │ ¬ │ | │ ¢ │   │   │ ´ │ ~ │       │
99#define FR_CH_RBRC ALGR(KC_9) // ] 132 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
100#define FR_CH_RCBR ALGR(KC_0) // } 133 * │     │   │   │ € │   │   │   │   │   │   │   │ [ │ ] │     │
101#define FR_CH_BSLS ALGR(FR_CH_LESS) // backslash 134 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
102#define FR_CH_AT ALGR(KC_2) // @ 135 * │      │   │   │   │   │   │   │   │   │   │   │ { │ } │    │
103#define FR_CH_EURO ALGR(KC_E) // € 136 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
104#define FR_CH_TILD ALGR(FR_CH_CIRC) // ~ 137 * │    │ \ │   │   │   │   │   │   │   │   │   │   │          │
105#define FR_CH_PIPE ALGR(KC_1) // | 138 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
106#define FR_CH_HASH ALGR(KC_3) // # 139 * │    │    │    │                        │    │    │    │    │
107#define FR_CH_ACUT ALGR(FR_CH_QUOT) // accent acute ´ 140 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
141 */
142// Row 1
143#define CH_BRKP ALGR(CH_1) // ¦
144#define CH_AT ALGR(CH_2) // @
145#define CH_HASH ALGR(CH_3) // #
146#define CH_NOT ALGR(CH_6) // ¬
147#define CH_PIPE ALGR(CH_7) // |
148#define CH_CENT ALGR(CH_8) // ¢
149#define CH_ACUT ALGR(CH_QUOT) // ´ (dead)
150#define CH_TILD ALGR(CH_CIRC) // ~ (dead)
151// Row 2
152#define CH_EURO ALGR(CH_E) // €
153#define CH_LBRC ALGR(CH_EGRV) // [
154#define CH_RBRC ALGR(CH_DIAE) // ]
155// Row 3
156#define CH_LCBR ALGR(CH_AGRV) // {
157#define CH_RCBR ALGR(CH_DLR) // }
158// Row 4
159#define CH_BSLS ALGR(CH_LABK) // (backslash)
108 160
109#endif 161// DEPRECATED
162#define FR_CH_Z CH_Z
163#define FR_CH_Y CH_Y
164#define FR_CH_A CH_A
165#define FR_CH_B CH_B
166#define FR_CH_C CH_C
167#define FR_CH_D CH_D
168#define FR_CH_E CH_E
169#define FR_CH_F CH_F
170#define FR_CH_G CH_G
171#define FR_CH_H CH_H
172#define FR_CH_I CH_I
173#define FR_CH_J CH_J
174#define FR_CH_K CH_K
175#define FR_CH_L CH_L
176#define FR_CH_M CH_M
177#define FR_CH_N CH_N
178#define FR_CH_O CH_O
179#define FR_CH_P CH_P
180#define FR_CH_Q CH_Q
181#define FR_CH_R CH_R
182#define FR_CH_S CH_S
183#define FR_CH_T CH_T
184#define FR_CH_U CH_U
185#define FR_CH_V CH_V
186#define FR_CH_W CH_W
187#define FR_CH_X CH_X
188#define FR_CH_0 CH_0
189#define FR_CH_1 CH_1
190#define FR_CH_2 CH_2
191#define FR_CH_3 CH_3
192#define FR_CH_4 CH_4
193#define FR_CH_5 CH_5
194#define FR_CH_6 CH_6
195#define FR_CH_7 CH_7
196#define FR_CH_8 CH_8
197#define FR_CH_9 CH_9
198#define FR_CH_DOT CH_DOT
199#define FR_CH_COMM CH_COMM
200#define FR_CH_QUOT CH_QUOT
201#define FR_CH_AE CH_AGRV
202#define FR_CH_UE CH_EGRV
203#define FR_CH_OE CH_EACU
204#define FR_CH_CIRC CH_CIRC
205#define FR_CH_LESS CH_LABK
206#define FR_CH_MINS CH_MINS
207#define FR_CH_DLR CH_DLR
208#define FR_CH_PARA CH_SECT
209#define FR_CH_DIAE CH_DIAE
210#define FR_CH_RING CH_DEG
211#define FR_CH_EXLM CH_EXLM
212#define FR_CH_PLUS CH_PLUS
213#define FR_CH_DQOT CH_DQUO
214#define FR_CH_ASTR CH_ASTR
215#define FR_CH_PERC CH_PERC
216#define FR_CH_AMPR CH_AMPR
217#define FR_CH_SLSH CH_SLSH
218#define FR_CH_LPRN CH_LPRN
219#define FR_CH_RPRN CH_RPRN
220#define FR_CH_EQL CH_EQL
221#define FR_CH_QST CH_QUES
222#define FR_CH_MORE CH_RABK
223#define FR_CH_COLN CH_COLN
224#define FR_CH_SCLN CH_SCLN
225#define FR_CH_UNDS CH_UNDS
226#define FR_CH_CCED CH_CCED
227#define FR_CH_GRV CH_GRV
228#define FR_CH_LCBR CH_LCBR
229#define FR_CH_LBRC CH_LBRC
230#define FR_CH_RBRC CH_RBRC
231#define FR_CH_RCBR CH_RCBR
232#define FR_CH_BSLS CH_BSLS
233#define FR_CH_AT CH_AT
234#define FR_CH_EURO CH_EURO
235#define FR_CH_TILD CH_TILD
236#define FR_CH_PIPE CH_PIPE
237#define FR_CH_HASH CH_HASH
238#define FR_CH_ACUT CH_ACUT
diff --git a/quantum/keymap_extras/keymap_german_ch.h b/quantum/keymap_extras/keymap_german_ch.h
index 19b362758..07f4503a1 100644
--- a/quantum/keymap_extras/keymap_german_ch.h
+++ b/quantum/keymap_extras/keymap_german_ch.h
@@ -13,105 +13,170 @@
13 * You should have received a copy of the GNU General Public License 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/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16#ifndef KEYMAP_SWISS_GERMAN 16
17#define KEYMAP_SWISS_GERMAN 17#pragma once
18 18
19#include "keymap.h" 19#include "keymap.h"
20 20
21// normal characters 21// clang-format off
22#define CH_Z KC_Y
23#define CH_Y KC_Z
24 22
25#define CH_A KC_A
26#define CH_B KC_B
27#define CH_C KC_C
28#define CH_D KC_D
29#define CH_E KC_E
30#define CH_F KC_F
31#define CH_G KC_G
32#ifdef CH_H 23#ifdef CH_H
33// The ChibiOS ch.h file defines this... 24// The ChibiOS ch.h file defines this...
34# undef CH_H 25# undef CH_H
35#endif 26#endif
36#define CH_H KC_H
37#define CH_I KC_I
38#define CH_J KC_J
39#define CH_K KC_K
40#define CH_L KC_L
41#define CH_M KC_M
42#define CH_N KC_N
43#define CH_O KC_O
44#define CH_P KC_P
45#define CH_Q KC_Q
46#define CH_R KC_R
47#define CH_S KC_S
48#define CH_T KC_T
49#define CH_U KC_U
50#define CH_V KC_V
51#define CH_W KC_W
52#define CH_X KC_X
53
54#define CH_0 KC_0
55#define CH_1 KC_1
56#define CH_2 KC_2
57#define CH_3 KC_3
58#define CH_4 KC_4
59#define CH_5 KC_5
60#define CH_6 KC_6
61#define CH_7 KC_7
62#define CH_8 KC_8
63#define CH_9 KC_9
64
65#define CH_DOT KC_DOT
66#define CH_COMM KC_COMM
67
68#define CH_QUOT KC_MINS // ' ? ´
69#define CH_AE KC_QUOT
70#define CH_UE KC_LBRC
71#define CH_OE KC_SCLN
72 27
73#define CH_PARA KC_GRAVE // secction sign § and ° 28/*
74#define CH_CARR KC_EQL // carret ^ ` ~ 29 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
75#define CH_DIER KC_RBRC // dieresis ¨ ! ] 30 * │ § │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ' │ ^ │       │
76#define CH_DLR KC_BSLS // $ £ } 31 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
77#define CH_LESS KC_NUBS // < and > and backslash 32 * │     │ Q │ W │ E │ R │ T │ Z │ U │ I │ O │ P │ ü │ ¨ │     │
78#define CH_MINS KC_SLSH // - and _ 33 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
34 * │      │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ö │ ä │ $ │    │
35 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
36 * │    │ < │ Y │ X │ C │ V │ B │ N │ M │ , │ . │ - │          │
37 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
38 * │    │    │    │                        │    │    │    │    │
39 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
40 */
41// Row 1
42#define CH_SECT KC_GRV // §
43#define CH_1 KC_1 // 1
44#define CH_2 KC_2 // 2
45#define CH_3 KC_3 // 3
46#define CH_4 KC_4 // 4
47#define CH_5 KC_5 // 5
48#define CH_6 KC_6 // 6
49#define CH_7 KC_7 // 7
50#define CH_8 KC_8 // 8
51#define CH_9 KC_9 // 9
52#define CH_0 KC_0 // 0
53#define CH_QUOT KC_MINS // '
54#define CH_CIRC KC_EQL // ^ (dead)
55// Row 2
56#define CH_Q KC_Q // Q
57#define CH_W KC_W // W
58#define CH_E KC_E // E
59#define CH_R KC_R // R
60#define CH_T KC_T // T
61#define CH_Z KC_Y // Z
62#define CH_U KC_U // U
63#define CH_I KC_I // I
64#define CH_O KC_O // O
65#define CH_P KC_P // P
66#define CH_UDIA KC_LBRC // ü
67#define CH_DIAE KC_RBRC // ¨ (dead)
68// Row 3
69#define CH_A KC_A // A
70#define CH_S KC_S // S
71#define CH_D KC_D // D
72#define CH_F KC_F // F
73#define CH_G KC_G // G
74#define CH_H KC_H // H
75#define CH_J KC_J // J
76#define CH_K KC_K // K
77#define CH_L KC_L // L
78#define CH_ODIA KC_SCLN // ö
79#define CH_ADIA KC_QUOT // ä
80#define CH_DLR KC_NUHS // $
81// Row 4
82#define CH_LABK KC_NUBS // <
83#define CH_Y KC_Z // Y
84#define CH_X KC_X // X
85#define CH_C KC_C // C
86#define CH_V KC_V // V
87#define CH_B KC_B // B
88#define CH_N KC_N // N
89#define CH_M KC_M // M
90#define CH_COMM KC_COMM // ,
91#define CH_DOT KC_DOT // .
92#define CH_MINS KC_SLSH // -
79 93
80// shifted characters 94/* Shifted symbols
81#define CH_RING LSFT(CH_PARA) // ° 95 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
82#define CH_PLUS LSFT(KC_1) // + 96 * │ ° │ + │ " │ * │ ç │ % │ & │ / │ ( │ ) │ = │ ? │ ` │       │
83#define CH_DQOT LSFT(KC_2) // " 97 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
84#define CH_PAST LSFT(KC_3) // * 98 * │     │   │   │   │   │   │   │   │   │   │   │ è │ ! │     │
85#define CH_CELA LSFT(KC_4) // ç 99 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
86#define CH_PERC LSFT(KC_5) // % 100 * │      │   │   │   │   │   │   │   │   │   │ é │ à │ £ │    │
87#define CH_AMPR LSFT(KC_6) // & 101 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
88#define CH_SLSH LSFT(KC_7) // / 102 * │    │ > │   │   │   │   │   │   │   │ ; │ : │ _ │          │
89#define CH_LPRN LSFT(KC_8) // ( 103 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
90#define CH_RPRN LSFT(KC_9) // ) 104 * │    │    │    │                        │    │    │    │    │
91#define CH_EQL LSFT(KC_0) // = 105 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
92#define CH_QST LSFT(CH_QUOT) // ? 106 */
93#define CH_GRV LSFT(CH_CARR) // ` 107// Row 1
94#define CH_EXLM LSFT(CH_DIER) // ! 108#define CH_DEG S(CH_SECT) // °
95#define CH_POND LSFT(CH_DLR) // £ 109#define CH_PLUS S(CH_1) // +
96#define CH_MORE LSFT(CH_LESS) // > 110#define CH_DQUO S(CH_2) // "
97#define CH_COLN LSFT(KC_DOT) // : 111#define CH_ASTR S(CH_3) // *
98#define CH_SCLN LSFT(KC_COMM) // ; 112#define CH_CCED S(CH_4) // ç
99#define CH_UNDS LSFT(CH_MINS) // _ 113#define CH_PERC S(CH_5) // %
114#define CH_AMPR S(CH_6) // &
115#define CH_SLSH S(CH_7) // /
116#define CH_LPRN S(CH_8) // (
117#define CH_RPRN S(CH_9) // )
118#define CH_EQL S(CH_0) // =
119#define CH_QUES S(CH_QUOT) // ?
120#define CH_GRV S(CH_CIRC) // ` (dead)
121// Row 2
122#define CH_EGRV S(CH_UDIA) // è
123#define CH_EXLM S(CH_DIAE) // !
124// Row 3
125#define CH_EACU S(CH_ODIA) // é
126#define CH_AGRV S(CH_ADIA) // à
127#define CH_PND S(CH_DLR) // £
128// Row 4
129#define CH_RABK S(CH_LABK) // >
130#define CH_SCLN S(CH_COMM) // ;
131#define CH_COLN S(CH_DOT) // :
132#define CH_UNDS S(CH_MINS) // _
100 133
101// Alt Gr-ed characters 134/* AltGr symbols
102#define CH_BRBR ALGR(KC_1) // ¦ brocken bar 135 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
103#define CH_AT ALGR(KC_2) // @ 136 * │   │ ¦ │ @ │ # │   │   │ ¬ │ | │ ¢ │   │   │ ´ │ ~ │       │
104#define CH_HASH ALGR(KC_3) // # 137 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
105#define CH_NOTL ALGR(KC_6) // ¬ negative logic 138 * │     │   │   │ € │   │   │   │   │   │   │   │ [ │ ] │     │
106#define CH_PIPE ALGR(KC_7) // | 139 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
107#define CH_CENT ALGR(KC_8) // ¢ cent 140 * │      │   │   │   │   │   │   │   │   │   │   │ { │ } │    │
108#define CH_ACUT ALGR(CH_QUOT) // ´ 141 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
109#define CH_TILD ALGR(CH_CARR) // ~ 142 * │    │ \ │   │   │   │   │   │   │   │   │   │   │          │
110#define CH_EURO ALGR(KC_E) // € 143 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
111#define CH_LBRC ALGR(CH_UE) // [ 144 * │    │    │    │                        │    │    │    │    │
112#define CH_RBRC ALGR(CH_DIER) // ] 145 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
113#define CH_LCBR ALGR(CH_AE) // { 146 */
114#define CH_RCBR ALGR(CH_DLR) // } 147// Row 1
115#define CH_BSLS ALGR(CH_LESS) // backslash 148#define CH_BRKP ALGR(CH_1) // ¦
149#define CH_AT ALGR(CH_2) // @
150#define CH_HASH ALGR(CH_3) // #
151#define CH_NOT ALGR(CH_6) // ¬
152#define CH_PIPE ALGR(CH_7) // |
153#define CH_CENT ALGR(CH_8) // ¢
154#define CH_ACUT ALGR(CH_QUOT) // ´ (dead)
155#define CH_TILD ALGR(CH_CIRC) // ~ (dead)
156// Row 2
157#define CH_EURO ALGR(CH_E) // €
158#define CH_LBRC ALGR(CH_UDIA) // [
159#define CH_RBRC ALGR(CH_DIAE) // ]
160// Row 3
161#define CH_LCBR ALGR(CH_ADIA) // {
162#define CH_RCBR ALGR(CH_DLR) // }
163// Row 4
164#define CH_BSLS ALGR(CH_LABK) // (backslash)
116 165
117#endif 166// DEPRECATED
167#define CH_AE CH_ADIA
168#define CH_UE CH_UDIA
169#define CH_OE CH_ODIA
170#define CH_PARA CH_SECT
171#define CH_CARR CH_CIRC
172#define CH_DIER CH_DIAE
173#define CH_LESS CH_LABK
174#define CH_RING CH_DEG
175#define CH_DQOT CH_DQUO
176#define CH_PAST CH_ASTR
177#define CH_CELA CH_CCED
178#define CH_QST CH_QUES
179#define CH_POND CH_PND
180#define CH_MORE CH_RABK
181#define CH_BRBR CH_BRKP
182#define CH_NOTL CH_NOT
diff --git a/quantum/keymap_extras/sendstring_fr_ch.h b/quantum/keymap_extras/sendstring_fr_ch.h
new file mode 100644
index 000000000..2acce5663
--- /dev/null
+++ b/quantum/keymap_extras/sendstring_fr_ch.h
@@ -0,0 +1,100 @@
1/* Copyright 2020
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 Swiss French layouts
18
19#pragma once
20
21#include "keymap_fr_ch.h"
22#include "quantum.h"
23
24// clang-format off
25
26const uint8_t ascii_to_shift_lut[16] PROGMEM = {
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 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
31
32 KCLUT_ENTRY(0, 1, 1, 0, 0, 1, 1, 0),
33 KCLUT_ENTRY(1, 1, 1, 1, 0, 0, 0, 1),
34 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
35 KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1),
36 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
37 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
38 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
39 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 1),
40 KCLUT_ENTRY(1, 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, 0, 0, 0, 0),
43 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
44};
45
46const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
47 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
48 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
49 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
50 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
51
52 KCLUT_ENTRY(0, 0, 0, 1, 0, 0, 0, 0),
53 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
54 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
55 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
56 KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
57 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
58 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
59 KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0),
60 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
61 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
62 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
63 KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
64};
65
66const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
67 // NUL SOH STX ETX EOT ENQ ACK BEL
68 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
69 // BS TAB LF VT FF CR SO SI
70 KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
71 // DLE DC1 DC2 DC3 DC4 NAK SYN ETB
72 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
73 // CAN EM SUB ESC FS GS RS US
74 XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
75
76 // ! " # $ % & '
77 KC_SPC, CH_DIAE, CH_2, CH_3, CH_DLR, CH_5, CH_6, CH_QUOT,
78 // ( ) * + , - . /
79 CH_8, CH_9, CH_3, CH_0, CH_COMM, CH_MINS, CH_DOT, CH_7,
80 // 0 1 2 3 4 5 6 7
81 CH_0, CH_1, CH_2, CH_3, CH_4, CH_5, CH_6, CH_7,
82 // 8 9 : ; < = > ?
83 CH_8, CH_9, CH_DOT, CH_COMM, CH_LABK, CH_0, CH_LABK, CH_QUOT,
84 // @ A B C D E F G
85 CH_2, CH_A, CH_B, CH_C, CH_D, CH_E, CH_F, CH_G,
86 // H I J K L M N O
87 CH_H, CH_I, CH_J, CH_K, CH_L, CH_M, CH_N, CH_O,
88 // P Q R S T U V W
89 CH_P, CH_Q, CH_R, CH_S, CH_T, CH_U, CH_V, CH_W,
90 // X Y Z [ \ ] ^ _
91 CH_X, CH_Y, CH_Z, CH_EGRV, CH_LABK, CH_DIAE, CH_CIRC, CH_MINS,
92 // ` a b c d e f g
93 CH_CIRC, CH_A, CH_B, CH_C, CH_D, CH_E, CH_F, CH_G,
94 // h i j k l m n o
95 CH_H, CH_I, CH_J, CH_K, CH_L, CH_M, CH_N, CH_O,
96 // p q r s t u v w
97 CH_P, CH_Q, CH_R, CH_S, CH_T, CH_U, CH_V, CH_W,
98 // x y z { | } ~ DEL
99 CH_X, CH_Y, CH_Z, CH_AGRV, CH_7, CH_DLR, CH_CIRC, KC_DEL
100};
diff --git a/quantum/keymap_extras/sendstring_german_ch.h b/quantum/keymap_extras/sendstring_german_ch.h
new file mode 100644
index 000000000..1e1327c51
--- /dev/null
+++ b/quantum/keymap_extras/sendstring_german_ch.h
@@ -0,0 +1,100 @@
1/* Copyright 2020
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 Swiss German layouts
18
19#pragma once
20
21#include "keymap_german_ch.h"
22#include "quantum.h"
23
24// clang-format off
25
26const uint8_t ascii_to_shift_lut[16] PROGMEM = {
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 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
31
32 KCLUT_ENTRY(0, 1, 1, 0, 0, 1, 1, 0),
33 KCLUT_ENTRY(1, 1, 1, 1, 0, 0, 0, 1),
34 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
35 KCLUT_ENTRY(0, 0, 1, 1, 0, 1, 1, 1),
36 KCLUT_ENTRY(0, 1, 1, 1, 1, 1, 1, 1),
37 KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
38 KCLUT_ENTRY(1, 1, 1, 1, 1, 1, 1, 1),
39 KCLUT_ENTRY(1, 1, 1, 0, 0, 0, 0, 1),
40 KCLUT_ENTRY(1, 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, 0, 0, 0, 0),
43 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0)
44};
45
46const uint8_t ascii_to_altgr_lut[16] PROGMEM = {
47 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
48 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
49 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
50 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
51
52 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
53 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
54 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
55 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
56 KCLUT_ENTRY(1, 0, 0, 0, 0, 0, 0, 0),
57 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
58 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
59 KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 0, 0),
60 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
61 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
62 KCLUT_ENTRY(0, 0, 0, 0, 0, 0, 0, 0),
63 KCLUT_ENTRY(0, 0, 0, 1, 1, 1, 1, 0)
64};
65
66const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
67 // NUL SOH STX ETX EOT ENQ ACK BEL
68 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
69 // BS TAB LF VT FF CR SO SI
70 KC_BSPC, KC_TAB, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
71 // DLE DC1 DC2 DC3 DC4 NAK SYN ETB
72 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
73 // CAN EM SUB ESC FS GS RS US
74 XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
75
76 // ! " # $ % & '
77 KC_SPC, CH_DIAE, CH_2, CH_3, CH_DLR, CH_5, CH_6, CH_QUOT,
78 // ( ) * + , - . /
79 CH_8, CH_9, CH_3, CH_1, CH_COMM, CH_MINS, CH_DOT, CH_7,
80 // 0 1 2 3 4 5 6 7
81 CH_0, CH_1, CH_2, CH_3, CH_4, CH_5, CH_6, CH_7,
82 // 8 9 : ; < = > ?
83 CH_8, CH_9, CH_DOT, CH_COMM, CH_LABK, CH_0, CH_LABK, CH_QUOT,
84 // @ A B C D E F G
85 CH_2, CH_A, CH_B, CH_C, CH_D, CH_E, CH_F, CH_G,
86 // H I J K L M N O
87 CH_H, CH_I, CH_J, CH_K, CH_L, CH_M, CH_N, CH_O,
88 // P Q R S T U V W
89 CH_P, CH_Q, CH_R, CH_S, CH_T, CH_U, CH_V, CH_W,
90 // X Y Z [ \ ] ^ _
91 CH_X, CH_Y, CH_Z, CH_UDIA, CH_LABK, CH_DIAE, CH_CIRC, CH_MINS,
92 // ` a b c d e f g
93 CH_CIRC, CH_A, CH_B, CH_C, CH_D, CH_E, CH_F, CH_G,
94 // h i j k l m n o
95 CH_H, CH_I, CH_J, CH_K, CH_L, CH_M, CH_N, CH_O,
96 // p q r s t u v w
97 CH_P, CH_Q, CH_R, CH_S, CH_T, CH_U, CH_V, CH_W,
98 // x y z { | } ~ DEL
99 CH_X, CH_Y, CH_Z, CH_ADIA, CH_7, CH_DLR, CH_CIRC, KC_DEL
100};