aboutsummaryrefslogtreecommitdiffstats
path: root/quantum/keymap_extras/keymap_french_osx.h
blob: d0132a2d855ca617dab47c16d3091ddded3fa85f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
/* Copyright 2016 Sébastien Pérochon
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include "keymap.h"

// clang-format off

/*
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
 * │ @ │ & │ é │ " │ ' │ ( │ § │ è │ ! │ ç │ à │ ) │ - │     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
 * │     │ A │ Z │ E │ R │ T │ Y │ U │ I │ O │ P │ ^ │ $ │   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
 * │      │ Q │ S │ D │ F │ G │ H │ J │ K │ L │ M │ ù │ ` │  │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
 * │    │ < │ W │ X │ C │ V │ B │ N │ , │ ; │ : │ = │        │
 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
 * │     │    │     │                       │     │    │     │
 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
 */
// Row 1
#define FR_AT   KC_GRV  // @
#define FR_AMPR KC_1    // &
#define FR_LEAC KC_2    // é
#define FR_DQUO KC_3    // "
#define FR_QUOT KC_4    // '
#define FR_LPRN KC_5    // (
#define FR_SECT KC_6    // §
#define FR_LEGR KC_7    // è
#define FR_EXLM KC_8    // !
#define FR_LCCE KC_9    // ç
#define FR_LAGR KC_0    // à
#define FR_RPRN KC_MINS // )
#define FR_MINS KC_EQL  // -
// Row 2
#define FR_A    KC_Q    // A
#define FR_Z    KC_W    // Z
#define FR_E    KC_E    // E
#define FR_R    KC_R    // R
#define FR_T    KC_T    // T
#define FR_Y    KC_Y    // Y
#define FR_U    KC_U    // U
#define FR_I    KC_I    // I
#define FR_O    KC_O    // O
#define FR_P    KC_P    // P
#define FR_CIRC KC_LBRC // ^
#define FR_DLR  KC_RBRC // $
// Row 3
#define FR_Q    KC_A    // Q
#define FR_S    KC_S    // S
#define FR_D    KC_D    // D
#define FR_F    KC_F    // F
#define FR_G    KC_G    // G
#define FR_H    KC_H    // H
#define FR_J    KC_J    // J
#define FR_K    KC_K    // K
#define FR_L    KC_L    // L
#define FR_M    KC_SCLN // M
#define FR_LUGR KC_QUOT // ù
#define FR_GRV  KC_NUHS // `
// Row 4
#define FR_LABK KC_NUBS // <
#define FR_W    KC_Z    // W
#define FR_X    KC_X    // X
#define FR_C    KC_C    // C
#define FR_V    KC_V    // V
#define FR_B    KC_B    // B
#define FR_N    KC_N    // N
#define FR_COMM KC_M    // ,
#define FR_SCLN KC_COMM // ;
#define FR_COLN KC_DOT  // :
#define FR_EQL  KC_SLSH // =

/* Shifted symbols
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
 * │ # │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ ° │ _ │     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
 * │     │   │   │   │   │   │   │   │   │   │   │ ¨ │ * │   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
 * │      │   │   │   │   │   │   │   │   │   │   │ % │ £ │  │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
 * │    │ > │   │   │   │   │   │   │ ? │ . │ / │ + │        │
 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
 * │     │    │     │                       │     │    │     │
 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
 */
