summaryrefslogtreecommitdiff
path: root/quantum/keymap_extras/keymap_french_afnor.h
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2022-12-21 23:35:23 +0000
committerGitHub <noreply@github.com>2022-12-21 23:35:23 +0000
commite5721bbd37fcb0372fd007caae5a3f2aed060479 (patch)
tree68bfcddfb400d00cbbea3d14e5a3b1c90492218c /quantum/keymap_extras/keymap_french_afnor.h
parent89b72017a014ca4810790831030c88054129f21c (diff)
Remaining DD keymap_extras migration (#19110)
* Parse headers to data * Regen headers from data
Diffstat (limited to 'quantum/keymap_extras/keymap_french_afnor.h')
-rw-r--r--quantum/keymap_extras/keymap_french_afnor.h143
1 files changed, 28 insertions, 115 deletions
diff --git a/quantum/keymap_extras/keymap_french_afnor.h b/quantum/keymap_extras/keymap_french_afnor.h
index 4b7961724f..46f64bfb98 100644
--- a/quantum/keymap_extras/keymap_french_afnor.h
+++ b/quantum/keymap_extras/keymap_french_afnor.h
@@ -1,63 +1,33 @@
1/* Copyright 2020 Guillaume Gérard 1// Copyright 2022 QMK
2 * 2// SPDX-License-Identifier: GPL-2.0-or-later
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 3
17/* French AZERTY - AFNOR NF Z71-300 4/*******************************************************************************
18 * 5 88888888888 888 d8b .d888 d8b 888 d8b
19 * A standard for the French keyboard 6 888 888 Y8P d88P" Y8P 888 Y8P
20 * 7 888 888 888 888
21 * The project was launched at the end of 2015 on the proposal of the General 8 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
22 * Delegation for the French language and the languages of France (Ministry 9 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
23 * of Culture), starting from the observation that the current "azerty" 10 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
24 * keyboards constrain the writing of French, languages regional and European 11 888 888 888 888 X88 888 888 888 Y8b. 888 X88
25 * languages with Latin alphabet. 12 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
26 * 13 888 888
27 * For the first time, a standard (NF Z71-300) defines the placement of 14 888 888
28 * characters on the French keyboard. It offers two layouts, one of which 15 888 888
29 * closely follows the QWERTY keyboard used by most people who write in French. 16 .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
30 * 17 d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
31 * However, it is in many ways superior to the old keyboard: 18 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
32 * 19 Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
33 * - it contains all the characters required to enter text in French (for example É, œ and ") 20 "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
34 * - it is designed to be more ergonomic and allow faster typing 21 888
35 * - it includes almost 60 additional characters for entering foreign languages, technical content, etc 22 Y8b d88P
36 * - however, the characters remain easy to locate thanks to intuitive groupings 23 "Y88P"
37 * 24*******************************************************************************/
38 * Source: https://norme-azerty.fr
39 */
40 25
41#pragma once 26#pragma once
42
43#include "keymap.h" 27#include "keymap.h"
44
45// clang-format off 28// clang-format off
46 29
47/* 30// Aliases
48 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
49 * │ @ │ à │ é │ è │ ê │ ( │ ) │ ‘ │ ’ │ « │ » │ ' │ ^ │ │
50 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
51 * │ │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ - │ + │ │
52 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
53 * │ │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ / │ * │ │
54 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
55 * │ │ < │ W │ X │ C │ V │ B │ N │ . │ , │ : │ ; │ │
56 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
57 * │ │ │ │ │ │ │ │ │
58 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
59 */
60// Row 1
61#define FR_AT KC_GRV // @ 31#define FR_AT KC_GRV // @
62#define FR_AGRV KC_1 // à 32#define FR_AGRV KC_1 // à
63#define FR_EACU KC_2 // é 33#define FR_EACU KC_2 // é
@@ -71,7 +41,6 @@
71#define FR_RDAQ KC_0 // » 41#define FR_RDAQ KC_0 // »
72#define FR_QUOT KC_MINS // ' 42#define FR_QUOT KC_MINS // '
73#define FR_DCIR KC_EQL // ^ (dead) 43#define FR_DCIR KC_EQL // ^ (dead)
74// Row 2
75#define FR_A KC_Q // A 44#define FR_A KC_Q // A
76#define FR_Z KC_W // Z 45#define FR_Z KC_W // Z
77#define FR_E KC_E // E 46#define FR_E KC_E // E
@@ -84,7 +53,6 @@
84#define FR_P KC_P // P 53#define FR_P KC_P // P
85#define FR_MINS KC_LBRC // - 54#define FR_MINS KC_LBRC // -
86#define FR_PLUS KC_RBRC // + 55#define FR_PLUS KC_RBRC // +
87// Row 3
88#define FR_Q KC_A // Q 56#define FR_Q KC_A // Q
89#define FR_S KC_S // S 57#define FR_S KC_S // S
90#define FR_D KC_D // D 58#define FR_D KC_D // D
@@ -97,7 +65,6 @@
97#define FR_M KC_SCLN // M 65#define FR_M KC_SCLN // M
98#define FR_SLSH KC_QUOT // / 66#define FR_SLSH KC_QUOT // /
99#define FR_ASTR KC_NUHS // * 67#define FR_ASTR KC_NUHS // *
100// Row 4
101#define FR_LABK KC_NUBS // < 68#define FR_LABK KC_NUBS // <
102#define FR_W KC_Z // W 69#define FR_W KC_Z // W
103#define FR_X KC_X // X 70#define FR_X KC_X // X
@@ -109,21 +76,6 @@
109#define FR_COMM KC_COMM // , 76#define FR_COMM KC_COMM // ,
110#define FR_COLN KC_DOT // : 77#define FR_COLN KC_DOT // :
111#define FR_SCLN KC_SLSH // ; 78#define FR_SCLN KC_SLSH // ;
112
113/* Shifted symbols
114 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
115 * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ " │ ¨ │ │
116 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
117 * │ │ │ │ │ │ │ │ │ │ │ │ – │ ± │ │
118 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
119 * │ │ │ │ │ │ │ │ │ │ │ │ \ │ ½ │ │
120 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
121 * │ │ > │ │ │ │ │ │ │ ? │ ! │ … │ = │ │
122 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
123 * │ │ │ │ │ │ │ │ │
124 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
125 */
126// Row 1
127#define FR_HASH S(FR_AT) // # 79#define FR_HASH S(FR_AT) // #
128#define FR_1 S(FR_AGRV) // 1 80#define FR_1 S(FR_AGRV) // 1
129#define FR_2 S(FR_EACU) // 2 81#define FR_2 S(FR_EACU) // 2
@@ -137,33 +89,15 @@
137#define FR_0 S(FR_RDAQ) // 0 89#define FR_0 S(FR_RDAQ) // 0
138#define FR_DQUO S(FR_QUOT) // " 90#define FR_DQUO S(FR_QUOT) // "
139#define FR_DIAE S(FR_DCIR) // ¨ (dead) 91#define FR_DIAE S(FR_DCIR) // ¨ (dead)
140// Row 2
141#define FR_NDSH S(FR_MINS) // – 92#define FR_NDSH S(FR_MINS) // –
142#define FR_PLMN S(FR_PLUS) // ± 93#define FR_PLMN S(FR_PLUS) // ±
143// Row 3
144#define FR_BSLS S(FR_SLSH) // (backslash) 94#define FR_BSLS S(FR_SLSH) // (backslash)
145#define FR_HALF S(FR_ASTR) // ½ 95#define FR_HALF S(FR_ASTR) // ½
146// Row 4
147#define FR_RABK S(FR_LABK) // > 96#define FR_RABK S(FR_LABK) // >
148#define FR_QUES S(FR_DOT) // ? 97#define FR_QUES S(FR_DOT) // ?
149#define FR_EXLM S(FR_COMM) // ! 98#define FR_EXLM S(FR_COMM) // !
150#define FR_ELLP S(FR_COLN) // … 99#define FR_ELLP S(FR_COLN) // …
151#define FR_EQL S(FR_SCLN) // = 100#define FR_EQL S(FR_SCLN) // =
152
153/* AltGr symbols
154 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
155 * │ ˘ │ § │ ´ │ ` │ & │ [ │ ] │ ¯ │ _ │ “ │ ” │ ° │ ˇ │ │
156 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
157 * │ │ æ │ £ │ € │ ® │ { │ } │ ù │ ˙ │ œ │ % │ − │ † │ │
158 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
159 * │ │ θ │ ß │ $ │ ¤ │ µ │ Eu│ │ ∕ │ | │ ∞ │ ÷ │ × │ │
160 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
161 * │ │ ≤ │ ʒ │ © │ ç │ ¸ │ − │ ~ │ ¿ │ ¡ │ · │ ≃ │ │
162 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
163 * │ │ │ │ │ │ │ │ │
164 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
165 */
166// Row 1
167#define FR_BREV ALGR(FR_AT) // ˘ (dead) 101#define FR_BREV ALGR(FR_AT) // ˘ (dead)
168#define FR_SECT ALGR(FR_AGRV) // § 102#define FR_SECT ALGR(FR_AGRV) // §
169#define FR_ACUT ALGR(FR_EACU) // ´ (dead) 103#define FR_ACUT ALGR(FR_EACU) // ´ (dead)
@@ -177,7 +111,6 @@
177#define FR_RDQU ALGR(FR_RDAQ) // ” 111#define FR_RDQU ALGR(FR_RDAQ) // ”
178#define FR_DEG ALGR(FR_QUOT) // ° 112#define FR_DEG ALGR(FR_QUOT) // °
179#define FR_CARN ALGR(FR_DCIR) // ˇ (dead) 113#define FR_CARN ALGR(FR_DCIR) // ˇ (dead)
180// Row 2
181#define FR_AE ALGR(FR_A) // æ 114#define FR_AE ALGR(FR_A) // æ
182#define FR_PND ALGR(FR_Z) // £ 115#define FR_PND ALGR(FR_Z) // £
183#define FR_EURO ALGR(FR_E) // € 116#define FR_EURO ALGR(FR_E) // €
@@ -190,7 +123,6 @@
190#define FR_PERC ALGR(FR_P) // % 123#define FR_PERC ALGR(FR_P) // %
191#define FR_MMNS ALGR(FR_MINS) // − 124#define FR_MMNS ALGR(FR_MINS) // −
192#define FR_DAGG ALGR(FR_PLUS) // † 125#define FR_DAGG ALGR(FR_PLUS) // †
193// Row 3
194#define FR_THET ALGR(FR_Q) // θ 126#define FR_THET ALGR(FR_Q) // θ
195#define FR_SS ALGR(FR_S) // ß 127#define FR_SS ALGR(FR_S) // ß
196#define FR_DLR ALGR(FR_D) // $ 128#define FR_DLR ALGR(FR_D) // $
@@ -202,7 +134,6 @@
202#define FR_INFN ALGR(FR_M) // ∞ 134#define FR_INFN ALGR(FR_M) // ∞
203#define FR_DIV ALGR(FR_SLSH) // ÷ 135#define FR_DIV ALGR(FR_SLSH) // ÷
204#define FR_MUL ALGR(FR_ASTR) // × 136#define FR_MUL ALGR(FR_ASTR) // ×
205// Row 4
206#define FR_LEQL ALGR(FR_LABK) // ≤ 137#define FR_LEQL ALGR(FR_LABK) // ≤
207#define FR_EZH ALGR(FR_W) // ʒ 138#define FR_EZH ALGR(FR_W) // ʒ
208#define FR_COPY ALGR(FR_X) // © 139#define FR_COPY ALGR(FR_X) // ©
@@ -214,40 +145,22 @@
214#define FR_IEXL ALGR(FR_COMM) // ¡ 145#define FR_IEXL ALGR(FR_COMM) // ¡
215#define FR_MDDT ALGR(FR_COLN) // · 146#define FR_MDDT ALGR(FR_COLN) // ·
216#define FR_AEQL ALGR(FR_SCLN) // ≃ 147#define FR_AEQL ALGR(FR_SCLN) // ≃
217 148#define FR_IBRV S(ALGR(FR_AT)) // ̑ (dead)
218/* Shift+AltGr symbols
219 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
220 * │ ̑ │ │ │ │ │ ˝ │ ̏ │ │ — │ ‹ │ › │ ˚ │ │ │
221 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
222 * │ │ │ │ │ │ ™ │ │ │ ̣ │ │ ‰ │ ‑ │ ‡ │ │
223 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
224 * │ │ │ │ │ │ │ ˍ │ │ │ │ │ √ │ ¼ │ │
225 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
226 * │ │ ≥ │ │ │ │ ˛ │ │ │ │ ̦ │ │ ≠ │ │
227 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
228 * │ │ │ │ │ │ │ │ │
229 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
230 */
231// Row 1
232#define FR_IBRV S(ALGR(FR_AT)) // ̑ (dead)
233#define FR_DACU S(ALGR(FR_LPRN)) // ˝ (dead) 149#define FR_DACU S(ALGR(FR_LPRN)) // ˝ (dead)
234#define FR_DGRV S(ALGR(FR_RPRN)) // ̏ (dead) 150#define FR_DGRV S(ALGR(FR_RPRN)) // ̏ (dead)
235#define FR_MDSH S(ALGR(FR_RSQU)) // — 151#define FR_MDSH S(ALGR(FR_RSQU)) // —
236#define FR_LSAQ S(ALGR(FR_LDAQ)) // ‹ 152#define FR_LSAQ S(ALGR(FR_LDAQ)) // ‹
237#define FR_RSAQ S(ALGR(FR_RDAQ)) // › 153#define FR_RSAQ S(ALGR(FR_RDAQ)) // ›
238#define FR_RNGA S(ALGR(FR_QUOT)) // ˚ (dead) 154#define FR_RNGA S(ALGR(FR_QUOT)) // ˚ (dead)
239// Row 2
240#define FR_TM S(ALGR(FR_T)) // ™ 155#define FR_TM S(ALGR(FR_T)) // ™
241#define FR_DOTB S(ALGR(FR_I)) // ̣ (dead) 156#define FR_DOTB S(ALGR(FR_I)) // ̣ (dead)
242#define FR_PERM S(ALGR(FR_P)) // ‰ 157#define FR_PERM S(ALGR(FR_P)) // ‰
243#define FR_NBHY S(ALGR(FR_MINS)) // ‑ (non-breaking hyphen) 158#define FR_NBHY S(ALGR(FR_MINS)) // ‑ (non-breaking hyphen)
244#define FR_DDAG S(ALGR(FR_PLUS)) // ‡ 159#define FR_DDAG S(ALGR(FR_PLUS)) // ‡
245// Row 3
246#define FR_MACB S(ALGR(FR_H)) // ˍ (dead) 160#define FR_MACB S(ALGR(FR_H)) // ˍ (dead)
247#define FR_SQRT S(ALGR(FR_SLSH)) // √ 161#define FR_SQRT S(ALGR(FR_SLSH)) // √
248#define FR_QRTR S(ALGR(FR_ASTR)) // ¼ 162#define FR_QRTR S(ALGR(FR_ASTR)) // ¼
249// Row 4
250#define FR_GEQL S(ALGR(FR_LABK)) // ≥ 163#define FR_GEQL S(ALGR(FR_LABK)) // ≥
251#define FR_OGON S(ALGR(FR_V)) // ˛ (dead) 164#define FR_OGON S(ALGR(FR_V)) // ˛ (dead)
252#define FR_DCMM S(ALGR(FR_COMM)) // ̦ (dead) 165#define FR_DCMM S(ALGR(FR_COMM)) // ̦ (dead)
253#define FR_NEQL S(ALGR(FR_SCLN)) // ≠ 166#define FR_NEQL S(ALGR(FR_SCLN)) // ≠