]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/keymap_extras/keymap_bepo.h
[Keymap] Jarred's Plaid keymap (#6049)
[qmk_firmware.git] / quantum / keymap_extras / keymap_bepo.h
1 /* Copyright 2016 Didier Loiseau
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 /* Keymap macros for the French BÉPO layout - http://bepo.fr */
17 #ifndef KEYMAP_BEPO_H
18 #define KEYMAP_BEPO_H
19
20 #include "keymap.h"
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
134 // AltGr-ed characters
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
242 // AltGr-Shifted characters (different from capitalised AltGr-ed characters)
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
270 // Second row
271 #define BP_BROKEN_PIPE          LSFT(BP_PIPE)           // ¦
272 #define BP_BPIP                 BP_BROKEN_PIPE
273 #define BP_DEAD_DOUBLE_ACUTE    LSFT(BP_DEAD_ACUTE)     // ˝
274 #define BP_DDCT                 BP_DEAD_DOUBLE_ACUTE
275 #define BP_SECTION              ALGR(LSFT(BP_P))        // §
276 #define BP_SECT                 BP_SECTION
277 // LSFT(BP_DEAD_GRAVE) is actually the same character as LSFT(BP_PERCENT)
278 #define BP_GRAVE_BIS            LSFT(BP_DEAD_GRAVE)     // `
279 #define BP_GRVB                 BP_GRAVE_BIS
280
281 // Third row
282 #define BP_DEAD_DOT_ABOVE       LSFT(BP_DEAD_TREMA)     // dead ˙
283 #define BP_DDTA                 BP_DEAD_DOT_ABOVE
284 #define BP_DEAD_CURRENCY        LSFT(BP_EURO)           // dead ¤ (next key will generate a currency code like ¥ or £)
285 #define BP_DCUR                 BP_DEAD_CURRENCY
286 #define BP_DEAD_HORN            LSFT(ALGR(BP_COMMA))    // dead ̛
287 #define BP_DHRN                 BP_DEAD_HORN
288 #define BP_LONG_S               LSFT(ALGR(BP_C))        // ſ
289 #define BP_LNGS                 BP_LONG_S
290 #define BP_TRADEMARK            LSFT(BP_REGISTERED_TRADEMARK)   // ™
291 #define BP_TM                   BP_TRADEMARK
292 #define BP_ORDINAL_INDICATOR_O  LSFT(ALGR(BP_M))        // º
293 #define BP_ORDO                 BP_ORDINAL_INDICATOR_O
294 #define BP_DEAD_COMMA           LSFT(BP_DEAD_CEDILLA)   // dead ˛
295 #define BP_DCOM                 BP_DEAD_COMMA
296
297 // Fourth row
298 #define BP_LEFT_QUOTE           LSFT(ALGR(BP_Y))        // ‘
299 #define BP_LQOT                 BP_LEFT_QUOTE
300 #define BP_RIGHT_QUOTE          LSFT(ALGR(BP_X))        // ’
301 #define BP_RQOT                 BP_RIGHT_QUOTE
302 #define BP_INTERPUNCT           LSFT(ALGR(BP_DOT))      // ·
303 #define BP_IPCT                 BP_INTERPUNCT
304 #define BP_DEAD_HOOK_ABOVE      LSFT(ALGR(BP_QUESTION)) // dead ̉
305 #define BP_DHKA                 BP_DEAD_HOOK_ABOVE
306 #define BP_DEAD_UNDERDOT        LSFT(BP_DEAD_RING)      // dead ̣
307 #define BP_DUDT                 BP_DEAD_UNDERDOT
308 #define BP_DOUBLE_DAGGER        LSFT(BP_DAGGER)         // ‡
309 #define BP_DDGR                 BP_DOUBLE_DAGGER
310 #define BP_ORDINAL_INDICATOR_A  LSFT(ALGR(BP_F))        // ª
311 #define BP_ORDA                 BP_ORDINAL_INDICATOR_A
312
313 // Space bar
314 #define BP_NARROW_NON_BREAKING_SPACE    ALGR(BP_NON_BREAKING_SPACE)
315 #define BP_NNBS                         BP_NARROW_NON_BREAKING_SPACE
316
317 #endif