keyboard stuff
1{
2 "aliases": {
3/* French AZERTY - AFNOR NF Z71-300
4 *
5 * A standard for the French keyboard
6 *
7 * The project was launched at the end of 2015 on the proposal of the General
8 * Delegation for the French language and the languages of France (Ministry
9 * of Culture), starting from the observation that the current "azerty"
10 * keyboards constrain the writing of French, languages regional and European
11 * languages with Latin alphabet.
12 *
13 * For the first time, a standard (NF Z71-300) defines the placement of
14 * characters on the French keyboard. It offers two layouts, one of which
15 * closely follows the QWERTY keyboard used by most people who write in French.
16 *
17 * However, it is in many ways superior to the old keyboard:
18 *
19 * - it contains all the characters required to enter text in French (for example É, œ and ")
20 * - it is designed to be more ergonomic and allow faster typing
21 * - it includes almost 60 additional characters for entering foreign languages, technical content, etc
22 * - however, the characters remain easy to locate thanks to intuitive groupings
23 *
24 * Source: https://norme-azerty.fr
25 */
26/*
27 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
28 * │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │
29 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
30 * │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │
31 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
32 * │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │
33 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
34 * │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │
35 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
36 * │ │ │ │ │ │ │ │ │
37 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
38 */
39 "KC_GRV": {
40 "key": "FR_AT",
41 "label": "@",
42 }
43 "KC_1": {
44 "key": "FR_AGRV",
45 "label": "à",
46 }
47 "KC_2": {
48 "key": "FR_EACU",
49 "label": "é",
50 }
51 "KC_3": {
52 "key": "FR_EGRV",
53 "label": "è",
54 }
55 "KC_4": {
56 "key": "FR_ECIR",
57 "label": "ê",
58 }
59 "KC_5": {
60 "key": "FR_LPRN",
61 "label": "(",
62 }
63 "KC_6": {
64 "key": "FR_RPRN",
65 "label": ")",
66 }
67 "KC_7": {
68 "key": "FR_LSQU",
69 "label": "‘",
70 }
71 "KC_8": {
72 "key": "FR_RSQU",
73 "label": "’",
74 }
75 "KC_9": {
76 "key": "FR_LDAQ",
77 "label": "«",
78 }
79 "KC_0": {
80 "key": "FR_RDAQ",
81 "label": "»",
82 }
83 "KC_MINS": {
84 "key": "FR_QUOT",
85 "label": "'",
86 }
87 "KC_EQL": {
88 "key": "FR_DCIR",
89 "label": "^ (dead)",
90 }
91 "KC_Q": {
92 "key": "FR_A",
93 "label": "A",
94 }
95 "KC_W": {
96 "key": "FR_Z",
97 "label": "Z",
98 }
99 "KC_E": {
100 "key": "FR_E",
101 "label": "E",
102 }
103 "KC_R": {
104 "key": "FR_R",
105 "label": "R",
106 }
107 "KC_T": {
108 "key": "FR_T",
109 "label": "T",
110 }
111 "KC_Y": {
112 "key": "FR_Y",
113 "label": "Y",
114 }
115 "KC_U": {
116 "key": "FR_U",
117 "label": "U",
118 }
119 "KC_I": {
120 "key": "FR_I",
121 "label": "I",
122 }
123 "KC_O": {
124 "key": "FR_O",
125 "label": "O",
126 }
127 "KC_P": {
128 "key": "FR_P",
129 "label": "P",
130 }
131 "KC_LBRC": {
132 "key": "FR_MINS",
133 "label": "-",
134 }
135 "KC_RBRC": {
136 "key": "FR_PLUS",
137 "label": "+",
138 }
139 "KC_A": {
140 "key": "FR_Q",
141 "label": "Q",
142 }
143 "KC_S": {
144 "key": "FR_S",
145 "label": "S",
146 }
147 "KC_D": {
148 "key": "FR_D",
149 "label": "D",
150 }
151 "KC_F": {
152 "key": "FR_F",
153 "label": "F",
154 }
155 "KC_G": {
156 "key": "FR_G",
157 "label": "G",
158 }
159 "KC_H": {
160 "key": "FR_H",
161 "label": "H",
162 }
163 "KC_J": {
164 "key": "FR_J",
165 "label": "J",
166 }
167 "KC_K": {
168 "key": "FR_K",
169 "label": "K",
170 }
171 "KC_L": {
172 "key": "FR_L",
173 "label": "L",
174 }
175 "KC_SCLN": {
176 "key": "FR_M",
177 "label": "M",
178 }
179 "KC_QUOT": {
180 "key": "FR_SLSH",
181 "label": "/",
182 }
183 "KC_NUHS": {
184 "key": "FR_ASTR",
185 "label": "*",
186 }
187 "KC_NUBS": {
188 "key": "FR_LABK",
189 "label": "<",
190 }
191 "KC_Z": {
192 "key": "FR_W",
193 "label": "W",
194 }
195 "KC_X": {
196 "key": "FR_X",
197 "label": "X",
198 }
199 "KC_C": {
200 "key": "FR_C",
201 "label": "C",
202 }
203 "KC_V": {
204 "key": "FR_V",
205 "label": "V",
206 }
207 "KC_B": {
208 "key": "FR_B",
209 "label": "B",
210 }
211 "KC_N": {
212 "key": "FR_N",
213 "label": "N",
214 }
215 "KC_M": {
216 "key": "FR_DOT",
217 "label": ".",
218 }
219 "KC_COMM": {
220 "key": "FR_COMM",
221 "label": ",",
222 }
223 "KC_DOT": {
224 "key": "FR_COLN",
225 "label": ":",
226 }
227 "KC_SLSH": {
228 "key": "FR_SCLN",
229 "label": ";",
230 }
231/* Shifted symbols
232 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
233 * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │
234 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
235 * │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │
236 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
237 * │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │
238 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
239 * │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │
240 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
241 * │ │ │ │ │ │ │ │ │
242 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
243 */
244 "S(FR_AT)": {
245 "key": "FR_HASH",
246 "label": "#",
247 }
248 "S(FR_AGRV)": {
249 "key": "FR_1",
250 "label": "1",
251 }
252 "S(FR_EACU)": {
253 "key": "FR_2",
254 "label": "2",
255 }
256 "S(FR_EGRV)": {
257 "key": "FR_3",
258 "label": "3",
259 }
260 "S(FR_ECIR)": {
261 "key": "FR_4",
262 "label": "4",
263 }
264 "S(FR_LPRN)": {
265 "key": "FR_5",
266 "label": "5",
267 }
268 "S(FR_RPRN)": {
269 "key": "FR_6",
270 "label": "6",
271 }
272 "S(FR_LSQU)": {
273 "key": "FR_7",
274 "label": "7",
275 }
276 "S(FR_RSQU)": {
277 "key": "FR_8",
278 "label": "8",
279 }
280 "S(FR_LDAQ)": {
281 "key": "FR_9",
282 "label": "9",
283 }
284 "S(FR_RDAQ)": {
285 "key": "FR_0",
286 "label": "0",
287 }
288 "S(FR_QUOT)": {
289 "key": "FR_DQUO",
290 "label": "\"",
291 }
292 "S(FR_DCIR)": {
293 "key": "FR_DIAE",
294 "label": "¨ (dead)",
295 }
296 "S(FR_MINS)": {
297 "key": "FR_NDSH",
298 "label": "–",
299 }
300 "S(FR_PLUS)": {
301 "key": "FR_PLMN",
302 "label": "±",
303 }
304 "S(FR_SLSH)": {
305 "key": "FR_BSLS",
306 "label": "\\",
307 }
308 "S(FR_ASTR)": {
309 "key": "FR_HALF",
310 "label": "½",
311 }
312 "S(FR_LABK)": {
313 "key": "FR_RABK",
314 "label": ">",
315 }
316 "S(FR_DOT)": {
317 "key": "FR_QUES",
318 "label": "?",
319 }
320 "S(FR_COMM)": {
321 "key": "FR_EXLM",
322 "label": "!",
323 }
324 "S(FR_COLN)": {
325 "key": "FR_ELLP",
326 "label": "…",
327 }
328 "S(FR_SCLN)": {
329 "key": "FR_EQL",
330 "label": "=",
331 }
332/* AltGr symbols
333 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
334 * │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │
335 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
336 * │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │
337 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
338 * │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │
339 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
340 * │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │
341 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
342 * │ │ │ │ │ │ │ │ │
343 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
344 */
345 "ALGR(FR_AT)": {
346 "key": "FR_BREV",
347 "label": "˘ (dead)",
348 }
349 "ALGR(FR_AGRV)": {
350 "key": "FR_SECT",
351 "label": "§",
352 }
353 "ALGR(FR_EACU)": {
354 "key": "FR_ACUT",
355 "label": "´ (dead)",
356 }
357 "ALGR(FR_EGRV)": {
358 "key": "FR_GRV",
359 "label": "` (dead)",
360 }
361 "ALGR(FR_ECIR)": {
362 "key": "FR_AMPR",
363 "label": "&",
364 }
365 "ALGR(FR_LPRN)": {
366 "key": "FR_LBRC",
367 "label": "[",
368 }
369 "ALGR(FR_RPRN)": {
370 "key": "FR_RBRC",
371 "label": "]",
372 }
373 "ALGR(FR_LSQU)": {
374 "key": "FR_MACR",
375 "label": "¯ (dead)",
376 }
377 "ALGR(FR_RSQU)": {
378 "key": "FR_UNDS",
379 "label": "_",
380 }
381 "ALGR(FR_LDAQ)": {
382 "key": "FR_LDQU",
383 "label": "“",
384 }
385 "ALGR(FR_RDAQ)": {
386 "key": "FR_RDQU",
387 "label": "”",
388 }
389 "ALGR(FR_QUOT)": {
390 "key": "FR_DEG",
391 "label": "°",
392 }
393 "ALGR(FR_DCIR)": {
394 "key": "FR_CARN",
395 "label": "ˇ (dead)",
396 }
397 "ALGR(FR_A)": {
398 "key": "FR_AE",
399 "label": "æ",
400 }
401 "ALGR(FR_Z)": {
402 "key": "FR_PND",
403 "label": "£",
404 }
405 "ALGR(FR_E)": {
406 "key": "FR_EURO",
407 "label": "€",
408 }
409 "ALGR(FR_R)": {
410 "key": "FR_REGD",
411 "label": "®",
412 }
413 "ALGR(FR_T)": {
414 "key": "FR_LCBR",
415 "label": "{",
416 }
417 "ALGR(FR_Y)": {
418 "key": "FR_RCBR",
419 "label": "}",
420 }
421 "ALGR(FR_U)": {
422 "key": "FR_UGRV",
423 "label": "ù",
424 }
425 "ALGR(FR_I)": {
426 "key": "FR_DOTA",
427 "label": "˙ (dead)",
428 }
429 "ALGR(FR_O)": {
430 "key": "FR_OE",
431 "label": "œ",
432 }
433 "ALGR(FR_P)": {
434 "key": "FR_PERC",
435 "label": "%",
436 }
437 "ALGR(FR_MINS)": {
438 "key": "FR_MMNS",
439 "label": "−",
440 }
441 "ALGR(FR_PLUS)": {
442 "key": "FR_DAGG",
443 "label": "†",
444 }
445 "ALGR(FR_Q)": {
446 "key": "FR_THET",
447 "label": "θ",
448 }
449 "ALGR(FR_S)": {
450 "key": "FR_SS",
451 "label": "ß",
452 }
453 "ALGR(FR_D)": {
454 "key": "FR_DLR",
455 "label": "$",
456 }
457 "ALGR(FR_F)": {
458 "key": "FR_CURR",
459 "label": "¤ (dead monetary key)",
460 }
461 "ALGR(FR_G)": {
462 "key": "FR_DGRK",
463 "label": "µ (dead Greek key)",
464 }
465 "ALGR(FR_H)": {
466 "key": "FR_EU",
467 "label": "Eu (dead European symbol key)",
468 }
469 "ALGR(FR_K)": {
470 "key": "FR_DSLS",
471 "label": "∕ (dead)",
472 }
473 "ALGR(FR_L)": {
474 "key": "FR_PIPE",
475 "label": "|",
476 }
477 "ALGR(FR_M)": {
478 "key": "FR_INFN",
479 "label": "∞",
480 }
481 "ALGR(FR_SLSH)": {
482 "key": "FR_DIV",
483 "label": "÷",
484 }
485 "ALGR(FR_ASTR)": {
486 "key": "FR_MUL",
487 "label": "×",
488 }
489 "ALGR(FR_LABK)": {
490 "key": "FR_LEQL",
491 "label": "≤",
492 }
493 "ALGR(FR_W)": {
494 "key": "FR_EZH",
495 "label": "ʒ",
496 }
497 "ALGR(FR_X)": {
498 "key": "FR_COPY",
499 "label": "©",
500 }
501 "ALGR(FR_C)": {
502 "key": "FR_CCED",
503 "label": "ç",
504 }
505 "ALGR(FR_V)": {
506 "key": "FR_CEDL",
507 "label": "¸ (dead)",
508 }
509 "ALGR(FR_B)": {
510 "key": "FR_DMNS",
511 "label": "− (dead)",
512 }
513 "ALGR(FR_N)": {
514 "key": "FR_DTIL",
515 "label": "~ (dead)",
516 }
517 "ALGR(FR_DOT)": {
518 "key": "FR_IQUE",
519 "label": "¿",
520 }
521 "ALGR(FR_COMM)": {
522 "key": "FR_IEXL",
523 "label": "¡",
524 }
525 "ALGR(FR_COLN)": {
526 "key": "FR_MDDT",
527 "label": "·",
528 }
529 "ALGR(FR_SCLN)": {
530 "key": "FR_AEQL",
531 "label": "≃",
532 }
533/* Shift+AltGr symbols
534 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
535 * │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │
536 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
537 * │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │
538 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
539 * │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │
540 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
541 * │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │
542 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
543 * │ │ │ │ │ │ │ │ │
544 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
545 */
546 "S(ALGR(FR_AT))": {
547 "key": "FR_IBRV",
548 "label": "̑ (dead)",
549 }
550 "S(ALGR(FR_LPRN))": {
551 "key": "FR_DACU",
552 "label": "˝ (dead)",
553 }
554 "S(ALGR(FR_RPRN))": {
555 "key": "FR_DGRV",
556 "label": "̏ (dead)",
557 }
558 "S(ALGR(FR_RSQU))": {
559 "key": "FR_MDSH",
560 "label": "—",
561 }
562 "S(ALGR(FR_LDAQ))": {
563 "key": "FR_LSAQ",
564 "label": "‹",
565 }
566 "S(ALGR(FR_RDAQ))": {
567 "key": "FR_RSAQ",
568 "label": "›",
569 }
570 "S(ALGR(FR_QUOT))": {
571 "key": "FR_RNGA",
572 "label": "˚ (dead)",
573 }
574 "S(ALGR(FR_T))": {
575 "key": "FR_TM",
576 "label": "™",
577 }
578 "S(ALGR(FR_I))": {
579 "key": "FR_DOTB",
580 "label": "̣ (dead)",
581 }
582 "S(ALGR(FR_P))": {
583 "key": "FR_PERM",
584 "label": "‰",
585 }
586 "S(ALGR(FR_MINS))": {
587 "key": "FR_NBHY",
588 "label": "‑ (non-breaking hyphen)",
589 }
590 "S(ALGR(FR_PLUS))": {
591 "key": "FR_DDAG",
592 "label": "‡",
593 }
594 "S(ALGR(FR_H))": {
595 "key": "FR_MACB",
596 "label": "ˍ (dead)",
597 }
598 "S(ALGR(FR_SLSH))": {
599 "key": "FR_SQRT",
600 "label": "√",
601 }
602 "S(ALGR(FR_ASTR))": {
603 "key": "FR_QRTR",
604 "label": "¼",
605 }
606 "S(ALGR(FR_LABK))": {
607 "key": "FR_GEQL",
608 "label": "≥",
609 }
610 "S(ALGR(FR_V))": {
611 "key": "FR_OGON",
612 "label": "˛ (dead)",
613 }
614 "S(ALGR(FR_COMM))": {
615 "key": "FR_DCMM",
616 "label": "̦ (dead)",
617 }
618 "S(ALGR(FR_SCLN))": {
619 "key": "FR_NEQL",
620 "label": "≠",
621 }
622 }
623}