aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras/keymap_bepo.h
diff options
context:
space:
mode:
authorDidier Loiseau <didierloiseau+git@gmail.com>2016-02-07 19:29:49 +0100
committerDidier Loiseau <didierloiseau+git@gmail.com>2016-03-13 23:22:21 +0100
commit7c33f8493fb4ecd664390232c8de856158f9fcae (patch)
treecf2044c9e128cbbace6b8367af5de271fef19048 /quantum/keymap_extras/keymap_bepo.h
parent45de75f1791a226304e8d566cb1b75a4cc9e92b3 (diff)
downloadqmk_firmware-7c33f8493fb4ecd664390232c8de856158f9fcae.tar.gz
qmk_firmware-7c33f8493fb4ecd664390232c8de856158f9fcae.zip
Keymap header for the BÉPO layout
Diffstat (limited to 'quantum/keymap_extras/keymap_bepo.h')
-rw-r--r--quantum/keymap_extras/keymap_bepo.h311
1 files changed, 311 insertions, 0 deletions
diff --git a/quantum/keymap_extras/keymap_bepo.h b/quantum/keymap_extras/keymap_bepo.h
new file mode 100644
index 000000000..1ab2d63dd
--- /dev/null
+++ b/quantum/keymap_extras/keymap_bepo.h
@@ -0,0 +1,311 @@
1/* Keymap macros for the French BÉPO layout - http://bepo.fr */
2#ifndef KEYMAP_BEPO_H
3#define KEYMAP_BEPO_H
4
5#include "keymap_common.h"
6
7// Alt gr
8#ifndef ALTGR
9#define ALTGR(kc) RALT(kc)
10#endif
11#ifndef ALGR
12#define ALGR(kc) ALTGR(kc)
13#endif
14#define BP_ALGR KC_RALT
15
16// Normal characters
17// First row (on usual keyboards)
18#define BP_DOLLAR KC_GRAVE // $
19#define BP_DLR BP_DOLLAR
20#define BP_DOUBLE_QUOTE KC_1 // "
21#define BP_DQOT BP_DOUBLE_QUOTE
22#define BP_LEFT_GUILLEMET KC_2 // «
23#define BP_LGIL BP_LEFT_GUILLEMET
24#define BP_RIGHT_GUILLEMET KC_3 // »
25#define BP_RGIL BP_RIGHT_GUILLEMET
26#define BP_LEFT_PAREN KC_4 // (
27#define BP_LPRN BP_LEFT_PAREN
28#define BP_RIGHT_PAREN KC_5 // )
29#define BP_RPRN BP_RIGHT_PAREN
30#define BP_AT KC_6 // @
31#define BP_PLUS KC_7 // +
32#define BP_MINUS KC_8 // -
33#define BP_MINS BP_MINUS
34#define BP_SLASH KC_9 // /
35#define BP_SLSH BP_SLASH
36#define BP_ASTERISK KC_0 // *
37#define BP_ASTR BP_ASTERISK
38#define BP_EQUAL KC_MINUS // =
39#define BP_EQL BP_EQUAL
40#define BP_PERCENT KC_EQUAL // %
41#define BP_PERC BP_PERCENT
42
43// Second row
44#define BP_B KC_Q
45#define BP_E_ACUTE KC_W // é
46#define BP_ECUT BP_E_ACUTE
47#define BP_P KC_E
48#define BP_O KC_R
49#define BP_E_GRAVE KC_T // è
50#define BP_EGRV BP_E_GRAVE
51#define BP_DEAD_CIRCUMFLEX KC_Y // dead ^
52#define BP_DCRC BP_DEAD_CIRCUMFLEX
53#define BP_V KC_U
54#define BP_D KC_I
55#define BP_L KC_O
56#define BP_J KC_P
57#define BP_Z KC_LBRACKET
58#define BP_W KC_RBRACKET
59
60// Third row
61#define BP_A KC_A
62#define BP_U KC_S
63#define BP_I KC_D
64#define BP_E KC_F
65#define BP_COMMA KC_G // ,
66#define BP_COMM BP_COMMA
67#define BP_C KC_H
68#define BP_T KC_J
69#define BP_S KC_K
70#define BP_R KC_L
71#define BP_N KC_SCOLON
72#define BP_M KC_QUOTE
73#define BP_C_CEDILLA KC_BSLASH // ç
74#define BP_CCED BP_C_CEDILLA
75
76// Fourth row
77#define BP_E_CIRCUMFLEX KC_NONUS_BSLASH // ê
78#define BP_ECRC BP_E_CIRCUMFLEX
79#define BP_A_GRAVE KC_Z // à
80#define BP_AGRV BP_A_GRAVE
81#define BP_Y KC_X
82#define BP_X KC_C
83#define BP_DOT KC_V // .
84#define BP_K KC_B
85#define BP_APOSTROPHE KC_N
86#define BP_APOS BP_APOSTROPHE // '
87#define BP_Q KC_M
88#define BP_G KC_COMMA
89#define BP_H KC_DOT
90#define BP_F KC_SLASH
91
92// Shifted characters
93// First row
94#define BP_HASH LSFT(BP_DOLLAR) // #
95#define BP_1 LSFT(KC_1)
96#define BP_2 LSFT(KC_2)
97#define BP_3 LSFT(KC_3)
98#define BP_4 LSFT(KC_4)
99#define BP_5 LSFT(KC_5)
100#define BP_6 LSFT(KC_6)
101#define BP_7 LSFT(KC_7)
102#define BP_8 LSFT(KC_8)
103#define BP_9 LSFT(KC_9)
104#define BP_0 LSFT(KC_0)
105#define BP_DEGREE LSFT(BP_EQUAL) // °
106#define BP_DEGR BP_DEGREE
107#define BP_GRAVE LSFT(BP_PERCENT) // `
108#define BP_GRV BP_GRAVE
109
110// Second row
111#define BP_EXCLAIM LSFT(BP_DEAD_CIRCUMFLEX) // !
112#define BP_EXLM BP_EXCLAIM
113
114// Third row
115#define BP_SCOLON LSFT(BP_COMMA) // ;
116#define BP_SCLN BP_SCOLON
117
118// Fourth row
119#define BP_COLON LSFT(BP_DOT) // :
120#define BP_COLN BP_COLON
121#define BP_QUESTION LSFT(BP_QUOTE) // ?
122#define BP_QEST BP_QUESTION
123
124// Space bar
125#define BP_NON_BREAKING_SPACE LSFT(KC_SPACE)
126#define BP_NBSP BP_NON_BREAKING_SPACE
127
128// AltGr-ed characters
129// First row
130#define BP_EN_DASH ALTGR(BP_DOLLAR) // –
131#define BP_NDSH BP_EN_DASH
132#define BP_EM_DASH ALTGR(KC_1) // —
133#define BP_MDSH BP_EM_DASH
134#define BP_LESS ALTGR(KC_2) // <
135#define BP_GREATER ALTGR(KC_3) // >
136#define BP_GRTR BP_GREATER
137#define BP_LBRACKET ALTGR(KC_4) // [
138#define BP_LBRC BP_LBRACKET
139#define BP_RBRACKET ALTGR(KC_5) // ]
140#define BP_RBRC BP_RBRACKET
141#define BP_CIRCUMFLEX ALTGR(KC_6) // ^
142#define BP_CIRC BP_CIRCUMFLEX
143#define BP_PLUS_MINUS ALTGR(KC_7) // ±
144#define BP_PSMS BP_PLUS_MINUS
145#define BP_MATH_MINUS ALTGR(KC_8) // −
146#define BP_MMNS BP_MATH_MINUS
147#define BP_OBELUS ALTGR(KC_9) // ÷
148#define BP_OBEL BP_OBELUS
149// more conventional name of the symbol
150#define BP_DIVISION_SIGN BP_OBELUS
151#define BP_DVSN BP_DIVISION_SIGN
152#define BP_TIMES ALTGR(KC_0) // ×
153#define BP_TIMS BP_TIMES
154#define BP_DIFFERENT ALTGR(BP_EQUAL) // ≠
155#define BP_DIFF BP_DIFFERENT
156#define BP_PERMILLE ALTGR(BP_PERCENT) // ‰
157#define BP_PMIL BP_PERMILLE
158
159// Second row
160#define BP_PIPE ALTGR(BP_B) // |
161#define BP_DEAD_ACUTE ALTGR(BP_E_ACUTE) // dead ´
162#define BP_DACT BP_DEAD_ACUTE
163#define BP_AMPERSAND ALTGR(BP_P) // &
164#define BP_AMPR BP_AMPERSAND
165#define BP_OE_LIGATURE ALTGR(BP_O) // œ
166#define BP_OE BP_OE_LIGATURE
167#define BP_DEAD_GRAVE ALTGR(BP_E_GRAVE) // `
168#define BP_DGRV BP_DEAD_GRAVE
169#define BP_INVERTED_EXCLAIM ALTGR(BP_DEAD_CIRCUMFLEX) // ¡
170#define BP_IXLM BP_INVERTED_EXCLAIM
171#define BP_DEAD_CARON ALTGR(BP_V) // dead ˇ
172#define BP_DCAR BP_DEAD_CARON
173#define BP_ETH ALTGR(BP_D) // ð
174#define BP_DEAD_SLASH ALTGR(BP_L) // dead /
175#define BP_DSLH BP_DEAD_SLASH
176#define BP_IJ_LIGATURE ALTGR(BP_J) // ij
177#define BP_IJ BP_IJ_LIGATURE
178#define BP_SCHWA ALTGR(BP_Z) // ə
179#define BP_SCWA BP_SCHWA
180#define BP_DEAD_BREVE ALTGR(BP_W) // dead ˘
181#define BP_DBRV BP_DEAD_BREVE
182
183// Third row
184#define BP_AE_LIGATURE ALTGR(BP_A) // æ
185#define BP_AE BP_AE_LIGATURE
186#define BP_U_GRAVE AGR(BP_U) // ù
187#define BP_UGRV BP_U_GRAVE
188#define BP_DEAD_TREMA ALTGR(BP_I) // dead ¨ (trema/umlaut/diaresis)
189#define BP_DTRM BP_DEAD_TREMA
190#define BP_EURO ALTGR(BP_E) // €
191#define BP_TYPOGRAPHICAL_APOSTROPHE ALTGR(BP_COMMMA) // ’
192#define BP_TAPO BP_TYPOGRAPHICAL_APOSTROPHE
193#define BP_COPYRIGHT ALTGR(BP_C) // ©
194#define BP_CPRT BP_COPYRIGHT
195#define BP_THORN ALTGR(BP_T) // þ
196#define BP_THRN BP_THORN
197#define BP_SHARP_S ALTGR(BP_S) // ß
198#define BP_SRPS BP_SHARP_S
199#define BP_REGISTERED_TRADEMARK ALTGR(BP_R) // ®
200#define BP_RTM BP_REGISTERED_TRADEMARK
201#define BP_DEAD_TILDE ALTGR(BP_N) // dead ~
202#define BP_DTLD BP_DEAD_TILDE
203#define BP_DEAD_MACRON ALTGR(BP_M) // dead ¯
204#define BP_DMCR BP_DEAD_MACRON
205#define BP_DEAD_CEDILLA ALTGR(BP_C_CEDILLA) // dead ¸
206#define BP_DCED BP_DEAD_CEDILLA
207
208// Fourth row
209#define BP_NONUS_SLASH ALTGR(BP_E_CIRCUMFLEX) // / on non-us backslash key (102nd key, ê in bépo)
210#define BP_NUSL BP_NONUS_SLASH
211#define BP_BACKSLASH ALTGR(BP_A_GRAVE) /* \ */
212#define BP_BSLS BP_BACKSLASH
213#define BP_LEFT_CURLY_BRACE ALTGR(BP_Y) // {
214#define BP_LCBR BP_LEFT_CURLY_BRACE
215#define BP_RIGHT_CURLY_BRACE ALTGR(BP_X) // }
216#define BP_RCBR BP_RIGHT_CURLY_BRACE
217#define BP_ELLIPSIS ALTGR(BP_DOT) // …
218#define BP_ELPS BP_ELLIPSIS
219#define BP_TILDE ALTGR(BP_K) // ~
220#define BP_TILD BP_TILDE
221#define BP_INVERTED_QUESTION ALTGR(BP_QUESTION) // ¿
222#define BP_IQST BP_INVERTED_QUESTION
223#define BP_DEAD_RING ALTGR(BP_Q) // dead °
224#define BP_DRNG BP_DEAD_RING
225#define BP_DEAD_GREEK ALTGR(BP_G) // dead Greek key (following key will make a Greek letter)
226#define BP_DGRK BP_DEAD_GREEK
227#define BP_DAGGER ALTGR(BP_H) // †
228#define BP_DAGR BP_DAGGER
229#define BP_DEAD_OGONEK ALTGR(BP_F) // dead ˛
230#define BP_DOGO BP_DEAD_OGONEK
231
232// Space bar
233#define BP_UNDERSCORE ALTGR(KC_SPACE) // _
234#define BP_UNDS BP_UNDERSCORE
235
236// AltGr-Shifted characters (different from capitalised AltGr-ed characters)
237// First row
238#define BP_PARAGRAPH ALTGR(BP_HASH) // ¶
239#define BP_PARG BP_PARAGRAPH
240#define BP_LOW_DOUBLE_QUOTE ALTGR(BP_1) // „
241#define BP_LWQT BP_LOW_DOUBLE_QUOTE
242#define BP_LEFT_DOUBLE_QUOTE ALTGR(BP_2) // “
243#define BP_LDQT BP_LEFT_DOUBLE_QUOTE
244#define BP_RIGHT_DOUBLE_QUOTE ALTGR(BP_3) // ”
245#define BP_RDQT BP_RIGHT_DOUBLE_QUOTE
246#define BP_LESS_OR_EQUAL ALTGR(BP_4) // ≤
247#define BP_LEQL BP_LESS_OR_EQUAL
248#define BP_GREATER_OR_EQUAL ALTGR(BP_5) // ≥
249#define BP_GEQL BP_GREATER_OR_EQUAL
250// nothing on ALTGR(BP_6)
251#define BP_NEGATION ALTGR(BP_7) // ¬
252#define BP_NEGT BP_NEGATION
253#define BP_ONE_QUARTER ALTGR(BP_8) // ¼
254#define BP_1QRT BP_ONE_QUARTER
255#define BP_ONE_HALF ALTGR(BP_9) // ½
256#define BP_1HLF BP_ONE_HALF
257#define BP_THREE_QUARTERS ALTGR(BP_0) // ¾
258#define BP_3QRT BP_THREE_QUARTERS
259#define BP_MINUTES ALTGR(BP_DEGREE) // ′
260#define BP_MNUT BP_MINUTES
261#define BP_SECONDS ALTGR(BP_GRAVE) // ″
262#define BP_SCND BP_SECONDS
263
264// Second row
265#define BP_BROKEN_PIPE LSFT(BP_PIPE) // ¦
266#define BP_BPIP BP_BROKEN_PIPE
267#define BP_DEAD_DOUBLE_ACUTE LSFT(BP_DEAD_ACUTE) // ˝
268#define BP_DDCT BP_DEAD_DOUBLE_ACUTE
269#define BP_SECTION ALTGR(LSFT(BP_P)) // §
270#define BP_SECT BP_SECTION
271// LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT)
272#define BP_GRAVE_BIS LSFT(BP_DEAD_GRAVE) // `
273#define BP_GRVB BP_GRAVE_BIS
274
275// Third row
276#define BP_DEAD_DOT_ABOVE LSFT(BP_DEAD_TREMA) // dead ˙
277#define BP_DDTA BP_DEAD_DOT_ABOVE
278#define BP_DEAD_CURRENCY LSFT(BP_EURO) // dead ¤ (next key will generate a currency code like ¥ or £)
279#define BP_DCUR BP_DEAD_CURRENCY
280#define BP_DEAD_HORN LSFT(ALTGR(BP_COMMA)) // dead ̛
281#define BP_DHRN BP_DEAD_HORN
282#define BP_LONG_S LSFT(ALTGR(BP_C)) // ſ
283#define BP_LNGS BP_LONG_S
284#define BP_TRADEMARK LSFT(BP_REGISTERED_TRADEMARK) // ™
285#define BP_TM BP_TRADEMARK
286#define BP_ORDINAL_INDICATOR_O LSFT(ALTGR(BP_M)) // º
287#define BP_ORDO BP_ORDINAL_INDICATOR_O
288#define BP_DEAD_COMMA LSFT(BP_DEAD_CEDILLA) // dead ˛
289#define BP_DCOM BP_DEAD_COMMA
290
291// Fourth row
292#define BP_LEFT_QUOTE LSFT(ALTGR(BP_Y)) // ‘
293#define BP_LQOT BP_LEFT_QUOTE
294#define BP_RIGHT_QUOTE LSFT(ALTGR(BP_X)) // ’
295#define BP_RQOT BP_RIGHT_QUOTE
296#define BP_INTERPUNCT LSFT(ALTGR(BP_DOT)) // ·
297#define BP_IPCT BP_INTERPUNCT
298#define BP_DEAD_HOOK_ABOVE LSFT(ALTGR(BP_QUESTION)) // dead ̉
299#define BP_DHKA BP_DEAD_HOOK_ABOVE
300#define BP_DEAD_UNDERDOT LSFT(BP_DEAD_RING) // dead ̣
301#define BP_DUDT BP_DEAD_UNDERDOT
302#define BP_DOUBLE_DAGGER LSFT(BP_DAGGER) // ‡
303#define BP_DDGR BP_DOUBLE_DAGGER
304#define BP_ORDINAL_INDICATOR_A LSFT(ALTGR(BP_F)) // ª
305#define BP_ORDA BP_ORDINAL_INDICATOR_A
306
307// Space bar
308#define BP_NARROW_NON_BREAKING_SPACE ALTGR(BP_NON_BREAKING_SPACE)
309#define BP_NNBS BP_NARROW_NON_BREAKING_SPACE
310
311#endif