// Row 1
#define FR_HASH S(FR_AT)   // #
#define FR_1    S(FR_AMPR) // 1
#define FR_2    S(FR_LEAC) // 2
#define FR_3    S(FR_DQUO) // 3
#define FR_4    S(FR_QUOT) // 4
#define FR_5    S(FR_LPRN) // 5
#define FR_6    S(FR_SECT) // 6
#define FR_7    S(FR_LEGR) // 7
#define FR_8    S(FR_EXLM) // 8
#define FR_9    S(FR_LCCE) // 9
#define FR_0    S(FR_LAGR) // 0
#define FR_DEG  S(FR_RPRN) // °
#define FR_UNDS S(FR_MINS) // _
// Row 2
#define FR_DIAE S(FR_CIRC) // ¨ (dead)
#define FR_ASTR S(FR_DLR)  // *
// Row 3
#define FR_PERC S(FR_LUGR) // %
#define FR_PND  S(FR_GRV)  // £
// Row 4
#define FR_RABK S(FR_LABK) // >
#define FR_QUES S(FR_COMM) // ?
#define FR_DOT  S(FR_SCLN) // .
#define FR_SLSH S(FR_COLN) // /
#define FR_PLUS S(FR_EQL)  // +

/* Alted symbols
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
 * │ • │  │ ë │ “ │ ‘ │ { │ ¶ │ « │ ¡ │ Ç │ Ø │ } │ — │     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
 * │     │ Æ │ Â │ Ê │ ® │ † │ Ú │ º │ î │ Œ │ π │ Ô │ € │   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
 * │      │ ‡ │ Ò │ ∂ │ ƒ │ fi │ Ì │ Ï │ È │ ¬ │ µ │ Ù │   │  │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
 * │    │ ≤ │ ‹ │ ≈ │ © │ ◊ │ ß │ ~ │ ∞ │ … │ ÷ │ ≠ │        │
 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
 * │     │    │     │                       │     │    │     │
 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
 */
// Row 1
#define FR_BULT A(FR_AT)   // •
#define FR_APPL A(FR_AMPR) //  (Apple logo)
#define FR_LEDI A(FR_LEAC) // ë
#define FR_LDQU A(FR_DQUO) // “
#define FR_LSQU A(FR_QUOT) // ‘
#define FR_LCBR A(FR_LPRN) // {
#define FR_PILC A(FR_SECT) // ¶
#define FR_LDAQ A(FR_LEGR) // «
#define FR_IEXL A(FR_EXLM) // ¡
#define FR_CCCE A(FR_LCCE) // Ç
#define FR_OSTR A(FR_LAGR) // Ø
#define FR_RCBR A(FR_RPRN) // }
#define FR_MDSH A(FR_MINS) // —
// Row 2
#define FR_AE   A(FR_A)    // Æ
#define FR_CACI A(FR_Z)    // Â
#define FR_ECIR A(FR_E)    // Ê
#define FR_REGD A(FR_R)    // ®
#define FR_DAGG A(FR_T)    // †
#define FR_CUAC A(FR_Y)    // Ú
#define FR_MORD A(FR_U)    // º
#define FR_LICI A(FR_I)    // î
#define FR_OE   A(FR_O)    // Œ
#define FR_PI   A(FR_P)    // π
#define FR_OCIR A(FR_CIRC) // Ô
#define FR_EURO A(FR_DLR)  // €
// Row 3
#define FR_DDAG A(FR_Q)    // ‡
#define FR_COGR A(FR_S)    // Ò
#define FR_PDIF A(FR_D)    // ∂
#define FR_FHK  A(FR_F)    // ƒ
#define FR_FI   A(FR_G)    // fi
#define FR_CIGR A(FR_H)    // Ì
#define FR_CIDI A(FR_J)    // Ï
#define FR_CEGR A(FR_K)    // È
#define FR_NOT  A(FR_L)    // ¬
#define FR_MICR A(FR_M)    // µ
#define FR_CUGR A(FR_LUGR) // Ù
// Row 4
#define FR_LTEQ A(FR_LABK) // ≤
#define FR_LSAQ A(FR_W)    // ‹
#define FR_AEQL A(FR_X)    // ≈
#define FR_COPY A(FR_C)    // ©
#define FR_LOZN A(FR_V)    // ◊
#define FR_SS   A(FR_B)    // ß
#define FR_TILD A(FR_N)    // ~ (dead)
#define FR_INFN A(FR_COMM) // ∞
#define FR_ELLP A(FR_SCLN) // …
#define FR_DIV  A(FR_COLN) // ÷
#define FR_NEQL A(FR_EQL)  // ≠

