fr revision 1.1.1.15 1 default partial alphanumeric_keys
2 xkb_symbols "basic" {
3
4 include "latin"
5
6 name[Group1]="French";
7
8 key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
9 key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
10 key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
11 key <AE04> { [apostrophe, 4, braceleft, dollar ] };
12 key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
13 key <AE06> { [ minus, 6, bar, fiveeighths ] };
14 key <AE07> { [ egrave, 7, grave, seveneighths ] };
15 key <AE08> { [underscore, 8, backslash, trademark ] };
16 key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
17 key <AE10> { [ agrave, 0, at, degree ] };
18 key <AE11> { [parenright, degree, bracketright, questiondown ] };
19 key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
20
21 key <AD01> { [ a, A, ae, AE ] };
22 key <AD02> { [ z, Z, guillemotleft, less ] };
23 key <AD03> { [ e, E, EuroSign, cent ] };
24 key <AD11> { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
25 key <AD12> { [ dollar, sterling, currency, dead_macron ] };
26
27 key <AC01> { [ q, Q, at, Greek_OMEGA ] };
28 key <AC10> { [ m, M, mu, masculine ] };
29 key <AC11> { [ ugrave, percent, dead_circumflex, dead_caron] };
30 key <TLDE> { [twosuperior, asciitilde, notsign, notsign ] };
31
32 key <BKSL> { [ asterisk, mu, dead_grave, dead_breve ] };
33 key <AB01> { [ w, W, lstroke, Lstroke ] };
34 key <AB07> { [ comma, question, dead_acute, dead_doubleacute ] };
35 key <AB08> { [ semicolon, period, horizconnector, multiply ] };
36 key <AB09> { [ colon, slash, periodcentered, division ] };
37 key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
38
39 include "level3(ralt_switch)"
40 };
41
42 partial alphanumeric_keys
43 xkb_symbols "olpc" {
44 // Contact: Sayamindu Dasgupta <sayamindu (a] laptop.org>
45 include "fr(basic)"
46
47 name[Group1]="French";
48
49 key <I219> { [ less, greater ] };
50 key <AD11> { [ dead_circumflex, dead_diaeresis, notsign, dead_abovering ] };
51 key <AB08> { [ semicolon, period, underscore, multiply ] };
52 key <TLDE> { [ twosuperior, asciitilde, VoidSymbol, VoidSymbol ] };
53
54 // Some keys only have the Shift+AltGr character printed on them (alongside
55 // the unmodified one). Make such keys shift-invariant so that the printed
56 // value is achieved by pressing AltGr or Shift+AltGr.
57 key <AB02> { [ x, X, guillemotright, guillemotright ] };
58 key <AC02> { [ s, S, ssharp, U1E9E ] };
59 key <AD02> { [ z, Z, guillemotleft, guillemotleft ] };
60 };
61
62 partial alphanumeric_keys
63 xkb_symbols "Sundeadkeys" {
64
65 // Modifies the basic French layout to use the Sun dead keys
66
67 include "fr(basic)"
68
69 key <AD11> { [dead_circumflex, dead_diaeresis ] };
70 key <AB07> { [comma, question, dead_acute, dead_doubleacute ] };
71 };
72
73 partial alphanumeric_keys
74 xkb_symbols "sundeadkeys" {
75 include "fr(Sundeadkeys)"
76
77 name[Group1]="French (with Sun dead keys)";
78 };
79
80 partial alphanumeric_keys
81 xkb_symbols "nodeadkeys" {
82
83 // Modifies the basic French layout to eliminate all dead keys
84
85 include "fr(basic)"
86
87 name[Group1]="French (no dead keys)";
88
89 key <AE12> { [ equal, plus, braceright, ogonek ] };
90 key <AD11> { [asciicircum, diaeresis ] };
91 key <AD12> { [ dollar, sterling, currency, macron ] };
92 key <AC11> { [ ugrave, percent, asciicircum, caron ] };
93 key <BKSL> { [ asterisk, mu, grave, breve ] };
94 key <AB07> { [ comma, question, acute, doubleacute ] };
95 key <AB10> { [ exclam, section, dead_belowdot, abovedot ] };
96 };
97
98
99 // Unicode French derivative
100 // Loose refactoring of the historic Linux French keyboard layout
101 //
102 // Copyright 2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
103 //
104 // Credits (fr-latin1, fr-latin0, fr-latin9)
105 // 199x-1996 Ren Cougnenc
106 // 1997-2002 Guylhem Aznar <clavier @ externe.net>
107 // 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
108 //
109 //
110 // 1 2 3 4 5 6 7 8 9 0 + Retour
111 // & ~ " # ' { ( [ - | ` _ \ ^ @ ) ] = } arrire
112 //
113 // A Z E R T Y U I O P Entre
114 // Tab a z e r t y u i o p ^ ~ $
115 //
116 // Q S D F G H J K L M %
117 // Maj q s d f g h j k l m ' * `
118 //
119 // > W X C V B N ? . . /
120 // Shift < w x c v b n , ; : ! Shift
121 //
122 // Espace fine inscable
123 // Ctrl Meta Alt Espace Espace inscable AltGr Menu Ctrl
124 //
125 partial alphanumeric_keys
126 xkb_symbols "oss" {
127
128 include "latin"
129 include "level3(ralt_switch)"
130 include "nbsp(level4n)"
131 include "keypad(oss)"
132
133 name[Group1]="French (alt.)";
134
135 // First row
136 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; //
137 key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1
138 key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // 2 ~
139 key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 #
140 key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { (tiret cadratin)
141 key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ (tiret demi-cadratin)
142 key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | (tiret inscable)
143 key <AE07> { [ egrave, 7, grave, Egrave ] }; // 7 `
144 key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \
145 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // 9 ^
146 key <AE10> { [ agrave, 0, at, Agrave ] }; // 0 @
147 key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ]
148 key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + }
149
150 // Second row
151 key <AD01> { [ a, A, ae, AE ] }; // a A
152 key <AD02> { [ z, Z, acircumflex, Acircumflex ] }; // z Z
153 key <AD03> { [ e, E, EuroSign, cent ] }; // e E
154 key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R
155 key <AD05> { [ t, T, thorn, THORN ] }; // t T
156 key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y
157 key <AD07> { [ u, U, ucircumflex, Ucircumflex ] }; // u U
158 key <AD08> { [ i, I, icircumflex, Icircumflex ] }; // i I
159 key <AD09> { [ o, O, oe, OE ] }; // o O
160 key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; // p P
161 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^
162 key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $
163
164 // Third row
165 key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q
166 key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S
167 key <AC03> { [ d, D, ediaeresis, Ediaeresis ] }; // d D
168 key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F
169 key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G
170 key <AC06> { [ h, H, eth, ETH ] }; // h H
171 key <AC07> { [ j, J, udiaeresis, Udiaeresis ] }; // j J
172 key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K
173 key <AC09> { [ l, L, 0x1000140, 0x100013F ] }; // l L
174 key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M
175 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // % '
176 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * `
177
178 // Fourth row
179 key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < >
180 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W
181 key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X
182 key <AB03> { [ c, C, copyright, registered ] }; // c C
183 key <AB04> { [ v, V, 0x100202F, leftarrow ] }; // v V (espace fine inscable)
184 key <AB05> { [ b, B, downarrow, uparrow ] }; // b B
185 key <AB06> { [ n, N, notsign, rightarrow ] }; // n N
186 key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ?
187 key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; .
188 key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : /
189 key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // !
190 };
191
192 partial alphanumeric_keys
193 xkb_symbols "oss_latin9" {
194
195 // Restricts the fr(oss) layout to latin9 symbols
196
197 include "fr(oss)"
198 include "keypad(oss_latin9)"
199
200 name[Group1]="French (alt., Latin-9 only)";
201
202 // First row
203 key <AE01> { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1
204 key <AE03> { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~
205 key <AE04> { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _
206 key <AE05> { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ -
207 key <AE06> { [ minus, 6, bar, minus ] }; // - 6 | -
208 key <AE08> { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \
209 key <AE11> { [ parenright, degree, bracketright, equal ] }; // ) ] =
210
211 // Third row
212 key <AC02> { [ s, S, ssharp, guillemotleft ] }; // s S
213 key <AC04> { [ f, F, apostrophe, apostrophe ] }; // f F ' '
214 key <AC05> { [ g, G, apostrophe, yen ] }; // g G '
215 key <AC09> { [ l, L, periodcentered, periodcentered ] }; // l L
216 key <BKSL> { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * ` ^
217
218 // Fourth row
219 key <LSGT> { [ less, greater, less, greater ] }; // < > < >
220 key <AB01> { [ w, W, guillemotleft, guillemotleft ] }; // w W
221 key <AB02> { [ x, X, guillemotright, guillemotright ] }; // x X
222 key <AB04> { [ v, V, nobreakspace, less ] }; // v V < (espace inscable)
223 key <AB05> { [ b, B, minus, asciicircum ] }; // b B - ^
224 key <AB06> { [ n, N, notsign, greater ] }; // n N >
225 key <AB07> { [ comma, question, questiondown, period ] }; // , ? .
226 key <AB08> { [ semicolon, period, multiply, periodcentered ] }; // ; .
227 key <AB09> { [ colon, slash, division, slash ] }; // : / /
228 key <AB10> { [ exclam, section, exclamdown, minus ] }; // ! -
229 };
230
231 partial alphanumeric_keys
232 xkb_symbols "oss_Sundeadkeys" {
233
234 // Modifies the basic fr(oss) layout to use the Sun dead keys
235
236 include "fr(oss)"
237
238 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; //
239
240 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^
241
242 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // % '
243 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * `
244 };
245
246 partial alphanumeric_keys
247 xkb_symbols "oss_sundeadkeys" {
248
249 include "fr(oss_Sundeadkeys)"
250
251 name[Group1]="French (alt., with Sun dead keys)";
252 };
253
254 partial alphanumeric_keys
255 xkb_symbols "oss_nodeadkeys" {
256
257 // Modifies the basic fr(oss) layout to eliminate all dead keys
258
259 include "fr(oss)"
260
261 name[Group1]="French (alt., no dead keys)";
262
263 key <TLDE> { [ twosuperior, threesuperior, onesuperior, cedilla ] }; //
264 key <AE01> { [ ampersand, 1, caron, ogonek ] }; // & 1
265 key <AE03> { [ quotedbl, 3, numbersign, breve ] }; // " 3 #
266
267 key <AD11> { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^
268 key <AC11> { [ ugrave, percent, acute, Ugrave ] }; // % '
269 key <BKSL> { [ asterisk, mu, grave, macron ] }; // * `
270 };
271
272
273 // Historic Linux French keyboard layout (fr-latin9)
274 // Copyright (c) 199x, 2002 Rene Cougnenc (original work)
275 // Guylhem Aznar <clavier @ externe.net> (maintainer)
276 // Nicolas Mailhot <Nicolas.Mailhot @ laposte.net>
277 // (XFree86 submission)
278 //
279 // This layout has long been distributed and refined outside official channels.
280 // To this day it remains more feature-rich and popular than the 'fr' layout.
281 //
282 // This layout is derived from an original version by Guylhem Aznar.
283 // The original version is always available from:
284 // http://en.tldp.org/HOWTO/Francophones-HOWTO.html
285 // and is distributed under a GPL license.
286 //
287 // The author has given permission for this derived version to be distributed
288 // under the standard XFree86 license. He would like all changes to this
289 // version to be sent to him at <clavier @ externe.net>, so he can sync
290 // the identically named linux console map (kbd, linux-console) and his
291 // out-of-tree GPL version.
292 //
293 // Now follows the keyboard design description in French.
294 // (If you can't read it you probably have no business changing this file anyway:)
295 //
296 // Les accents circonflexes des principales voyelles sont obtenus avec
297 // la touche Alt_Gr, les trmas sont obtenus par Alt_Gr + Shift.
298 //
299 // ____ _________ _____________ _______
300 // | S A| S = Shift, A = AltGr + Shift | Imprime | Arrt dfil | Pause |
301 // | s a| s = normal, a = AltGr | Exec | | Halte |
302 //
303 // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
304 // | "| 1 | 2 | 3 ,| 4 '| 5 "| 6 || 7 | 8 | 9 | 0 | | + | <-- |
305 // | "| & '| ~| " #| ' {| ( [| - || `| _ \| ^| @| ) ]| = }| |
306 // ========================================================================
307 // | |<- | A | Z | E | R | T | Y | U | I | O | P '| " `| $ | , |
308 // | ->| | a | z | e | r | t | y | u | i | o | p | ^ ~| | <-' |
309 // =================================================================== |
310 // | | Q | S | D | F | G | H | J | K | L | M | % | | |
311 // | MAJ | q | s | d | f | g | h | j | k | l | m | | * | |
312 // ========================================================================
313 // | ^ | > | W | X | C | V | B | N | ? | . | / | | ^ |
314 // | | | < || w | x | c | v | b | n | , | ; | : | ! | | |
315 // ========================================================================
316 // | | | | | | | | |
317 // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl |
318 //
319 //
320 //
321 // Si les touches mortes fonctionnent, utiliser les accents dits
322 // morts , i.e. fonctionnant comme l'accent circonflexe & le
323 // trma des machines crire ; sont disponibles :
324 //
325 // (^) : accent circonflexe,
326 // Shift+(^) : trma,
327 // Shift+AltGr+(^) : tilde,
328 // AltGr+(1) : accent aigu,
329 // AltGr+(7) : accent grave
330 //
331 // Pour s'en servir, procder comme avec l'accent circonflexe & le trma
332 // sur les vielles machines crire :
333 //
334 // AltGr+(1) puis e :
335 // AltGr+(1) puis E :
336 //
337 partial alphanumeric_keys
338
339 xkb_symbols "latin9" {
340
341 include "latin"
342 include "nbsp(level3)"
343
344 name[Group1]="French (legacy, alt.)";
345
346 key <TLDE> { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] };
347 key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
348 key <AE02> { [ eacute, 2, asciitilde, Eacute ] };
349 key <AE03> { [ quotedbl, 3, numbersign, cedilla ] };
350 key <AE04> { [ apostrophe, 4, braceleft, acute ] };
351 key <AE05> { [ parenleft, 5, bracketleft, diaeresis ] };
352 key <AE06> { [ minus, 6, bar, brokenbar ] };
353 key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
354 key <AE08> { [ underscore, 8, backslash, macron ] };
355 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] };
356 key <AE10> { [ agrave, 0, at, Agrave ] };
357 key <AE11> { [ parenright, degree, bracketright, ydiaeresis ] };
358 key <AE12> { [ equal, plus, braceright, dead_abovering ] };
359
360 key <AD01> { [ a, A, acircumflex, adiaeresis ] };
361 key <AD02> { [ z, Z, aring, Aring ] };
362 key <AD03> { [ e, E, EuroSign, cent ] };
363 key <AD04> { [ r, R, ccedilla, Ccedilla ] };
364 key <AD05> { [ t, T, thorn, THORN ] };
365 key <AD06> { [ y, Y, yacute, Yacute ] };
366 key <AD07> { [ u, U, ucircumflex, udiaeresis ] };
367 key <AD08> { [ i, I, icircumflex, idiaeresis ] };
368 key <AD09> { [ o, O, ocircumflex, odiaeresis ] };
369 key <AD10> { [ p, P, paragraph, grave ] };
370 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] };
371 key <AD12> { [ dollar, sterling, ecircumflex, ediaeresis ] };
372
373 key <AC01> { [ q, Q, Acircumflex, Adiaeresis ] };
374 key <AC02> { [ s, S, oslash, Ooblique ] };
375 key <AC03> { [ d, D, Ecircumflex, Ediaeresis ] };
376 key <AC04> { [ f, F, plusminus, ordfeminine ] };
377 key <AC05> { [ g, G, ae, AE ] };
378 key <AC06> { [ h, H, eth, ETH ] };
379 key <AC07> { [ j, J, Ucircumflex, Udiaeresis ] };
380 key <AC08> { [ k, K, Icircumflex, Idiaeresis ] };
381 key <AC09> { [ l, L, Ocircumflex, Odiaeresis ] };
382 key <AC10> { [ m, M, onesuperior, masculine ] };
383 key <AC11> { [ ugrave, percent, twosuperior, Ugrave ] };
384 key <BKSL> { [ asterisk, mu, threesuperior, yen ] };
385
386 key <LSGT> { [ less, greater, bar ] };
387 key <AB01> { [ w, W, guillemotleft ] };
388 key <AB02> { [ x, X, guillemotright ] };
389 key <AB03> { [ c, C, copyright ] };
390 key <AB04> { [ v, V, registered ] };
391 key <AB05> { [ b, B, ssharp, U1E9E ] };
392 key <AB06> { [ n, N, notsign ] };
393 key <AB07> { [ comma, question, questiondown ] };
394 key <AB08> { [ semicolon, period, multiply ] };
395 key <AB09> { [ colon, slash, division ] };
396 key <AB10> { [ exclam, section, exclamdown ] };
397
398 // French uses a comma as decimal separator, but keyboards are labeled with a period
399 // Will take effect when KP_Decimal is mapped to the locale decimal separator
400 key <KPDL> { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] };
401
402 include "level3(ralt_switch)"
403 };
404
405 partial alphanumeric_keys
406 xkb_symbols "latin9_Sundeadkeys" {
407
408 // Modifies the basic fr-latin9 layout to use the Sun dead keys
409
410 include "fr(latin9)"
411
412 key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
413 key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
414 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] };
415 };
416
417 partial alphanumeric_keys
418 xkb_symbols "latin9_sundeadkeys" {
419
420 include "fr(latin9_Sundeadkeys)"
421
422 name[Group1]="French (legacy, alt., with Sun dead keys)";
423 };
424
425 partial alphanumeric_keys
426 xkb_symbols "latin9_nodeadkeys" {
427
428 // Modifies the basic fr-latin9 layout to eliminate all dead keys
429
430 include "fr(latin9)"
431
432 name[Group1]="French (legacy, alt., no dead keys)";
433
434 key <AE01> { [ ampersand, 1, apostrophe, periodcentered ] };
435 key <AE07> { [ egrave, 7, grave, Egrave ] };
436 key <AE12> { [ equal, plus, braceright ] };
437 key <AD11> { [ asciicircum, diaeresis, asciitilde, apostrophe ] };
438 };
439
440 // Bpo:Improved ergonomic french keymap using Dvorak method.
441 // Built by community on 'Dvorak Fr / Bpo':
442 // see http://www.clavier-dvorak.org/wiki/ to join and help.
443 // XOrg integration (1.0rc2 version) in 2008
444 // by Frdric Boiteux <fboiteux at free dot fr>
445 //
446 // Bpo layout (1.0rc2 version) for a pc105 keyboard (french):
447 //
448 // S A S = Shift, A = AltGr + Shift
449 // s a s = normal, a = AltGr
450 //
451 //
452 //
453 // # 1 2 3 4 5 6 7 8 9 0 ` Retour
454 // $ " < > ( [ ) ] @ ^ + - / * = % arrire
455 //
456 // B P O ` ! V D L J Z W Entre
457 // Tab b | p & o ` v d l / j z w
458 //
459 // A U I E ; C T S R N M ,
460 // Maj a u i e , c t s r n m
461 //
462 // Y X : K ? Q G H F
463 // Shift / \ y { x } . k ~ ' q g h f Shift
464 //
465 // Espace insc. Espace insc. fin
466 // Ctrl Meta Alt (Espace) _ AltGr Menu Ctrl
467 //
468 partial alphanumeric_keys
469 xkb_symbols "bepo" {
470
471 include "level3(ralt_switch)"
472 include "keypad(oss)"
473
474 name[Group1]= "French (Bepo, ergonomic, Dvorak way)";
475
476 // First row
477 key <TLDE> { [ dollar, numbersign, endash, paragraph ] }; // $ #
478 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1
479 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // 2 <
480 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // 3 >
481 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [
482 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ]
483 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^
484 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7
485 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8
486 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9
487 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0
488 key <AE11> { [ equal, degree, notequal, minutes ] }; // =
489 key <AE12> { [ percent, grave, permille, seconds ] }; // % `
490
491 // Second row
492 key <AD01> { [ b, B, bar, brokenbar ] }; // b B |
493 key <AD02> { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; //
494 key <AD03> { [ p, P, ampersand, section ] }; // p P &
495 key <AD04> { [ o, O, oe, OE ] }; // o O
496 key <AD05> { [ egrave, Egrave, dead_grave, grave ] }; // ` `
497 key <AD06> { [ dead_circumflex, exclam, exclamdown ] }; // ^ !
498 key <AD07> { [ v, V, dead_caron ] }; // v V
499 key <AD08> { [ d, D, eth, ETH ] }; // d D
500 key <AD09> { [ l, L, dead_stroke ] }; // l L /
501 key <AD10> { [ j, J, U0133, U0132 ] }; // j J
502 key <AD11> { [ z, Z, schwa, SCHWA ] }; // z Z
503 key <AD12> { [ w, W, dead_breve ] }; // w W
504
505 // Third row
506 key <AC01> { [ a, A, ae, AE ] }; // a A
507 key <AC02> { [ u, U, ugrave, Ugrave ] }; // u U
508 key <AC03> { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I
509 key <AC04> { [ e, E, EuroSign, dead_currency ] }; // e E
510 key <AC05> { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ;
511 key <AC06> { [ c, C, copyright, U017F ] }; // c C
512 key <AC07> { [ t, T, thorn, THORN ] }; // t T
513 key <AC08> { [ s, S, ssharp, U1E9E ] }; // s S
514 key <AC09> { [ r, R, registered, trademark ] }; // r R
515 key <AC10> { [ n, N, dead_tilde ] }; // n N ~
516 key <AC11> { [ m, M, dead_macron, masculine ] }; // m M
517 key <BKSL> { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ,
518
519 // Fourth row
520 key <LSGT> { [ ecircumflex, Ecircumflex, slash ] }; // /
521 key <AB01> { [ agrave, Agrave, backslash ] }; // \
522 key <AB02> { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y {
523 key <AB03> { [ x, X, braceright, rightsinglequotemark ] }; // x X }
524 key <AB04> { [ period, colon, ellipsis, periodcentered ] }; // . :
525 key <AB05> { [ k, K, asciitilde ] }; // k K ~
526 key <AB06> { [ apostrophe, question, questiondown, dead_hook ] }; // ' ?
527 key <AB07> { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q
528 key <AB08> { [ g, G, dead_greek ] }; // g G
529 key <AB09> { [ h, H, dagger, doubledagger ] }; // h H
530 key <AB10> { [ f, F, dead_ogonek, ordfeminine ] }; // f F
531
532 key <SPCE> { [ space, nobreakspace, underscore, U202F ] }; // (espace inscable) _ (espace inscable fin)
533 };
534
535 partial alphanumeric_keys
536 xkb_symbols "bepo_latin9" {
537
538 // Restricts the fr(bepo) layout to latin9 symbols
539
540 include "fr(bepo)"
541 include "keypad(oss_latin9)"
542
543 name[Group1]="French (Bepo, ergonomic, Dvorak way, Latin-9 only)";
544
545 key <TLDE> { [ dollar, numbersign, dollar, paragraph ] }; // $ # $
546
547 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1
548 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // 2 <
549 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // 3 >
550 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [
551 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ]
552 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 -
553 key <AE11> { [ equal, degree ] }; // =
554 key <AE12> { [ percent, grave ] }; // % `
555
556 key <AD01> { [ b, B, bar ] }; // b B |
557 key <AD02> { [ eacute, Eacute, dead_acute ] }; //
558 key <AD10> { [ j, J ] }; // j J
559 key <AD11> { [ z, Z ] }; // z Z
560 key <AD12> { [ w, W ] }; // w W
561
562 key <AC03> { [ i, I, dead_diaeresis ] }; // i I
563 key <AC05> { [ comma, semicolon, comma, dead_horn ] }; // , ; ,
564 key <AC06> { [ c, C, copyright ] }; // c C
565 key <AC08> { [ s, S, ssharp, U1E9E ] }; // s S
566 key <AC09> { [ r, R, registered ] }; // r R
567 key <AC11> { [ m, M, macron, masculine ] }; // m M
568
569 key <AB02> { [ y, Y, braceleft ] }; // y Y {
570 key <AB03> { [ x, X, braceright ] }; // x X }
571 key <AB04> { [ period, colon ] }; // . :
572 key <AB09> { [ h, H ] }; // h H
573 key <AB10> { [ f, F, f, ordfeminine ] }; // f F
574
575 // Note: on a besoin de redfinir les niveaux 3 et 4,
576 // donc nbsp(level2) ne suffit pas!
577 key <SPCE> { [ space, nobreakspace, underscore, nobreakspace ] }; // (espace inscable) _ (espace inscable)
578 };
579
580 // Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html
581 // thanks to Fabien Cazenave for his help
582 // Licence : X11
583 // Version : 0.3
584
585 // Base layer + dead AltGr key (`):
586 //
587 // * 1 2 3 4 5 6 7 8 9 0 + %
588 // _ = / - \ ^ ( ` ` ) " [ ]
589 //
590 // ? < > G ! H V C M K Z &
591 // : ' $ g . h v c m k z
592 //
593 // O A U E B F S T N D W #
594 // o a u e b f s t n d w ~
595 //
596 // | Q @ I Y X R L P J
597 // ; q { , } i y x r l p j
598 //
599 //
600 // ctrl super alt Espace Espace inscable alt super menu ctrl
601 //
602
603 // Notice the specific Caps_Lock layer:
604 //
605 // * 1 2 3 4 5 6 7 8 9 0 + %
606 //
607 //
608 // < >
609 //
610 //
611 //
612 //
613 //
614 // / -
615 //
616 //
617 //
618 // ctrl super alt Espace Espace inscable alt super menu ctrl
619 //
620
621 partial alphanumeric_keys modifier_keys
622 xkb_symbols "dvorak" {
623 name[Group1]="French (Dvorak)";
624
625 // First row
626 key <TLDE> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] };
627 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] };
628 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] };
629 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] };
630 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] };
631 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] };
632 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] };
633 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] };
634 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] };
635 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] };
636 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] };
637 key <AE11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] };
638 key <AE12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] };
639
640 // Second row
641 key <AD01> { [ colon, question, ae, AE ] };
642 key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] };
643 key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] };
644 key <AD04> { [ g, G, EuroSign ] };
645 key <AD05> { [ period, exclam, degree ] };
646 key <AD06> { [ h, H ] };
647 key <AD07> { [ v, V ] };
648 key <AD08> { [ c, C, ccedilla, Ccedilla ] };
649 key <AD09> { [ m, M, mu ] };
650 key <AD10> { [ k, K ] };
651 key <AD11> { [ z, Z ] };
652 key <AD12> { [ dead_diaeresis, ampersand ] };
653
654 // Third row
655 key <AC01> { [ o, O, ograve, Ograve ] };
656 key <AC02> { [ a, A, agrave, Agrave ] };
657 key <AC03> { [ u, U, ugrave, Ugrave ] };
658 key <AC04> { [ e, E, egrave, Egrave ] };
659 key <AC05> { [ b, B ] };
660 key <AC06> { [ f, F ] };
661 key <AC07> { [ s, S, guillemotleft ] };
662 key <AC08> { [ t, T ] };
663 key <AC09> { [ n, N, guillemotright ] };
664 key <AC10> { [ d, D ] };
665 key <AC11> { [ w, W ] };
666 key <BKSL> { [ asciitilde, numbersign ] };
667
668 // Fourth row
669 key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] };
670 key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] };
671 key <AB02> { [ q, Q, braceleft ] };
672 key <AB03> { [ comma, at, braceright ] };
673 key <AB04> { [ i, I, igrave, Igrave ] };
674 key <AB05> { [ y, Y, sterling ] };
675 key <AB06> { [ x, X ] };
676 key <AB07> { [ r, R, masculine ] };
677 key <AB08> { [ l, L ] };
678 key <AB09> { [ p, P, section ] };
679 key <AB10> { [ j, J ] };
680
681 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
682 };
683
684 // C'WHERTY:Breton keyboard. Ar c'hlavier brezhoneg.
685 // Copyright 2009 Dominique Pell <dominique.pelle (a] gmail.com>
686 // Version: 0.1
687 //
688 //
689 // S A S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift
690 // s a s = normal, a = ArErl = AltGr
691 //
692 //
693 //
694 // $ 1 2 3 4 5 6 7 8 9 0 + Souza
695 // & " # ' { ( [ - | ` - \ @ ) ] = }
696 //
697 // Toalenn C'h W E R T Y U I O OE P * Enanka
698 // c'h w e r t y u i o oe p ^ /
699 //
700 // Prenn A S D F G H J K L M !
701 // Pennli a s d $ f g h j k l m ?
702 //
703 // Q Z X C V B N CH : ;
704 // Shift q < z > x c v b n ch . , Shift
705 //
706 // Espace inscable
707 // Reol Meta Erl Espace ArErl Menu Reol
708 //
709 partial alphanumeric_keys
710 xkb_symbols "bre" {
711
712 include "keypad(oss)"
713
714 name[Group1]= "French (Breton)";
715
716 // First row
717 key <TLDE> { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] };
718 key <AE01> { [ ampersand, 1, dead_macron, Greek_DELTA ] };
719 key <AE02> { [ eacute, 2, dead_acute, Greek_THETA ] };
720 key <AE03> { [ quotedbl, 3, numbersign, Greek_LAMDA ] };
721 key <AE04> { [ apostrophe, 4, braceleft, Greek_XI ] };
722 key <AE05> { [ parenleft, 5, bracketleft, Greek_PI ] };
723 key <AE06> { [ minus, 6, bar, Greek_SIGMA ] };
724 key <AE07> { [ egrave, 7, dead_grave, Greek_PHI ] };
725 key <AE08> { [ underscore, 8, backslash, Greek_PSI ] };
726 key <AE09> { [ ccedilla, 9, plusminus, Ccedilla ] };
727 key <AE10> { [ agrave, 0, at, Greek_OMEGA ] };
728 key <AE11> { [ parenright, dead_abovering, bracketright, ssharp ] };
729 key <AE12> { [ equal, plus, braceright, notsign ] };
730
731 // Second row
732 // Handling the C'H key correctly requires an inputmethod (XIM)
733 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
734 // key <AD01> { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] };
735 key <AD01> { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] };
736 key <AD02> { [ w, W, Greek_omega, Greek_omega ] };
737 key <AD03> { [ e, E, EuroSign, Greek_epsilon ] };
738 key <AD04> { [ r, R, Greek_rho, Greek_rho ] };
739 key <AD05> { [ t, T, Greek_tau, Greek_tau ] };
740 key <AD06> { [ y, Y, Greek_psi, Greek_psi ] };
741 key <AD07> { [ u, U, Greek_upsilon, Greek_upsilon ] };
742 key <AD08> { [ i, I, idotless, Greek_iota ] };
743 key <AD09> { [ o, O, oe, OE ] };
744 key <AD10> { [ p, P, Greek_pi, Greek_pi ] };
745 key <AD11> { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] };
746 key <AD12> { [ slash, asterisk, guillemotright, sterling ] };
747
748 // Third row
749 key <AC01> { [ a, A, ae, AE ] };
750 key <AC02> { [ s, S, Greek_sigma, Greek_sigma ] };
751 key <AC03> { [ d, D, dollar, Greek_delta ] };
752 key <AC04> { [ f, F, Greek_phi, Greek_phi ] };
753 key <AC05> { [ g, G, Greek_gamma, Greek_gamma ] };
754 key <AC06> { [ h, H, Greek_eta, Greek_eta ] };
755 key <AC07> { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] };
756 key <AC08> { [ k, K, Greek_kappa, Greek_kappa ] };
757 key <AC09> { [ l, L, Greek_lamda, Greek_lambda ] };
758 key <AC10> { [ m, M, Greek_mu, Greek_mu ] };
759 key <AC11> { [ ugrave, Ugrave, ubreve, registered ] };
760 key <BKSL> { [ question, exclam, questiondown, exclamdown ] };
761
762 // Fourth row
763 key <LSGT> { [ q, Q, less, Greek_theta ] };
764 key <AB01> { [ z, Z, greater, Greek_zeta ] };
765 key <AB02> { [ x, X, Greek_xi, Greek_xi ] };
766 key <AB03> { [ c, C, cent, Greek_chi ] };
767 key <AB04> { [ v, V ] };
768 key <AB05> { [ b, B, Greek_beta, Greek_beta ] };
769 key <AB06> { [ n, N, Greek_nu, Greek_nu ] };
770 // Handling the CH key correctly requires an inputmethod (XIM)
771 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
772 // key <AB07> { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] };
773 key <AB07> { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] };
774 key <AB08> { [ ntilde, Ntilde ] };
775 key <AB09> { [ period, colon, section, copyright ] };
776 key <AB10> { [ comma, semicolon, percent ] };
777
778 key <SPCE> { [ space, nobreakspace, space, nobreakspace ] };
779
780 include "level3(ralt_switch)"
781 };
782
783 // Occitan layout
784 // Author : 2009 Thomas Metz <tmetz @ free.fr>
785 // Derived from the layout defined at http://www.panoccitan.org
786 // Version: 0.1
787 // Differences from OSS French keyboard :
788 // - add , , , et , , , , , , ,
789 // - change position of , , , , , , , , ,
790 //
791 //
792 // 1 2 3 4 5 6 7 8 9 0 + Retour
793 // & ~ " # ' { ( [ - | ` _ \ ^ @ ) ] = } arrire
794 //
795 // A Z E R T Y U I O P Entre
796 // Tab a z e r t y u i o p ^ $
797 //
798 // Q S D F G H J K L M %
799 // Maj q s d f g h j k l m ' * `
800 //
801 // > W X C V B N ? . . /
802 // Shift < w x c v b n , ; : ! Shift
803 //
804 // Espace fine inscable
805 // Ctrl Meta Alt Espace Espace inscable AltGr Menu Ctrl
806 //
807 partial alphanumeric_keys
808 xkb_symbols "oci" {
809
810 include "fr(oss)"
811
812 name[Group1]= "Occitan";
813
814 key <AD01> { [ a, A, aacute, Aacute ] }; // a A
815 key <AD02> { [ z, Z, ae, AE ] }; // z Z
816 key <AD05> { [ t, T, ediaeresis, Ediaeresis ] }; // t T
817 key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y
818 key <AD07> { [ u, U, uacute, Uacute ] }; // u U
819 key <AD08> { [ i, I, iacute, Iacute ] }; // i I
820 key <AD09> { [ o, O, oacute, Oacute ] }; // o O
821 key <AD10> { [ p, P, ograve, Ograve ] }; // p P
822 key <AD11> { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^
823
824 key <AC03> { [ d, D, acircumflex, Acircumflex ] }; // d D
825 key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; // h H
826 key <AC07> { [ j, J, icircumflex, Icircumflex ] }; // j J
827 key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K
828 key <AC09> { [ l, L, ocircumflex, Ocircumflex ] }; // l L
829
830 key <AB04> { [ v, V, rightarrow, leftarrow ] }; // v V
831 key <AB06> { [ n, N, ntilde, Ntilde ] }; // n N
832 };
833
834 // Marc.Shapiro (a] inria.fr 19-sep-1998
835 // modifications : Etienne Herlent <eherlent (a] linux-france.org> june 2000
836 // adapted to the new input layer :
837 // Martin Costabel <costabel (a] wanadoo.fr> 3-jan-2001
838 // adapted for Latin9 alphabet (ISO-8859-15):
839 // Etienne Herlent <eherlent (a] linux-france.org> march 2005
840
841 // This map is an almost-complete mapping of the standard French
842 // MacIntosh keyboard under Xwindows. I tried to remain as faithful
843 // as possible to the Mac meaning of each key. I did this entirely by
844 // hand and by intuition, relying on the Clavier (Keyboard?) Desktop
845 // Accessory for the Mac meaning of keys, and on reading keysymdef.h
846 // to intuit the corresponding X names. Lacking proper documentation,
847 // I may have made some mistakes.
848
849 // Entries marked CHECK are particularly uncertain
850
851 // Entries marked MISSING mark Mac characters for which I was unable
852 // to find a corresponding keysym. (Some for sure don't: e.g. the
853 // Apple mark and the oe/OE character; others I may have simply not
854 // found.)
855
856 // Copied from macintosh_vndr/fr
857 partial alphanumeric_keys
858 xkb_symbols "mac" {
859
860 name[Group1]= "French (Macintosh)";
861
862 key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
863 key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple
864 key <AE02> { [ eacute, 2, ediaeresis, Eacute ] };
865 key <AE03> { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks
866 key <AE04> { [ apostrophe, 4, VoidSymbol, VoidSymbol ] };
867 key <AE05> { [ parenleft, 5, braceleft, bracketleft ] };
868 // CHECK section
869 key <AE06> { [ section, 6, paragraph, aring ] };
870 key <AE07> { [ egrave, 7, guillemotleft, guillemotright ] };
871 key <AE08> { [ exclam, 8, exclamdown, Ucircumflex ] };
872 key <AE09> { [ ccedilla, 9, Ccedilla, Aacute ] };
873 key <AE10> { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash
874 key <AE11> { [ parenright, degree, braceright, bracketright ] };
875 key <AE12> { [ minus, underscore, emdash, endash ] }; // CHECK dashes
876
877 key <AD01> { [ a, A, ae, AE ] };
878 key <AD02> { [ z, Z, Acircumflex, Aring ] };
879 key <AD03> { [ e, E, ecircumflex, Ecircumflex ] };
880 key <AD04> { [ r, R, registered, currency ] };
881 key <AD05> { [ t, T, VoidSymbol, VoidSymbol ] };
882 key <AD06> { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
883 key <AD07> { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine?
884 key <AD08> { [ i, I, icircumflex, idiaeresis ] };
885 key <AD09> { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
886 key <AD10> { [ p, P, VoidSymbol, VoidSymbol ] };
887 key <AD11> { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] };
888 key <AD12> { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9
889
890 key <AC01> { [ q, Q, acircumflex, Agrave ] };
891 key <AC02> { [ s, S, Ograve, VoidSymbol ] };
892 key <AC03> { [ d, D, VoidSymbol, VoidSymbol ] };
893 key <AC04> { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f??
894 key <AC05> { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl
895 key <AC06> { [ h, H, Igrave, Icircumflex ] };
896 key <AC07> { [ j, J, Idiaeresis, Iacute ] };
897 key <AC08> { [ k, K, Egrave, Ediaeresis ] };
898 key <AC09> { [ l, L, notsign, bar ] };
899 key <AC10> { [ m, M, mu, Oacute ] };
900 key <AC11> { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille
901 key <BKSL> { [ dead_grave, sterling, at, numbersign ] };
902
903 key <LSGT> { [ less, greater, VoidSymbol, VoidSymbol ] };
904 key <AB01> { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket)
905 key <AB02> { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash
906 key <AB03> { [ c, C, copyright, cent ] };
907 key <AB04> { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical
908 key <AB05> { [ b, B, ssharp, U1E9E ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s
909 key <AB06> { [ n, N, dead_tilde, asciitilde ] };
910 key <AB07> { [ comma, question, VoidSymbol, questiondown ] };
911 key <AB08> { [ semicolon, period, VoidSymbol, periodcentered ] };
912 key <AB09> { [ colon, slash, division, backslash ] };
913 key <AB10> { [ equal, plus, VoidSymbol, plusminus ] };
914
915 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
916
917 key <KPDL> { [ comma,KP_Decimal ] };
918
919 include "level3(ralt_switch)"
920 };
921
922 partial alphanumeric_keys
923 xkb_symbols "geo" {
924 include "ge(basic)"
925
926 name[Group1]= "Georgian (France, AZERTY Tskapo)";
927
928 key <TLDE> { [ exclam, noSymbol ] };
929 key <AE01> { [ 0x0100201e, 1 ] };
930 key <AE02> { [ 0x01002116, 2 ] };
931 key <AE03> { [ percent, 3 ] };
932 key <AE04> { [ parenleft, 4 ] };
933 key <AE05> { [ colon, 5 ] };
934 key <AE06> { [ semicolon, 6 ] };
935 key <AE07> { [ question, 7 ] };
936 key <AE08> { [ 0x01002116, 8 ] };
937 key <AE09> { [ degree, 9 ] };
938 key <AE10> { [ parenright, 0 ] };
939 key <AE11> { [ minus, underscore, 0x01002014 ] };
940 key <AE12> { [ less, greater ] };
941
942 key <AD01> { [ Georgian_an, 0x010010fa ] };
943 key <AD02> { [ Georgian_zen, Z ] };
944 key <AD03> { [ Georgian_en, E, Georgian_he ] };
945 key <AD04> { [ Georgian_rae, 0x010000ae ] };
946 key <AD05> { [ Georgian_tar, T ] };
947 key <AD06> { [ Georgian_qar, 0x010010f8 ] };
948 key <AD07> { [ Georgian_un, U ] };
949 key <AD08> { [ Georgian_in, Georgian_hie ] };
950 key <AD09> { [ Georgian_on, O ] };
951 key <AD10> { [ Georgian_par, P ] };
952 key <AD11> { [ Georgian_tan, T ] };
953 key <AD12> { [ Georgian_jil, Z ] };
954
955 key <AC01> { [ Georgian_khar, Q ] };
956 key <AC02> { [ Georgian_san, S ] };
957 key <AC03> { [ Georgian_don, D ] };
958 key <AC04> { [ Georgian_phar, Georgian_fi ] };
959 key <AC05> { [ Georgian_gan, 0x010010f9 ] };
960 key <AC06> { [ Georgian_hae, Georgian_hoe ] };
961 key <AC07> { [ Georgian_jhan, 0x010010f7 ] };
962 key <AC08> { [ Georgian_kan, K ] };
963 key <AC09> { [ Georgian_las, L ] };
964 key <AC10> { [ Georgian_man, M ] };
965 key <AC11> { [ Georgian_zhar, J ] };
966 key <BKSL> { [ Georgian_chin, 0x010000a9 ] };
967
968 key <LSGT> { [ guillemotleft, guillemotright ] };
969 key <AB01> { [ Georgian_cil, W ] };
970 key <AB02> { [ Georgian_xan, Georgian_har ] };
971 key <AB03> { [ Georgian_can, 0x010000a9 ] };
972 key <AB04> { [ Georgian_vin, Georgian_we ] };
973 key <AB05> { [ Georgian_ban, B ] };
974 key <AB06> { [ Georgian_nar, 0x010010fc ] };
975 key <AB07> { [ comma, 0x01002014 ] };
976 key <AB08> { [ Georgian_shin, S ] };
977 key <AB09> { [ Georgian_ghan, noSymbol ] };
978 key <AB10> { [ Georgian_char, noSymbol ] };
979
980 };
981
982 // US keyboard made French
983 //
984 // Copyright (C) 2018, Florent Gallaire <f (a] gallai.re>
985 partial alphanumeric_keys
986 xkb_symbols "us" {
987
988 include "us(euro)"
989 name[Group1]= "French (US, with French letters)";
990
991
992 key <TLDE> { [ grave, asciitilde, dead_grave ] };
993 key <AE06> { [ 6,asciicircum,dead_circumflex ] };
994
995 key <AB01> { [ z, Z, acircumflex, Acircumflex ] }; //
996 key <AB03> { [ c, C, ccedilla, Ccedilla ] }; //
997
998 key <AC01> { [ a, A, agrave, Agrave ] }; //
999 key <AC02> { [ s, S, ae, AE ] }; //
1000 key <AC03> { [ d, D, ecircumflex, Ecircumflex ] }; //
1001 key <AC04> { [ f, F, ediaeresis, Ediaeresis ] }; //
1002 key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; //
1003 key <AC07> { [ j, J, ucircumflex, Ucircumflex ] }; //
1004 key <AC08> { [ k, K, icircumflex, Icircumflex ] }; //
1005 key <AC11> { [apostrophe, quotedbl,dead_diaeresis ] };
1006
1007 key <AD03> { [ e, E, eacute, Eacute ] }; //
1008 key <AD04> { [ r, R, egrave, Egrave ] }; //
1009 key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; //
1010 key <AD07> { [ u, U, ugrave, Ugrave ] }; //
1011 key <AD08> { [ i, I, idiaeresis, Idiaeresis ] }; //
1012 key <AD09> { [ o, O, ocircumflex, Ocircumflex ] }; //
1013 key <AD10> { [ p, P, oe, OE ] }; //
1014 key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; //
1015 key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; //
1016
1017 key <AE04> { [ 4, dollar, EuroSign, currency ] }; //
1018 };
1019
1020 // EXTRAS:
1021
1022 partial alphanumeric_keys
1023 xkb_symbols "sun_type6" {
1024 include "sun_vndr/fr(sun_type6)"
1025 };
1026
1027
1028 partial alphanumeric_keys
1029 xkb_symbols "azerty" {
1030 name[Group1]="French (AZERTY)";
1031
1032 include "level3(ralt_switch)"
1033
1034 // French AZERTY-Keyboard layout
1035 // Author : 2015, Mats Blakstad <mats @ globalbility.org>
1036 // Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg
1037
1038 // LAYOUT OVERVIEW
1039 // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
1040 // | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + | <-- |
1041 // | | & | ~| " #| ' {| ( [| - || `| _ \| ^| @| ) ]| = }| |
1042 // ========================================================================
1043 // | |<- | A | Z | E | R | T | Y | U | I | O | P | | $ | , |
1044 // | ->| | a | z | e | r | t | y | u | i | o | p | ^ | | <-' |
1045 // =================================================================== |
1046 // | | Q | S | D | F | G | H | J | K | L | M | % | | |
1047 // | MAJ | q | s | d | f | g | h | j | k | l | m | | * | |
1048 // ========================================================================
1049 // | ^ | > | W | X | C | V | B | N | ? | . | / | | ^ |
1050 // | | | < | w | x | c | v | b | n | , | ; | : | ! | | |
1051 // ========================================================================
1052 // | | | | | | | | |
1053 // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl |
1054 //
1055
1056 // First row
1057 key <TLDE> { [ twosuperior ] };
1058 key <AE01> { [ ampersand, 1 ] };
1059 key <AE02> { [ eacute, 2, asciitilde ] };
1060 key <AE03> { [ quotedbl, 3, numbersign ] };
1061 key <AE04> { [ apostrophe, 4, braceleft ] };
1062 key <AE05> { [ parenleft, 5, bracketleft ] };
1063 key <AE06> { [ minus, 6, bar ] };
1064 key <AE07> { [ egrave, 7, grave ] };
1065 key <AE08> { [ underscore, 8, backslash ] };
1066 key <AE09> { [ ccedilla, 9, asciicircum ] };
1067 key <AE10> { [ agrave, 0, at ] };
1068 key <AE11> { [ parenright, degree, bracketright ] };
1069 key <AE12> { [ equal, plus, braceright ] };
1070
1071 // Second row
1072 key <AD01> { [ a, A ] };
1073 key <AD02> { [ z, Z ] };
1074 key <AD03> { [ e, E, EuroSign ] };
1075 key <AD04> { [ r, R ] };
1076 key <AD05> { [ t, T ] };
1077 key <AD06> { [ y, Y ] };
1078 key <AD07> { [ u, U ] };
1079 key <AD08> { [ i, I ] };
1080 key <AD09> { [ o, O ] };
1081 key <AD10> { [ p, P ] };
1082 key <AD11> { [ dead_circumflex,dead_diaeresis ] };
1083 key <AD12> { [ dollar, sterling, currency ] };
1084
1085 // Third row
1086 key <AC01> { [ q, Q ] };
1087 key <AC02> { [ s, S ] };
1088 key <AC03> { [ d, D ] };
1089 key <AC04> { [ f, F ] };
1090 key <AC05> { [ g, G ] };
1091 key <AC06> { [ h, H ] };
1092 key <AC07> { [ j, J ] };
1093 key <AC08> { [ k, K ] };
1094 key <AC09> { [ l, L ] };
1095 key <AC10> { [ m, M ] };
1096 key <AC11> { [ ugrave, percent ] };
1097 key <BKSL> { [ asterisk, mu ] };
1098
1099 // Fourth row
1100 key <LSGT> { [ less, greater ] };
1101 key <AB01> { [ w, W ] };
1102 key <AB02> { [ x, X ] };
1103 key <AB03> { [ c, C ] };
1104 key <AB04> { [ v, V ] };
1105 key <AB05> { [ b, B ] };
1106 key <AB06> { [ n, N ] };
1107 key <AB07> { [ comma, question ] };
1108 key <AB08> { [ semicolon, period ] };
1109 key <AB09> { [ colon, slash ] };
1110 key <AB10> { [ exclam, section ] };
1111 };
1112
1113 // US keyboard made French (with dead keys, alternative)
1114 //
1115 // Copyright (C) 2018, Florent Gallaire <f (a] gallai.re>
1116
1117 partial alphanumeric_keys
1118 xkb_symbols "us-alt" {
1119
1120 include "us(euro)"
1121 name[Group1]= "French (US, with French letters, with dead keys, alternative)";
1122
1123 key <AB03> { [ c, C, ccedilla, Ccedilla ] }; //
1124
1125 key <AC01> { [ a, A, ae, AE ] }; //
1126 key <AC11> { [dead_diaeresis, quotedbl, apostrophe ] };
1127
1128 key <AD03> { [ e, E, eacute, Eacute ] }; //
1129 key <AD09> { [ o, O, oe, OE ] }; //
1130 key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; //
1131 key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; //
1132
1133 key <TLDE> { [dead_grave, asciitilde, grave ] };
1134 key <AE06> { [dead_circumflex, asciicircum, 6 ] };
1135 key <AE04> { [ 4, dollar, EuroSign, currency ] }; //
1136
1137 };
1138
1139 // For physically modified US keyboard (Q <-> A, W <-> Z and ; <-> M)
1140 //
1141 // Copyright (C) 2018, Florent Gallaire <f (a] gallai.re>
1142
1143 partial alphanumeric_keys
1144 xkb_symbols "us-azerty" {
1145
1146 include "us"
1147 name[Group1]= "French (US, AZERTY)";
1148
1149 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; //
1150 key <AB02> { [ x, X,guillemotright,rightdoublequotemark ] }; //
1151 key <AB07> { [ semicolon, colon ] };
1152
1153 key <AC01> { [ q, Q ] };
1154 key <AC10> { [ m, M ] };
1155 key <AC11> { [apostrophe, quotedbl, ugrave, Ugrave ] }; //
1156
1157 key <AD01> { [ a, A, ae, AE ] }; //
1158 key <AD02> { [ z, Z ] };
1159 key <AD09> { [ o, O, oe, OE ] }; //
1160 key <AD11> { [bracketleft, braceleft,dead_circumflex, dead_diaeresis ] };
1161
1162 key <TLDE> { [ grave, asciitilde, dead_grave ] };
1163 key <AE02> { [ 2, at, eacute, Eacute ] }; //
1164 key <AE04> { [ 4, dollar, currency ] }; //
1165 key <AE06> { [ 6,asciicircum,dead_circumflex ] };
1166 key <AE07> { [ 7, ampersand, egrave, Egrave ] }; //
1167 key <AE09> { [ 9, parenleft, ccedilla, Ccedilla ] }; //
1168 key <AE10> { [ 0, parenright, agrave, Agrave ] }; //
1169
1170 include "eurosign(e)"
1171 include "level3(ralt_switch)"
1172 };
1173