aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2020-04-07 20:50:10 +1000
committerfauxpark <fauxpark@gmail.com>2020-04-07 20:50:10 +1000
commit0499f30f59237bbd7c4f204daa9843974d84a639 (patch)
tree243695df8f135629a4f27fe38a5cac6a56b1996f /quantum/keymap_extras
parentf4b67cde8ae24fdaac70071f793f5c8d0010d959 (diff)
downloadqmk_firmware-0499f30f59237bbd7c4f204daa9843974d84a639.tar.gz
qmk_firmware-0499f30f59237bbd7c4f204daa9843974d84a639.zip
Update BÉPO keymap and sendstring LUT
Diffstat (limited to 'quantum/keymap_extras')
-rw-r--r--quantum/keymap_extras/keymap_bepo.h676
-rw-r--r--quantum/keymap_extras/sendstring_bepo.h6
2 files changed, 384 insertions, 298 deletions
diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h
index 718baaa68..d0bb5a5ef 100644
--- a/quantum/keymap_extras/keymap_bepo.h
+++ b/quantum/keymap_extras/keymap_bepo.h
@@ -1,4 +1,4 @@
1/* Copyright 2016 Didier Loiseau 1/* Copyright 2020
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 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 4 * it under the terms of the GNU General Public License as published by
@@ -13,305 +13,391 @@
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/* Keymap macros for the French BÉPO layout - http://bepo.fr */
17#ifndef KEYMAP_BEPO_H
18#define KEYMAP_BEPO_H
19 16
20#include "keymap.h" 17#pragma once
21
22// Normal characters
23// First row (on usual keyboards)
24#define BP_DOLLAR KC_GRAVE // $
25#define BP_DLR BP_DOLLAR
26#define BP_DOUBLE_QUOTE KC_1 // "
27#define BP_DQOT BP_DOUBLE_QUOTE
28#define BP_LEFT_GUILLEMET KC_2 // «
29#define BP_LGIL BP_LEFT_GUILLEMET
30#define BP_RIGHT_GUILLEMET KC_3 // »
31#define BP_RGIL BP_RIGHT_GUILLEMET
32#define BP_LEFT_PAREN KC_4 // (
33#define BP_LPRN BP_LEFT_PAREN
34#define BP_RIGHT_PAREN KC_5 // )
35#define BP_RPRN BP_RIGHT_PAREN
36#define BP_AT KC_6 // @
37#define BP_PLUS KC_7 // +
38#define BP_MINUS KC_8 // -
39#define BP_MINS BP_MINUS
40#define BP_SLASH KC_9 // /
41#define BP_SLSH BP_SLASH
42#define BP_ASTERISK KC_0 // *
43#define BP_ASTR BP_ASTERISK
44#define BP_EQUAL KC_MINUS // =
45#define BP_EQL BP_EQUAL
46#define BP_PERCENT KC_EQUAL // %
47#define BP_PERC BP_PERCENT
48
49// Second row
50#define BP_B KC_Q
51#define BP_E_ACUTE KC_W // é
52#define BP_ECUT BP_E_ACUTE
53#define BP_P KC_E
54#define BP_O KC_R
55#define BP_E_GRAVE KC_T // è
56#define BP_EGRV BP_E_GRAVE
57#define BP_DEAD_CIRCUMFLEX KC_Y // dead ^
58#define BP_DCRC BP_DEAD_CIRCUMFLEX
59#define BP_V KC_U
60#define BP_D KC_I
61#define BP_L KC_O
62#define BP_J KC_P
63#define BP_Z KC_LBRACKET
64#define BP_W KC_RBRACKET
65
66// Third row
67#define BP_A KC_A
68#define BP_U KC_S
69#define BP_I KC_D
70#define BP_E KC_F
71#define BP_COMMA KC_G // ,
72#define BP_COMM BP_COMMA
73#define BP_C KC_H
74#define BP_T KC_J
75#define BP_S KC_K
76#define BP_R KC_L
77#define BP_N KC_SCOLON
78#define BP_M KC_QUOTE
79#define BP_C_CEDILLA KC_BSLASH // ç
80#define BP_CCED BP_C_CEDILLA
81
82// Fourth row
83#define BP_E_CIRCUMFLEX KC_NONUS_BSLASH // ê
84#define BP_ECRC BP_E_CIRCUMFLEX
85#define BP_A_GRAVE KC_Z // à
86#define BP_AGRV BP_A_GRAVE
87#define BP_Y KC_X
88#define BP_X KC_C
89#define BP_DOT KC_V // .
90#define BP_K KC_B
91#define BP_APOSTROPHE KC_N
92#define BP_APOS BP_APOSTROPHE // '
93#define BP_Q KC_M
94#define BP_G KC_COMMA
95#define BP_H KC_DOT
96#define BP_F KC_SLASH
97
98// Shifted characters
99// First row
100#define BP_HASH LSFT(BP_DOLLAR) // #
101#define BP_1 LSFT(KC_1)
102#define BP_2 LSFT(KC_2)
103#define BP_3 LSFT(KC_3)
104#define BP_4 LSFT(KC_4)
105#define BP_5 LSFT(KC_5)
106#define BP_6 LSFT(KC_6)
107#define BP_7 LSFT(KC_7)
108#define BP_8 LSFT(KC_8)
109#define BP_9 LSFT(KC_9)
110#define BP_0 LSFT(KC_0)
111#define BP_DEGREE LSFT(BP_EQUAL) // °
112#define BP_DEGR BP_DEGREE
113#define BP_GRAVE LSFT(BP_PERCENT) // `
114#define BP_GRV BP_GRAVE
115
116// Second row
117#define BP_EXCLAIM LSFT(BP_DEAD_CIRCUMFLEX) // !
118#define BP_EXLM BP_EXCLAIM
119
120// Third row
121#define BP_SCOLON LSFT(BP_COMMA) // ;
122#define BP_SCLN BP_SCOLON
123
124// Fourth row
125#define BP_COLON LSFT(BP_DOT) // :
126#define BP_COLN BP_COLON
127#define BP_QUESTION LSFT(BP_APOS) // ?
128#define BP_QEST BP_QUESTION
129
130// Space bar
131#define BP_NON_BREAKING_SPACE LSFT(KC_SPACE)
132#define BP_NBSP BP_NON_BREAKING_SPACE
133 18
134// AltGr-ed characters 19#include "keymap.h"
135// First row
136#define BP_EN_DASH ALGR(BP_DOLLAR) // –
137#define BP_NDSH BP_EN_DASH
138#define BP_EM_DASH ALGR(KC_1) // —
139#define BP_MDSH BP_EM_DASH
140#define BP_LESS ALGR(KC_2) // <
141#define BP_GREATER ALGR(KC_3) // >
142#define BP_GRTR BP_GREATER
143#define BP_LBRACKET ALGR(KC_4) // [
144#define BP_LBRC BP_LBRACKET
145#define BP_RBRACKET ALGR(KC_5) // ]
146#define BP_RBRC BP_RBRACKET
147#define BP_CIRCUMFLEX ALGR(KC_6) // ^
148#define BP_CIRC BP_CIRCUMFLEX
149#define BP_PLUS_MINUS ALGR(KC_7) // ±
150#define BP_PSMS BP_PLUS_MINUS
151#define BP_MATH_MINUS ALGR(KC_8) // −
152#define BP_MMNS BP_MATH_MINUS
153#define BP_OBELUS ALGR(KC_9) // ÷
154#define BP_OBEL BP_OBELUS
155// more conventional name of the symbol
156#define BP_DIVISION_SIGN BP_OBELUS
157#define BP_DVSN BP_DIVISION_SIGN
158#define BP_TIMES ALGR(KC_0) // ×
159#define BP_TIMS BP_TIMES
160#define BP_DIFFERENT ALGR(BP_EQUAL) // ≠
161#define BP_DIFF BP_DIFFERENT
162#define BP_PERMILLE ALGR(BP_PERCENT) // ‰
163#define BP_PMIL BP_PERMILLE
164
165// Second row
166#define BP_PIPE ALGR(BP_B) // |
167#define BP_DEAD_ACUTE ALGR(BP_E_ACUTE) // dead ´
168#define BP_DACT BP_DEAD_ACUTE
169#define BP_AMPERSAND ALGR(BP_P) // &
170#define BP_AMPR BP_AMPERSAND
171#define BP_OE_LIGATURE ALGR(BP_O) // œ
172#define BP_OE BP_OE_LIGATURE
173#define BP_DEAD_GRAVE ALGR(BP_E_GRAVE) // `
174#define BP_DGRV BP_DEAD_GRAVE
175#define BP_INVERTED_EXCLAIM ALGR(BP_DEAD_CIRCUMFLEX) // ¡
176#define BP_IXLM BP_INVERTED_EXCLAIM
177#define BP_DEAD_CARON ALGR(BP_V) // dead ˇ
178#define BP_DCAR BP_DEAD_CARON
179#define BP_ETH ALGR(BP_D) // ð
180#define BP_DEAD_SLASH ALGR(BP_L) // dead /
181#define BP_DSLH BP_DEAD_SLASH
182#define BP_IJ_LIGATURE ALGR(BP_J) // ij
183#define BP_IJ BP_IJ_LIGATURE
184#define BP_SCHWA ALGR(BP_Z) // ə
185#define BP_SCWA BP_SCHWA
186#define BP_DEAD_BREVE ALGR(BP_W) // dead ˘
187#define BP_DBRV BP_DEAD_BREVE
188
189// Third row
190#define BP_AE_LIGATURE ALGR(BP_A) // æ
191#define BP_AE BP_AE_LIGATURE
192#define BP_U_GRAVE ALGR(BP_U) // ù
193#define BP_UGRV BP_U_GRAVE
194#define BP_DEAD_TREMA ALGR(BP_I) // dead ¨ (trema/umlaut/diaresis)
195#define BP_DTRM BP_DEAD_TREMA
196#define BP_EURO ALGR(BP_E) // €
197#define BP_TYPOGRAPHICAL_APOSTROPHE ALGR(BP_COMMA) // ’
198#define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE
199#define BP_COPYRIGHT ALGR(BP_C) // ©
200#define BP_CPRT BP_COPYRIGHT
201#define BP_THORN ALGR(BP_T) // þ
202#define BP_THRN BP_THORN
203#define BP_SHARP_S ALGR(BP_S) // ß
204#define BP_SRPS BP_SHARP_S
205#define BP_REGISTERED_TRADEMARK ALGR(BP_R) // ®
206#define BP_RTM BP_REGISTERED_TRADEMARK
207#define BP_DEAD_TILDE ALGR(BP_N) // dead ~
208#define BP_DTLD BP_DEAD_TILDE
209#define BP_DEAD_MACRON ALGR(BP_M) // dead ¯
210#define BP_DMCR BP_DEAD_MACRON
211#define BP_DEAD_CEDILLA ALGR(BP_C_CEDILLA) // dead ¸
212#define BP_DCED BP_DEAD_CEDILLA
213
214// Fourth row
215#define BP_NONUS_SLASH ALGR(BP_E_CIRCUMFLEX) // / on non-us backslash key (102nd key, ê in bépo)
216#define BP_NUSL BP_NONUS_SLASH
217#define BP_BACKSLASH ALGR(BP_A_GRAVE) /* \ */
218#define BP_BSLS BP_BACKSLASH
219#define BP_LEFT_CURLY_BRACE ALGR(BP_Y) // {
220#define BP_LCBR BP_LEFT_CURLY_BRACE
221#define BP_RIGHT_CURLY_BRACE ALGR(BP_X) // }
222#define BP_RCBR BP_RIGHT_CURLY_BRACE
223#define BP_ELLIPSIS ALGR(BP_DOT) // …
224#define BP_ELPS BP_ELLIPSIS
225#define BP_TILDE ALGR(BP_K) // ~
226#define BP_TILD BP_TILDE
227#define BP_INVERTED_QUESTION ALGR(BP_QUESTION) // ¿
228#define BP_IQST BP_INVERTED_QUESTION
229#define BP_DEAD_RING ALGR(BP_Q) // dead °
230#define BP_DRNG BP_DEAD_RING
231#define BP_DEAD_GREEK ALGR(BP_G) // dead Greek key (following key will make a Greek letter)
232#define BP_DGRK BP_DEAD_GREEK
233#define BP_DAGGER ALGR(BP_H) // †
234#define BP_DAGR BP_DAGGER
235#define BP_DEAD_OGONEK ALGR(BP_F) // dead ˛
236#define BP_DOGO BP_DEAD_OGONEK
237
238// Space bar
239#define BP_UNDERSCORE ALGR(KC_SPACE) // _
240#define BP_UNDS BP_UNDERSCORE
241 20
242// AltGr-Shifted characters (different from capitalised AltGr-ed characters) 21// clang-format off
243// First row
244#define BP_PARAGRAPH ALGR(BP_HASH) // ¶
245#define BP_PARG BP_PARAGRAPH
246#define BP_LOW_DOUBLE_QUOTE ALGR(BP_1) // „
247#define BP_LWQT BP_LOW_DOUBLE_QUOTE
248#define BP_LEFT_DOUBLE_QUOTE ALGR(BP_2) // “
249#define BP_LDQT BP_LEFT_DOUBLE_QUOTE
250#define BP_RIGHT_DOUBLE_QUOTE ALGR(BP_3) // ”
251#define BP_RDQT BP_RIGHT_DOUBLE_QUOTE
252#define BP_LESS_OR_EQUAL ALGR(BP_4) // ≤
253#define BP_LEQL BP_LESS_OR_EQUAL
254#define BP_GREATER_OR_EQUAL ALGR(BP_5) // ≥
255#define BP_GEQL BP_GREATER_OR_EQUAL
256// nothing on ALGR(BP_6)
257#define BP_NEGATION ALGR(BP_7) // ¬
258#define BP_NEGT BP_NEGATION
259#define BP_ONE_QUARTER ALGR(BP_8) // ¼
260#define BP_1QRT BP_ONE_QUARTER
261#define BP_ONE_HALF ALGR(BP_9) // ½
262#define BP_1HLF BP_ONE_HALF
263#define BP_THREE_QUARTERS ALGR(BP_0) // ¾
264#define BP_3QRT BP_THREE_QUARTERS
265#define BP_MINUTES ALGR(BP_DEGREE) // ′
266#define BP_MNUT BP_MINUTES
267#define BP_SECONDS ALGR(BP_GRAVE) // ″
268#define BP_SCND BP_SECONDS
269 22
270// Second row 23/*
271#define BP_BROKEN_PIPE LSFT(BP_PIPE) // ¦ 24 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
272#define BP_BPIP BP_BROKEN_PIPE 25 * │ $ │ " │ « │ » │ ( │ ) │ @ │ + │ - │ / │ * │ = │ % │       │
273#define BP_DEAD_DOUBLE_ACUTE LSFT(BP_DEAD_ACUTE) // ˝ 26 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
274#define BP_DDCT BP_DEAD_DOUBLE_ACUTE 27 * │     │ B │ É │ P │ O │ È │ ^ │ V │ D │ L │ J │ Z │ W │     │
275#define BP_SECTION ALGR(LSFT(BP_P)) // § 28 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
276#define BP_SECT BP_SECTION 29 * │      │ A │ U │ I │ E │ , │ C │ T │ S │ R │ N │ M │ Ç │    │
277// LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT) 30 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
278#define BP_GRAVE_BIS LSFT(BP_DEAD_GRAVE) // ` 31 * │    │ Ê │ À │ Y │ X │ . │ K │ ' │ Q │ G │ H │ F │          │
279#define BP_GRVB BP_GRAVE_BIS 32 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
33 * │    │    │    │                        │    │    │    │    │
34 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
35 */
36// Row 1
37#define BP_DLR KC_GRV // $
38#define BP_DQUO KC_1 // "
39#define BP_LGIL KC_2 // «
40#define BP_RGIL KC_3 // »
41#define BP_LPRN KC_4 // (
42#define BP_RPRN KC_5 // )
43#define BP_AT KC_6 // @
44#define BP_PLUS KC_7 // +
45#define BP_MINS KC_8 // -
46#define BP_SLSH KC_9 // /
47#define BP_ASTR KC_0 // *
48#define BP_EQL KC_MINS // =
49#define BP_PERC KC_EQL // %
50// Row 2
51#define BP_B KC_Q // B
52#define BP_EACU KC_W // É
53#define BP_P KC_E // P
54#define BP_O KC_R // O
55#define BP_EGRV KC_T // È
56#define BP_DCIR KC_Y // ^ (dead)
57#define BP_V KC_U // V
58#define BP_D KC_I // D
59#define BP_L KC_O // L
60#define BP_J KC_P // J
61#define BP_Z KC_LBRC // Z
62#define BP_W KC_RBRC // W
63// Row 3
64#define BP_A KC_A // A
65#define BP_U KC_S // U
66#define BP_I KC_D // I
67#define BP_E KC_F // E
68#define BP_COMM KC_G // ,
69#define BP_C KC_H // C
70#define BP_T KC_J // T
71#define BP_S KC_K // S
72#define BP_R KC_L // R
73#define BP_N KC_SCLN // N
74#define BP_M KC_QUOT // M
75#define BP_CCED KC_BSLS // Ç
76// Row 4
77#define BP_ECIR KC_NUBS // Ê
78#define BP_AGRV KC_Z // À
79#define BP_Y KC_X // Y
80#define BP_X KC_C // X
81#define BP_DOT KC_V // .
82#define BP_K KC_B // K
83#define BP_QUOT KC_N // '
84#define BP_Q KC_M // Q
85#define BP_G KC_COMM // G
86#define BP_H KC_DOT // H
87#define BP_F KC_SLSH // F
280 88
281// Third row 89/* Shifted symbols
282#define BP_DEAD_DOT_ABOVE LSFT(BP_DEAD_TREMA) // dead ˙ 90 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
283#define BP_DDTA BP_DEAD_DOT_ABOVE 91 * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ ` │       │
284#define BP_DEAD_CURRENCY LSFT(BP_EURO) // dead ¤ (next key will generate a currency code like ¥ or £) 92 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
285#define BP_DCUR BP_DEAD_CURRENCY 93 * │     │   │   │   │   │   │ ! │   │   │   │   │   │   │     │
286#define BP_DEAD_HORN LSFT(ALGR(BP_COMMA)) // dead ̛ 94 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
287#define BP_DHRN BP_DEAD_HORN 95 * │      │   │   │   │   │ ; │   │   │   │   │   │   │   │    │
288#define BP_LONG_S LSFT(ALGR(BP_C)) // ſ 96 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
289#define BP_LNGS BP_LONG_S 97 * │    │   │   │   │   │ : │   │ ? │   │   │   │   │          │
290#define BP_TRADEMARK LSFT(BP_REGISTERED_TRADEMARK) // ™ 98 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
291#define BP_TM BP_TRADEMARK 99 * │    │    │    │                        │    │    │    │    │
292#define BP_ORDINAL_INDICATOR_O LSFT(ALGR(BP_M)) // º 100 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
293#define BP_ORDO BP_ORDINAL_INDICATOR_O 101 */
294#define BP_DEAD_COMMA LSFT(BP_DEAD_CEDILLA) // dead ˛ 102// Row 1
295#define BP_DCOM BP_DEAD_COMMA 103#define BP_HASH S(BP_DLR) // #
104#define BP_1 S(BP_DQUO) // 1
105#define BP_2 S(BP_LGIL) // 2
106#define BP_3 S(BP_RGIL) // 3
107#define BP_4 S(BP_LPRN) // 4
108#define BP_5 S(BP_RPRN) // 5
109#define BP_6 S(BP_AT) // 6
110#define BP_7 S(BP_PLUS) // 7
111#define BP_8 S(BP_MINS) // 8
112#define BP_9 S(BP_SLSH) // 9
113#define BP_0 S(BP_ASTR) // 0
114#define BP_DEG S(BP_EQL) // °
115#define BP_GRV S(BP_PERC) // `
116// Row 2
117#define BP_EXLM S(BP_DCIR) // !
118// Row 3
119#define BP_SCLN S(BP_COMM) // ;
120// Row 4
121#define BP_COLN S(BP_DOT) // :
122#define BP_QUES S(BP_QUOT) // ?
123// Row 5
124#define BP_NBSP S(KC_SPC) // (non-breaking space)
296 125
297// Fourth row 126/* AltGr symbols
298#define BP_LEFT_QUOTE LSFT(ALGR(BP_Y)) // ‘ 127 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
299#define BP_LQOT BP_LEFT_QUOTE 128 * │ – │ — │ < │ > │ [ │ ] │ ^ │ ± │ − │ ÷ │ × │ ≠ │ ‰ │       │
300#define BP_RIGHT_QUOTE LSFT(ALGR(BP_X)) // ’ 129 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
301#define BP_RQOT BP_RIGHT_QUOTE 130 * │     │ | │ ´ │ & │ Œ │ ` │ ¡ │ ˇ │ Ð │ / │ IJ │ Ə │ ˘ │     │
302#define BP_INTERPUNCT LSFT(ALGR(BP_DOT)) // · 131 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
303#define BP_IPCT BP_INTERPUNCT 132 * │      │ Æ │ Ù │ ¨ │ € │   │ © │ Þ │ ẞ │ ® │ ~ │ ¯ │ ¸ │    │
304#define BP_DEAD_HOOK_ABOVE LSFT(ALGR(BP_QUESTION)) // dead ̉ 133 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
305#define BP_DHKA BP_DEAD_HOOK_ABOVE 134 * │    │   │ \ │ { │ } │ … │ ~ │ ¿ │ ° │   │ † │ ˛ │          │
306#define BP_DEAD_UNDERDOT LSFT(BP_DEAD_RING) // dead ̣ 135 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
307#define BP_DUDT BP_DEAD_UNDERDOT 136 * │    │    │    │           _            │    │    │    │    │
308#define BP_DOUBLE_DAGGER LSFT(BP_DAGGER) // ‡ 137 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
309#define BP_DDGR BP_DOUBLE_DAGGER 138 */
310#define BP_ORDINAL_INDICATOR_A LSFT(ALGR(BP_F)) // ª 139// Row 1
311#define BP_ORDA BP_ORDINAL_INDICATOR_A 140#define BP_NDSH ALGR(BP_DLR) // –
141#define BP_MDSH ALGR(BP_DQUO) // —
142#define BP_LABK ALGR(BP_LGIL) // <
143#define BP_RABK ALGR(BP_RGIL) // >
144#define BP_LBRC ALGR(BP_LPRN) // [
145#define BP_RBRC ALGR(BP_RPRN) // ]
146#define BP_CIRC ALGR(BP_AT) // ^
147#define BP_PLMN ALGR(BP_PLUS) // ±
148#define BP_MMNS ALGR(BP_MINS) // −
149#define BP_DIV ALGR(BP_SLSH) // ÷
150#define BP_MUL ALGR(BP_ASTR) // ×
151#define BP_NEQL ALGR(BP_EQL) // ≠
152#define BP_PERM ALGR(BP_PERC) // ‰
153// Row 2
154#define BP_PIPE ALGR(BP_B) // |
155#define BP_ACUT ALGR(BP_EACU) // ´ (dead)
156#define BP_AMPR ALGR(BP_P) // &
157#define BP_OE ALGR(BP_O) // Œ
158#define BP_DGRV ALGR(BP_EGRV) // ` (dead)
159#define BP_IEXL ALGR(BP_DCIR) // ¡
160#define BP_CARN ALGR(BP_V) // ˇ (dead)
161#define BP_ETH ALGR(BP_D) // Ð
162#define BP_DSLS ALGR(BP_L) // / (dead)
163#define BP_IJ ALGR(BP_J) // IJ
164#define BP_SCHW ALGR(BP_Z) // Ə
165#define BP_BREV ALGR(BP_W) // ˘ (dead)
166// Row 3
167#define BP_AE ALGR(BP_A) // Æ
168#define BP_UGRV ALGR(BP_U) // Ù
169#define BP_DIAE ALGR(BP_I) // ¨ (dead)
170#define BP_EURO ALGR(BP_E) // €
171#define BP_COPY ALGR(BP_C) // ©
172#define BP_THRN ALGR(BP_T) // Þ
173#define BP_SS ALGR(BP_S) // ẞ
174#define BP_REGD ALGR(BP_R) // ®
175#define BP_DTIL ALGR(BP_N) // ~ (dead)
176#define BP_MACR ALGR(BP_M) // ¯ (dead)
177#define BP_CEDL ALGR(BP_CCED) // ¸ (dead)
178// Row 4
179#define BP_BSLS ALGR(BP_AGRV) // (backslash)
180#define BP_LCBR ALGR(BP_Y) // {
181#define BP_RCBR ALGR(BP_X) // }
182#define BP_ELLP ALGR(BP_DOT) // …
183#define BP_TILD ALGR(BP_K) // ~
184#define BP_IQUE ALGR(BP_QEST) // ¿
185#define BP_RNGA ALGR(BP_Q) // ° (dead)
186#define BP_DGRK ALGR(BP_G) // µ (dead Greek key)
187#define BP_DAGG ALGR(BP_H) // †
188#define BP_OGON ALGR(BP_F) // ˛ (dead)
189// Row 5
190#define BP_UNDS ALGR(KC_SPC) // _
312 191
313// Space bar 192/* Shift+AltGr symbols
314#define BP_NARROW_NON_BREAKING_SPACE ALGR(BP_NON_BREAKING_SPACE) 193 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
315#define BP_NNBS BP_NARROW_NON_BREAKING_SPACE 194 * │ ¶ │ „ │ “ │ ” │ ≤ │ ≥ │   │ ¬ │ ¼ │ ½ │ ¾ │ ′ │ ″ │       │
195 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
196 * │     │ ¦ │ ˝ │ § │   │   │   │   │   │   │   │   │   │     │
197 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐    │
198 * │      │   │   │ ˙ │ ¤ │ ̛  │ ſ │   │   │ ™ │   │ º │ , │    │
199 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
200 * │    │   │   │ ‘ │ ’ │ · │ ⌨ │ ̉  │ ̣  │   │ ‡ │ ª │          │
201 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
202 * │    │    │    │                        │    │    │    │    │
203 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
204 */
205// Row 1
206#define BP_PARA S(ALGR(BP_DLR)) // ¶
207#define BP_DLQU S(ALGR(BP_DQUO)) // „
208#define BP_LDQU S(ALGR(BP_LGIL)) // “
209#define BP_RDQU S(ALGR(BP_RGIL)) // ”
210#define BP_LEQL S(ALGR(BP_LPRN)) // ≤
211#define BP_GEQL S(ALGR(BP_RPRN)) // ≥
212#define BP_NOT S(ALGR(BP_PLUS)) // ¬
213#define BP_QRTR S(ALGR(BP_MINS)) // ¼
214#define BP_HALF S(ALGR(BP_SLSH)) // ½
215#define BP_TQTR S(ALGR(BP_ASTR)) // ¾
216#define BP_PRIM S(ALGR(BP_EQL)) // ′
217#define BP_DPRM S(ALGR(BP_PERC)) // ″
218// Row 2
219#define BP_BRKP S(ALGR(BP_B)) // ¦
220#define BP_DACU S(ALGR(BP_EACU)) // ˝ (dead)
221#define BP_SECT S(ALGR(BP_P)) // §
222// Row 3
223#define BP_DOTA S(ALGR(BP_I)) // ˙ (dead)
224#define BP_CURR S(ALGR(BP_E)) // ¤ (dead)
225#define BP_HORN S(ALGR(BP_COMM)) // ̛ (dead)
226#define BP_LNGS S(ALGR(BP_C)) // ſ
227#define BP_TM S(ALGR(BP_R)) // ™
228#define BP_MORD S(ALGR(BP_M)) // º
229#define BP_DCMM S(ALGR(BP_CCED)) // , (dead)
230// Row 4
231#define BP_LSQU S(ALGR(BP_Y)) // ‘
232#define BP_RSQU S(ALGR(BP_X)) // ’
233#define BP_MDDT S(ALGR(BP_DOT)) // ·
234#define BP_KEYB S(ALGR(BP_K)) // ⌨
235#define BP_HOKA S(ALGR(BP_QUOT)) // ̉ (dead)
236#define BP_DOTB S(ALGR(BP_Q)) // ̣ (dead)
237#define BP_DDAG S(ALGR(BP_H)) // ‡
238#define BP_FORD S(ALGR(BP_F)) // ª
239// Row 5
240#define BP_NNBS S(ALGR(BP_)) // (narrow non-breaking space)
316 241
317#endif 242// DEPRECATED
243#define BP_DOLLAR BP_DLR
244#define BP_DOUBLE_QUOTE BP_DQUO
245#define BP_DQOT BP_DQUO
246#define BP_LEFT_GUILLEMET BP_LGIL
247#define BP_RIGHT_GUILLEMET BP_RGIL
248#define BP_LEFT_PAREN BP_LPRN
249#define BP_RIGHT_PAREN BP_RPRN
250#define BP_MINUS BP_MINS
251#define BP_SLASH BP_SLSH
252#define BP_ASTERISK BP_ASTR
253#define BP_EQUAL BP_EQL
254#define BP_PERCENT BP_PERC
255#define BP_E_ACUTE BP_EACU
256#define BP_ECUT BP_EACU
257#define BP_E_GRAVE BP_EGRV
258#define BP_DEAD_CIRCUMFLEX BP_DCIR
259#define BP_DCRC BP_DCIR
260#define BP_COMMA BP_COMM
261#define BP_C_CEDILLA BP_CCED
262#define BP_E_CIRCUMFLEX BP_ECIR
263#define BP_ECRC BP_ECIR
264#define BP_A_GRAVE BP_AGRV
265#define BP_APOSTROPHE BP_QUOT
266#define BP_APOS BP_QUOT
267#define BP_DEGREE BP_DEG
268#define BP_DEGR BP_DEG
269#define BP_GRAVE BP_GRV
270#define BP_EXCLAIM BP_EXLM
271#define BP_SCOLON BP_SCLN
272#define BP_COLON BP_COLN
273#define BP_QUESTION BP_QUES
274#define BP_QEST BP_QUES
275#define BP_NON_BREAKING_SPACE BP_NBSP
276#define BP_EN_DASH BP_NDSH
277#define BP_EM_DASH BP_MDSH
278#define BP_LESS BP_LABK
279#define BP_GREATER BP_RABK
280#define BP_GRTR BP_RABK
281#define BP_LBRACKET BP_LBRC
282#define BP_RBRACKET BP_RBRC
283#define BP_CIRCUMFLEX CIRC
284#define BP_PLUS_MINUS BP_PLMN
285#define BP_PSMS BP_PLMN
286#define BP_MATH_MINUS BP_MMNS
287#define BP_OBELUS BP_DIV
288#define BP_OBEL BP_DIV
289#define BP_DIVISION_SIGN BP_DIV
290#define BP_DVSN BP_DIV
291#define BP_TIMES BP_MUL
292#define BP_TIMS BP_MUL
293#define BP_DIFFERENT BP_NEQL
294#define BP_DIFF BP_NEQL
295#define BP_PERMILLE BP_PERM
296#define BP_PMIL BP_PERM
297#define BP_DEAD_ACUTE BP_ACUT
298#define BP_DACT BP_ACUT
299#define BP_AMPERSAND BP_AMPR
300#define BP_OE_LIGATURE BP_OE
301#define BP_DEAD_GRAVE BP_DGRV
302#define BP_INVERTED_EXCLAIM BP_IEXL
303#define BP_IXLM BP_IEXL
304#define BP_DEAD_CARON BP_CARN
305#define BP_DCAR BP_CARN
306#define BP_DEAD_SLASH BP_DSLS
307#define BP_DSLH BP_DSLS
308#define BP_IJ_LIGATURE BP_IJ
309#define BP_SCHWA BP_SCHW
310#define BP_SCWA BP_SCHW
311#define BP_DEAD_BREVE BP_BREV
312#define BP_DBRV BP_BREV
313#define BP_AE_LIGATURE BP_AE
314#define BP_U_GRAVE BP_UGRV
315#define BP_DEAD_TREMA BP_DIAE
316#define BP_DTRM BP_DIAE
317#define BP_TYPOGRAPHICAL_APOSTROPHE BP_COMM
318#define BP_TAPO BP_COMM
319#define BP_COPYRIGHT BP_COPY
320#define BP_CPRT BP_COPY
321#define BP_THORN BP_THRN
322#define BP_SHARP_S BP_SS
323#define BP_SRPS BP_SS
324#define BP_REGISTERED_TRADEMARK BP_REGD
325#define BP_RTM BP_REGD
326#define BP_DEAD_TILDE BP_DTIL
327#define BP_DTLD BP_DTIL
328#define BP_DEAD_MACRON BP_MACR
329#define BP_DMCR BP_MACR
330#define BP_DEAD_CEDILLA BP_CEDL
331#define BP_DCED BP_CEDL
332#define BP_NONUS_SLASH BP_SLSH
333#define BP_NUSL BP_SLSH
334#define BP_BACKSLASH BP_BSLS
335#define BP_LEFT_CURLY_BRACE BP_LCBR
336#define BP_RIGHT_CURLY_BRACE BP_RCBR
337#define BP_ELLIPSIS BP_ELLP
338#define BP_ELPS BP_ELLP
339#define BP_TILDE BP_TILD
340#define BP_INVERTED_QUESTION BP_IQUE
341#define BP_IQST BP_IQUE
342#define BP_DEAD_RING BP_RNGA
343#define BP_DRNG BP_RNGA
344#define BP_DEAD_GREEK BP_DGRK
345#define BP_DAGGER BP_DAGG
346#define BP_DAGR BP_DAGG
347#define BP_DEAD_OGONEK BP_OGON
348#define BP_DOGO BP_OGON
349#define BP_UNDERSCORE BP_UNDS
350#define BP_PARAGRAPH BP_PARA
351#define BP_PARG BP_PARA
352#define BP_LOW_DOUBLE_QUOTE BP_DLQU
353#define BP_LWQT BP_DLQU
354#define BP_LEFT_DOUBLE_QUOTE BP_RDQU
355#define BP_RIGHT_DOUBLE_QUOTE BP_RDQU
356#define BP_LESS_OR_EQUAL BP_LEQL
357#define BP_GREATER_OR_EQUAL BP_GEQL
358#define BP_NEGATION BP_NOT
359#define BP_NEGT BP_NOT
360#define BP_ONE_QUARTER BP_QRTR
361#define BP_1QRT BP_QRTR
362#define BP_ONE_HALF BP_HALF
363#define BP_1HLF BP_HALF
364#define BP_THREE_QUARTERS TQTR
365#define BP_3QRT BP_TQTR
366#define BP_MINUTES BP_PRIM
367#define BP_MNUT BP_PRIM
368#define BP_SECONDS BP_DPRM
369#define BP_SCND BP_DPRM
370#define BP_BROKEN_PIPE BP_BRKP
371#define BP_BPIP BP_BRKP
372#define BP_DEAD_DOUBLE_ACUTE BP_DACU
373#define BP_DDCT BP_DACU
374#define BP_SECTION BP_SECT
375#define BP_GRAVE_BIS BP_GRV
376#define BP_GRVB BP_GRV
377#define BP_DEAD_DOT_ABOVE BP_DOTA
378#define BP_DDTA BP_DOTA
379#define BP_DEAD_CURRENCY BP_CURR
380#define BP_DCUR BP_CURR
381#define BP_DEAD_HORN BP_HORN
382#define BP_DHRN BP_HORN
383#define BP_LONG_S BP_LNGS
384#define BP_TRADEMARK BP_TM
385#define BP_ORDINAL_INDICATOR_O MORD
386#define BP_ORDO BP_MORD
387#define BP_DEAD_COMMA BP_DCMM
388#define BP_DCOM BP_DCMM
389#define BP_LEFT_QUOTE BP_LSQU
390#define BP_LQOT BP_LSQU
391#define BP_RIGHT_QUOTE BP_RSQU
392#define BP_RQOT BP_RSQU
393#define BP_INTERPUNCT BP_MDDT
394#define BP_IPCT BP_MDDT
395#define BP_DEAD_HOOK_ABOVE BP_HOKA
396#define BP_DHKA BP_HOKA
397#define BP_DEAD_UNDERDOT BP_DOTB
398#define BP_DUDT BP_DOTB
399#define BP_DOUBLE_DAGGER BP_DDAG
400#define BP_DDGR BP_DDAG
401#define BP_ORDINAL_INDICATOR_A BP_FORD
402#define BP_ORDA BP_FORD
403#define BP_NARROW_NON_BREAKING_SPACE BP_NNBS
diff --git a/quantum/keymap_extras/sendstring_bepo.h b/quantum/keymap_extras/sendstring_bepo.h
index 2dfe7e4a4..b98793b83 100644
--- a/quantum/keymap_extras/sendstring_bepo.h
+++ b/quantum/keymap_extras/sendstring_bepo.h
@@ -74,13 +74,13 @@ const uint8_t ascii_to_keycode_lut[128] PROGMEM = {
74 XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, 74 XXXXXXX, XXXXXXX, XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
75 75
76 // ! " # $ % & ' 76 // ! " # $ % & '
77 KC_SPC, BP_DCRC, BP_DQOT, BP_DLR, BP_DLR, BP_PERC, BP_P, BP_APOS, 77 KC_SPC, BP_DCIR, BP_DQUO, BP_DLR, BP_DLR, BP_PERC, BP_P, BP_QUOT,
78 // ( ) * + , - . / 78 // ( ) * + , - . /
79 BP_LPRN, BP_RPRN, BP_ASTR, BP_PLUS, BP_COMM, BP_MINS, BP_DOT, BP_SLSH, 79 BP_LPRN, BP_RPRN, BP_ASTR, BP_PLUS, BP_COMM, BP_MINS, BP_DOT, BP_SLSH,
80 // 0 1 2 3 4 5 6 7 80 // 0 1 2 3 4 5 6 7
81 BP_ASTR, BP_DQOT, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, 81 BP_ASTR, BP_DQUO, BP_LGIL, BP_RGIL, BP_LPRN, BP_RPRN, BP_AT, BP_PLUS,
82 // 8 9 : ; < = > ? 82 // 8 9 : ; < = > ?
83 BP_MINS, BP_SLSH, BP_DOT, BP_COMM, BP_LGIL, BP_EQL, BP_RGIL, BP_APOS, 83 BP_MINS, BP_SLSH, BP_DOT, BP_COMM, BP_LGIL, BP_EQL, BP_RGIL, BP_QUOT,
84 // @ A B C D E F G 84 // @ A B C D E F G
85 BP_AT, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G, 85 BP_AT, BP_A, BP_B, BP_C, BP_D, BP_E, BP_F, BP_G,
86 // H I J K L M N O 86 // H I J K L M N O