/* Shift+Alted symbols
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
 * │ Ÿ │ ´ │ „ │   │   │ [ │ å │ » │ Û │ Á │   │ ] │ – │     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤
 * │     │   │ Å │   │ ‚ │ ™ │   │ ª │ ï │   │ ∏ │   │ ¥ │   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐  │
 * │      │ Ω │ ∑ │ ∆ │ · │ fl │ Î │ Í │ Ë │ | │ Ó │ ‰ │   │  │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴──┤
 * │    │ ≥ │ › │ ⁄ │ ¢ │ √ │ ∫ │ ı │ ¿ │   │ \ │ ± │        │
 * ├────┴┬──┴─┬─┴───┼───┴───┴───┴───┴───┴───┼───┴─┬─┴──┬─────┤
 * │     │    │     │                       │     │    │     │
 * └─────┴────┴─────┴───────────────────────┴─────┴────┴─────┘
 */
// Row 1
#define FR_CYDI S(A(FR_AT))   // Ÿ
#define FR_ACUT S(A(FR_AMPR)) // ´ (dead)
#define FR_DLQU S(A(FR_LEAC)) // „
#define FR_LBRC S(A(FR_LPRN)) // [
#define FR_LARI S(A(FR_SECT)) // å
#define FR_RDAQ S(A(FR_LEGR)) // »
#define FR_CUCI S(A(FR_EXLM)) // Û
#define FR_CAAC S(A(FR_LCCE)) // Á
#define FR_RBRC S(A(FR_RPRN)) // ]
#define FR_NDSH S(A(FR_MINS)) // –
// Row 2
#define FR_CARI S(A(FR_Z))    // Å
#define FR_SLQU S(A(FR_R))    // ‚
#define FR_TM   S(A(FR_T))    // ™
#define FR_FORD S(A(FR_U))    // ª
#define FR_LIDI S(A(FR_I))    // ï
#define FR_NARP S(A(FR_P))    // ∏
#define FR_YEN  S(A(FR_DLR))  // ¥
// Row 3
#define FR_OMEG S(A(FR_Q))    // Ω
#define FR_NARS S(A(FR_S))    // ∑
#define FR_INCR S(A(FR_D))    // ∆
#define FR_MDDT S(A(FR_F))    // ·
#define FR_FL   S(A(FR_G))    // fl
#define FR_CICI S(A(FR_H))    // Î
#define FR_CIAC S(A(FR_J))    // Í
#define FR_CEDI S(A(FR_K))    // Ë
#define FR_PIPE S(A(FR_L))    // |
#define FR_COAC S(A(FR_M))    // Ó
#define FR_PERM S(A(FR_LUGR)) // ‰
// Row 4
#define FR_GTEQ S(A(FR_LABK)) // ≥
#define FR_LSAQ S(A(FR_W))    // ›
#define FR_FRSL S(A(FR_X))    // ⁄
#define FR_CENT S(A(FR_C))    // ¢
#define FR_SQRT S(A(FR_V))    // √
#define FR_INTG S(A(FR_B))    // ∫
#define FR_DLSI S(A(FR_N))    // ı
#define FR_IQUE S(A(FR_COMM)) // ¿
#define FR_BSLS S(A(FR_COLN)) // (backslash)
#define FR_PLMN S(A(FR_EQL))  // ±

// DEPRECATED
#define FR_AMP  FR_AMPR
#define FR_EACU FR_LEAC
#define FR_APOS FR_QUOT
#define FR_EGRV FR_LEGR
#define FR_CCED FR_LCCE
#define FR_AGRV FR_LAGR
#define FR_UGRV FR_LUGR
#define FR_LESS FR_LABK
#define FR_UMLT FR_DIAE
#define FR_GRTR FR_RABK