3 // based on a keyboard map from an 'xkb/symbols/fr' file
5 // $XFree86: xc/programs/xkbcomp/symbols/fr,v 1.2 2002/11/22 04:03:28 dawes Exp $
7 partial default alphanumeric_keys
12 name[Group1]="France";
14 key <AE01> { [ ampersand, 1, onesuperior, exclamdown ] };
15 key <AE02> { [ eacute, 2, asciitilde, oneeighth ] };
16 key <AE03> { [ quotedbl, 3, numbersign, sterling ] };
17 key <AE04> { [apostrophe, 4, braceleft, dollar ] };
18 key <AE05> { [ parenleft, 5, bracketleft, threeeighths ] };
19 key <AE06> { [ minus, 6, bar, fiveeighths ] };
20 key <AE07> { [ egrave, 7, grave, seveneighths ] };
21 key <AE08> { [underscore, 8, backslash, trademark ] };
22 key <AE09> { [ ccedilla, 9, asciicircum, plusminus ] };
23 key <AE10> { [ agrave, 0, at, degree ] };
24 key <AE11> { [parenright, degree, bracketright, questiondown ] };
25 key <AE12> { [ equal, plus, braceright, dead_ogonek ] };
27 key <AD01> { [ a, A, ae, AE ] };
28 key <AD02> { [ z, Z, guillemotleft, less ] };
29 key <AD03> { [ e, E, EuroSign, cent ] };
30 key <AD11> { [dead_circumflex, dead_diaeresis, dead_diaeresis, dead_abovering ] };
31 key <AD12> { [ dollar, sterling, currency, dead_macron ] };
33 key <AC01> { [ q, Q, at, Greek_OMEGA ] };
34 key <AC10> { [ m, M, mu, masculine ] };
35 key <AC11> { [ ugrave, percent, dead_circumflex, dead_caron] };
36 key <TLDE> { [twosuperior, asciitilde, notsign, notsign ] };
38 key <BKSL> { [ asterisk, mu, dead_grave, dead_breve ] };
39 key <AB01> { [ w, W, lstroke, Lstroke ] };
40 key <AB07> { [ comma, question, dead_acute, dead_doubleacute ] };
41 key <AB08> { [ semicolon, period, horizconnector, multiply ] };
42 key <AB09> { [ colon, slash, periodcentered, division ] };
43 key <AB10> { [ exclam, section, dead_belowdot, dead_abovedot ] };
45 include "level3(ralt_switch)"
48 partial alphanumeric_keys
50 // Contact: Sayamindu Dasgupta <sayamindu@laptop.org>
53 name[Group1]="France";
55 key <AD02> { [ z, Z, VoidSymbol, guillemotleft ] };
57 key <AC02> { [ s, S, VoidSymbol, ssharp ] };
59 key <AB02> { [ x, X, VoidSymbol, guillemotright ] };
61 key <I219> { [ less, greater ] };
64 partial alphanumeric_keys
65 xkb_symbols "Sundeadkeys" {
67 // Modifies the basic French layout to use the Sun dead keys
71 key <AD11> { [dead_circumflex, dead_diaeresis ] };
72 key <AB07> { [comma, question, dead_acute, dead_doubleacute ] };
75 partial alphanumeric_keys
76 xkb_symbols "sundeadkeys" {
77 include "fr(Sundeadkeys)"
79 name[Group1]="France - Sun dead keys";
82 partial alphanumeric_keys
83 xkb_symbols "nodeadkeys" {
85 // Modifies the basic French layout to eliminate all dead keys
89 name[Group1]="France - Eliminate dead keys";
91 key <AE12> { [ equal, plus, braceright, ogonek ] };
92 key <AD11> { [asciicircum, diaeresis ] };
93 key <AD12> { [ dollar, sterling, currency, macron ] };
94 key <AC11> { [ ugrave, percent, asciicircum, caron ] };
95 key <BKSL> { [ asterisk, mu, grave, breve ] };
96 key <AB07> { [ comma, question, acute, doubleacute ] };
97 key <AB10> { [ exclam, section, dead_belowdot, abovedot ] };
101 // Unicode French derivative
102 // Loose refactoring of the historic Linux French keyboard layout
104 // Copyright © 2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
106 // Credits (fr-latin1, fr-latin0, fr-latin9)
107 // © 199x-1996 René Cougnenc ✝
108 // © 1997-2002 Guylhem Aznar <clavier @ externe.net>
109 // © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net>
111 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
112 // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
113 // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
114 // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
115 // ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃
116 // ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃
117 // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
118 // ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃
119 // ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃
120 // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
121 // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃
122 // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃
123 // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
124 // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃
125 // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃
126 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
127 partial alphanumeric_keys
131 include "level3(ralt_switch)"
132 include "nbsp(level4nl)"
133 include "keypad(oss)"
135 name[Group1]="France - Alternative";
138 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
139 key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
140 key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
141 key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘
142 key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin)
143 key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin)
144 key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable)
145 key <AE07> { [ egrave, 7, grave, Egrave ] }; // è 7 ` È
146 key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
147 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
148 key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À
149 key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
150 key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ±
153 key <AD01> { [ a, A, ae, AE ] }; // a A æ Æ
154 key <AD02> { [ z, Z, acircumflex, Acircumflex ] }; // z Z â Â
155 key <AD03> { [ e, E, EuroSign, cent ] }; // e E € ¢
156 key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê
157 key <AD05> { [ t, T, thorn, THORN ] }; // t T þ Þ
158 key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ
159 key <AD07> { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û
160 key <AD08> { [ i, I, icircumflex, Icircumflex ] }; // i I î Î
161 key <AD09> { [ o, O, oe, OE ] }; // o O œ Œ
162 key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô
163 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
164 key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø
167 key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
168 key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
169 key <AC03> { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë
170 key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚
171 key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥
172 key <AC06> { [ h, H, eth, ETH ] }; // h H ð Ð
173 key <AC07> { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü
174 key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï
175 key <AC09> { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ
176 key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö
177 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
178 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
181 key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
182 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “
183 key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ”
184 key <AB03> { [ c, C, copyright, registered ] }; // c C © ®
185 key <AB04> { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable)
186 key <AB05> { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑
187 key <AB06> { [ n, N, notsign, rightarrow ] }; // n N ¬ →
188 key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
189 key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅
190 key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕
191 key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ −
194 partial alphanumeric_keys
195 xkb_symbols "oss_latin9" {
197 // Restricts the fr(oss) layout to latin9 symbols
200 include "keypad(oss_latin9)"
202 name[Group1]="France - Alternative, latin-9 only";
205 key <AE01> { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸
206 key <AE03> { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~
207 key <AE04> { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _
208 key <AE05> { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ -
209 key <AE06> { [ minus, 6, bar, minus ] }; // - 6 | -
210 key <AE08> { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \
211 key <AE11> { [ parenright, degree, bracketright, equal ] }; // ) ° ] =
214 key <AC02> { [ s, S, ssharp, guillemotleft ] }; // s S ß «
215 key <AC04> { [ f, F, apostrophe, apostrophe ] }; // f F ' '
216 key <AC05> { [ g, G, apostrophe, yen ] }; // g G ' ¥
217 key <AC09> { [ l, L, periodcentered, periodcentered ] }; // l L · ·
218 key <BKSL> { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^
221 key <LSGT> { [ less, greater, less, greater ] }; // < > < >
222 key <AB01> { [ w, W, guillemotleft, guillemotleft ] }; // w W « «
223 key <AB02> { [ x, X, guillemotright, guillemotright ] }; // x X » »
224 key <AB04> { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable)
225 key <AB05> { [ b, B, minus, asciicircum ] }; // b B - ^
226 key <AB06> { [ n, N, notsign, greater ] }; // n N ¬ >
227 key <AB07> { [ comma, question, questiondown, period ] }; // , ? ¿ .
228 key <AB08> { [ semicolon, period, multiply, periodcentered ] }; // ; . × ·
229 key <AB09> { [ colon, slash, division, slash ] }; // : / ÷ /
230 key <AB10> { [ exclam, section, exclamdown, minus ] }; // ! § ¡ -
233 partial alphanumeric_keys
234 xkb_symbols "oss_Sundeadkeys" {
236 // Modifies the basic fr(oss) layout to use the Sun dead keys
241 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ¹ ² ³ ¸
244 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚
247 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
248 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
251 partial alphanumeric_keys
252 xkb_symbols "oss_sundeadkeys" {
254 include "fr(oss_Sundeadkeys)"
256 name[Group1]="France - Alternative, Sun dead keys";
259 partial alphanumeric_keys
260 xkb_symbols "oss_nodeadkeys" {
262 // Modifies the basic fr(oss) layout to eliminate all dead keys
266 name[Group1]="France - Alternative, eliminate dead keys";
268 key <TLDE> { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸
269 key <AE01> { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨
270 key <AE03> { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘
273 key <AD11> { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å
274 key <AC11> { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù
275 key <BKSL> { [ asterisk, mu, grave, macron ] }; // * µ ` ̄
279 // Historic Linux French keyboard layout (fr-latin9)
280 // Copyright (c) 199x, 2002 Rene Cougnenc (original work)
281 // Guylhem Aznar <clavier @ externe.net> (maintainer)
282 // Nicolas Mailhot <Nicolas.Mailhot @ laposte.net>
283 // (XFree86 submission)
285 // $XFree86: xc/programs/xkbcomp/symbols/fr-latin9,v 1.1 2002/12/20 02:07:11 dawes Exp $
287 // This layout has long been distributed and refined outside official channels.
288 // To this day it remains more feature-rich and popular than the 'fr' layout.
290 // This file is derived from an original version by Guylhem Aznar. The
291 // original version is always available from:
292 // http://en.tldp.org/HOWTO/Francophones-HOWTO.html
293 // and is distributed under a GPL license.
295 // The author has given permission for this derived version to be distributed
296 // under the standard XFree86 license. He would like all changes to this
297 // version be send to him at <clavier @ externe.net> so he can sync the
298 // identically named linux console map (kbd, linux-console) and this
299 // fileout-of-tree GPL version.
301 // Now follows the keyboard design description in French.
302 // (If you can't read it you probably have no business changing this file anyway:)
304 // Les accents circonflexes des principales voyelles sont obtenus avec
305 // la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift.
307 // ____ _________ _____________ _______
308 // | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause |
309 // | s a| s = normal, a = AltGr | Exec | | Halte |
310 // ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯
311 // ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______
312 // | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- |
313 // | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| |
314 // ========================================================================
315 // | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , |
316 // | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' |
317 // ===================================================================¬ |
318 // | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| |
319 // | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| |
320 // ========================================================================
321 // | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ |
322 // | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | |
323 // ========================================================================
325 // | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl |
326 // ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯
329 // Si les touches mortes fonctionnent, utiliser les accents dits
330 // « morts », i.e. fonctionnant comme l'accent circonflexe & le
331 // tréma des machines à écrire ; sont disponibles :
333 // (^) : accent circonflexe,
334 // Shift+(^) : tréma,
335 // Shift+AltGr (^) : tilde,
336 // AltGr (1) : accent aigu,
337 // AltGr (7) : accent grave
339 // Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma
340 // sur les vielles machines à écrire :
342 // AltGr (1) puis e : é
343 // Shift+AltGr (1) puis e : É ...
344 partial alphanumeric_keys
346 xkb_symbols "latin9" {
349 include "nbsp(level3)"
351 name[Group1]="France - (Legacy) Alternative";
353 key <TLDE> { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] };
354 key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
355 key <AE02> { [ eacute, 2, asciitilde, Eacute ] };
356 key <AE03> { [ quotedbl, 3, numbersign, cedilla ] };
357 key <AE04> { [ apostrophe, 4, braceleft, acute ] };
358 key <AE05> { [ parenleft, 5, bracketleft, diaeresis ] };
359 key <AE06> { [ minus, 6, bar, brokenbar ] };
360 key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
361 key <AE08> { [ underscore, 8, backslash, macron ] };
362 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] };
363 key <AE10> { [ agrave, 0, at, Agrave ] };
364 key <AE11> { [ parenright, degree, bracketright, ydiaeresis ] };
365 key <AE12> { [ equal, plus, braceright, dead_abovering ] };
367 key <AD01> { [ a, A, acircumflex, adiaeresis ] };
368 key <AD02> { [ z, Z, aring, Aring ] };
369 key <AD03> { [ e, E, EuroSign, cent ] };
370 key <AD04> { [ r, R, ccedilla, Ccedilla ] };
371 key <AD05> { [ t, T, thorn, THORN ] };
372 key <AD06> { [ y, Y, yacute, Yacute ] };
373 key <AD07> { [ u, U, ucircumflex, udiaeresis ] };
374 key <AD08> { [ i, I, icircumflex, idiaeresis ] };
375 key <AD09> { [ o, O, ocircumflex, odiaeresis ] };
376 key <AD10> { [ p, P, paragraph, quoteleft ] };
377 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] };
378 key <AD12> { [ dollar, sterling, ecircumflex, ediaeresis ] };
380 key <AC01> { [ q, Q, Acircumflex, Adiaeresis ] };
381 key <AC02> { [ s, S, oslash, Ooblique ] };
382 key <AC03> { [ d, D, Ecircumflex, Ediaeresis ] };
383 key <AC04> { [ f, F, plusminus, ordfeminine ] };
384 key <AC05> { [ g, G, ae, AE ] };
385 key <AC06> { [ h, H, eth, ETH ] };
386 key <AC07> { [ j, J, Ucircumflex, Udiaeresis ] };
387 key <AC08> { [ k, K, Icircumflex, Idiaeresis ] };
388 key <AC09> { [ l, L, Ocircumflex, Odiaeresis ] };
389 key <AC10> { [ m, M, onesuperior, masculine ] };
390 key <AC11> { [ ugrave, percent, twosuperior, Ugrave ] };
391 key <BKSL> { [ asterisk, mu, threesuperior, yen ] };
393 key <LSGT> { [ less, greater, bar ] };
394 key <AB01> { [ w, W, guillemotleft ] };
395 key <AB02> { [ x, X, guillemotright ] };
396 key <AB03> { [ c, C, copyright ] };
397 key <AB04> { [ v, V, registered ] };
398 key <AB05> { [ b, B, ssharp ] };
399 key <AB06> { [ n, N, notsign ] };
400 key <AB07> { [ comma, question, questiondown ] };
401 key <AB08> { [ semicolon, period, multiply ] };
402 key <AB09> { [ colon, slash, division ] };
403 key <AB10> { [ exclam, section, exclamdown ] };
405 // French uses a comma as decimal separator, but keyboards are labeled with a period
406 // Will take effect when KP_Decimal is mapped to the locale decimal separator
407 key <KPDL> { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] };
409 include "level3(ralt_switch)"
412 partial alphanumeric_keys
413 xkb_symbols "latin9_Sundeadkeys" {
415 // Modifies the basic fr-latin9 layout to use the Sun dead keys
419 key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] };
420 key <AE07> { [ egrave, 7, dead_grave, Egrave ] };
421 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, quoteright ] };
425 partial alphanumeric_keys
426 xkb_symbols "latin9_sundeadkeys" {
428 include "fr(latin9_Sundeadkeys)"
430 name[Group1]="France - (Legacy) Alternative, Sun dead keys";
433 partial alphanumeric_keys
434 xkb_symbols "latin9_nodeadkeys" {
436 // Modifies the basic fr-latin9 layout to eliminate all dead keys
440 name[Group1]="France - (Legacy) Alternative, eliminate dead keys";
442 key <AE01> { [ ampersand, 1, apostrophe, periodcentered ] };
443 key <AE07> { [ egrave, 7, grave, Egrave ] };
444 key <AE12> { [ equal, plus, braceright ] };
445 key <AD11> { [ asciicircum, diaeresis, asciitilde, quoteright ] };
448 // Bépo : Improved ergonomic french keymap using Dvorak method.
449 // Built by community on 'Dvorak Fr / Bépo' :
450 // see http://www.clavier-dvorak.org/wiki/ to join and help.
451 // XOrg integration (1.0rc2 version) in 2008
452 // by Frédéric Boiteux <fboiteux at free dot fr>
454 // Bépo layout (1.0rc2 version) for a pc105 keyboard (french) :
456 // │ S A│ S = Shift, A = AltGr + Shift
457 // │ s a│ s = normal, a = AltGr
460 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
461 // │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃
462 // │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃
463 // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
464 // ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃
465 // ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃
466 // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
467 // ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃
468 // ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃
469 // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
470 // ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃
471 // ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃
472 // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
473 // ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃
474 // ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃
475 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
476 partial alphanumeric_keys
479 include "level3(ralt_switch)"
480 include "keypad(oss)"
482 name[Group1]= "France - Bepo, ergonomic, Dvorak way";
485 key <TLDE> { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶
486 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „
487 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “
488 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ”
489 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤
490 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥
491 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^
492 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬
493 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼
494 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½
495 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾
496 key <AE11> { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′
497 key <AE12> { [ percent, grave, U2030, seconds ] }; // % ` ‰ ″
500 key <AD01> { [ b, B, bar, brokenbar ] }; // b B | ¦
501 key <AD02> { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝
502 key <AD03> { [ p, P, ampersand, section ] }; // p P & §
503 key <AD04> { [ o, O, oe, OE ] }; // o O œ Œ
504 key <AD05> { [ egrave, Egrave, dead_grave, grave ] }; // è È ` `
505 key <AD06> { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡
506 key <AD07> { [ v, V, dead_caron ] }; // v V ˇ
507 key <AD08> { [ d, D, eth, ETH ] }; // d D ð Ð
508 key <AD09> { [ l, L, dead_stroke ] }; // l L /
509 key <AD10> { [ j, J, U0133, U0132 ] }; // j J ij IJ
510 key <AD11> { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə
511 key <AD12> { [ w, W, dead_breve ] }; // w W ̆
514 key <AC01> { [ a, A, ae, AE ] }; // a A æ Æ
515 key <AC02> { [ u, U, ugrave, Ugrave ] }; // u U ù Ù
516 key <AC03> { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙
517 key <AC04> { [ e, E, EuroSign, dead_currency ] }; // e E € ¤
518 key <AC05> { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛
519 key <AC06> { [ c, C, copyright, U017F ] }; // c C © ſ
520 key <AC07> { [ t, T, thorn, THORN ] }; // t T þ Þ
521 key <AC08> { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ
522 key <AC09> { [ r, R, registered, trademark ] }; // r R ® ™
523 key <AC10> { [ n, N, dead_tilde ] }; // n N ~
524 key <AC11> { [ m, M, dead_macron, masculine ] }; // m M ̄ º
525 key <BKSL> { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ ,
528 key <LSGT> { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê /
529 key <AB01> { [ agrave, Agrave, backslash ] }; // à À \
530 key <AB02> { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘
531 key <AB03> { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’
532 key <AB04> { [ period, colon, ellipsis, periodcentered ] }; // . : … ·
533 key <AB05> { [ k, K, asciitilde ] }; // k K ~
534 key <AB06> { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉
535 key <AB07> { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣
536 key <AB08> { [ g, G, mu ] }; // g G µ
537 key <AB09> { [ h, H, dagger, doubledagger ] }; // h H † ‡
538 key <AB10> { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª
540 key <SPCE> { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin)
543 partial alphanumeric_keys
544 xkb_symbols "bepo_latin9" {
546 // Restricts the fr(bepo) layout to latin9 symbols
549 include "keypad(oss_latin9)"
551 name[Group1]="France - Bepo, ergonomic, Dvorak way, latin-9 only";
553 key <TLDE> { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶
555 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1
556 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 <
557 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 >
558 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [
559 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ]
560 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼
561 key <AE11> { [ equal, degree ] }; // = °
562 key <AE12> { [ percent, grave ] }; // % `
564 key <AD01> { [ b, B, bar ] }; // b B |
565 key <AD02> { [ eacute, Eacute, dead_acute ] }; // é É ˊ
566 key <AD10> { [ j, J ] }; // j J
567 key <AD11> { [ z, Z ] }; // z Z
568 key <AD12> { [ w, W ] }; // w W
570 key <AC03> { [ i, I, dead_diaeresis ] }; // i I ̈
571 key <AC05> { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛
572 key <AC06> { [ c, C, copyright ] }; // c C ©
573 key <AC08> { [ s, S, ssharp ] }; // s S ß
574 key <AC09> { [ r, R, registered ] }; // r R ®
575 key <AC11> { [ m, M, macron, masculine ] }; // m M ̄ º
577 key <AB02> { [ y, Y, braceleft ] }; // y Y {
578 key <AB03> { [ x, X, braceright ] }; // x X }
579 key <AB04> { [ period, colon ] }; // . :
580 key <AB09> { [ h, H ] }; // h H
581 key <AB10> { [ f, F, f, ordfeminine ] }; // f F ª
583 // Note : on a besoin de redéfinir les niveaux 3 et 4,
584 // donc nbsp(level2) ne suffit pas !
585 key <SPCE> { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable)
588 // Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html
589 // thanks to Fabien Cazenave for his help
590 // Licence : X11 (the layout itself is released under CC-NC-ND licence)
593 // Base layer + dead AltGr key (`):
594 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
595 // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃
596 // │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃
597 // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
598 // ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃
599 // ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃
600 // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃
601 // ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃
602 // ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃
603 // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
604 // ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃
605 // ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃
606 // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
607 // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃
608 // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃
609 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
611 // Notice the specific Caps_Lock layer:
612 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓
613 // │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃
614 // │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃
615 // ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫
616 // ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃
617 // ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
618 // ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃
619 // ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
620 // ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃
621 // ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫
622 // ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃
623 // ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃
624 // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫
625 // ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃
626 // ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃
627 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛
629 partial alphanumeric_keys modifier_keys
630 xkb_symbols "dvorak" {
631 name[Group1]="France - Dvorak";
634 key <TLDE> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] };
635 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] };
636 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] };
637 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] };
638 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] };
639 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] };
640 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] };
641 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] };
642 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] };
643 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] };
644 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] };
645 key <AE11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] };
646 key <AE12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] };
649 key <AD01> { [ colon, question, ae, AE ] };
650 key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] };
651 key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] };
652 key <AD04> { [ g, G, EuroSign ] };
653 key <AD05> { [ period, exclam, degree ] };
654 key <AD06> { [ h, H ] };
655 key <AD07> { [ v, V ] };
656 key <AD08> { [ c, C, ccedilla, Ccedilla ] };
657 key <AD09> { [ m, M, mu ] };
658 key <AD10> { [ k, K ] };
659 key <AD11> { [ z, Z ] };
660 key <AD12> { [ dead_diaeresis, ampersand ] };
663 key <AC01> { [ o, O, ograve, Ograve ] };
664 key <AC02> { [ a, A, agrave, Agrave ] };
665 key <AC03> { [ u, U, ugrave, Ugrave ] };
666 key <AC04> { [ e, E, egrave, Egrave ] };
667 key <AC05> { [ b, B ] };
668 key <AC06> { [ f, F ] };
669 key <AC07> { [ s, S, guillemotleft ] };
670 key <AC08> { [ t, T ] };
671 key <AC09> { [ n, N, guillemotright ] };
672 key <AC10> { [ d, D ] };
673 key <AC11> { [ w, W ] };
674 key <BKSL> { [ asciitilde, numbersign ] };
677 key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] };
678 key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] };
679 key <AB02> { [ q, Q, braceleft ] };
680 key <AB03> { [ comma, at, braceright ] };
681 key <AB04> { [ i, I, igrave, Igrave ] };
682 key <AB05> { [ y, Y, sterling ] };
683 key <AB06> { [ x, X ] };
684 key <AB07> { [ r, R, masculine ] };
685 key <AB08> { [ l, L ] };
686 key <AB09> { [ p, P, section ] };
687 key <AB10> { [ j, J ] };
689 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
692 // C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg.
693 // Copyright © 2009 Dominique Pellé <dominique.pelle@gmail.com>
697 // │ S A│ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift
698 // │ s a│ s = normal, a = AltGr
701 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
702 // │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃
703 // │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃
704 // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
705 // ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃
706 // ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃
707 // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
708 // ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃
709 // ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃
710 // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
711 // ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃
712 // ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃
713 // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
714 // ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃
715 // ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃
716 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
717 partial alphanumeric_keys
720 include "keypad(oss)"
722 name[Group1]= "France - Breton";
725 key <TLDE> { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] };
726 key <AE01> { [ ampersand, 1, dead_macron, Greek_DELTA ] };
727 key <AE02> { [ eacute, 2, dead_acute, Greek_THETA ] };
728 key <AE03> { [ quotedbl, 3, numbersign, Greek_LAMDA ] };
729 key <AE04> { [ apostrophe, 4, braceleft, Greek_XI ] };
730 key <AE05> { [ parenleft, 5, bracketleft, Greek_PI ] };
731 key <AE06> { [ minus, 6, bar, Greek_SIGMA ] };
732 key <AE07> { [ egrave, 7, dead_grave, Greek_PHI ] };
733 key <AE08> { [ underscore, 8, backslash, Greek_PSI ] };
734 key <AE09> { [ ccedilla, 9, plusminus, Ccedilla ] };
735 key <AE10> { [ agrave, 0, at, Greek_OMEGA ] };
736 key <AE11> { [ parenright, dead_abovering, bracketright, ssharp ] };
737 key <AE12> { [ equal, plus, braceright, notsign ] };
740 // Handling the C'H key correctly requires an inputmethod (XIM)
741 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
742 // key <AD01> { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] };
743 key <AD01> { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] };
744 key <AD02> { [ w, W, Greek_omega, Greek_omega ] };
745 key <AD03> { [ e, E, EuroSign, Greek_epsilon ] };
746 key <AD04> { [ r, R, Greek_rho, Greek_rho ] };
747 key <AD05> { [ t, T, Greek_tau, Greek_tau ] };
748 key <AD06> { [ y, Y, Greek_psi, Greek_psi ] };
749 key <AD07> { [ u, U, Greek_upsilon, Greek_upsilon ] };
750 key <AD08> { [ i, I, idotless, Greek_iota ] };
751 key <AD09> { [ o, O, oe, OE ] };
752 key <AD10> { [ p, P, Greek_pi, Greek_pi ] };
753 key <AD11> { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] };
754 key <AD12> { [ slash, asterisk, guillemotright, sterling ] };
757 key <AC01> { [ a, A, ae, AE ] };
758 key <AC02> { [ s, S, Greek_sigma, Greek_sigma ] };
759 key <AC03> { [ d, D, dollar, Greek_delta ] };
760 key <AC04> { [ f, F, Greek_phi, Greek_phi ] };
761 key <AC05> { [ g, G, Greek_gamma, Greek_gamma ] };
762 key <AC06> { [ h, H, Greek_eta, Greek_eta ] };
763 key <AC07> { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] };
764 key <AC08> { [ k, K, Greek_kappa, Greek_kappa ] };
765 key <AC09> { [ l, L, Greek_lamda, Greek_lambda ] };
766 key <AC10> { [ m, M, Greek_mu, Greek_mu ] };
767 key <AC11> { [ ugrave, Ugrave, ubreve, registered ] };
768 key <BKSL> { [ question, exclam, questiondown, exclamdown ] };
771 key <LSGT> { [ q, Q, less, Greek_theta ] };
772 key <AB01> { [ z, Z, greater, Greek_zeta ] };
773 key <AB02> { [ x, X, Greek_xi, Greek_xi ] };
774 key <AB03> { [ c, C, cent, Greek_chi ] };
775 key <AB04> { [ v, V ] };
776 key <AB05> { [ b, B, Greek_beta, Greek_beta ] };
777 key <AB06> { [ n, N, Greek_nu, Greek_nu ] };
778 // Handling the CH key correctly requires an inputmethod (XIM)
779 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506
780 // key <AB07> { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] };
781 key <AB07> { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] };
782 key <AB08> { [ ntilde, Ntilde ] };
783 key <AB09> { [ period, colon, section, copyright ] };
784 key <AB10> { [ comma, semicolon, percent ] };
786 key <SPCE> { [ space, nobreakspace, space, nobreakspace ] };
788 include "level3(ralt_switch)"
792 // Author : 2009 Thomas Metz <tmetz @ free.fr>
793 // Derivated from the layout defined at http://www.panoccitan.org
795 // From OSS french keyboard :
796 // - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ
797 // - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë
799 // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
800 // │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃
801 // │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃
802 // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
803 // ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃
804 // ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃
805 // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
806 // ┃ ┃ Q Ä │ S „ │ D Â │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃
807 // ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃
808 // ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫
809 // ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃
810 // ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃
811 // ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛
812 // ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃
813 // ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃
814 // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
815 partial alphanumeric_keys
818 include "keypad(oss)"
820 name[Group1]= "France - Occitan";
823 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸
824 key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨
825 key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É
826 key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘
827 key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin)
828 key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin)
829 key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable)
830 key <AE07> { [ egrave, 7, grave, Egrave ] }; // è 7 ` È
831 key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™
832 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç
833 key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À
834 key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠
835 key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ±
838 key <AD01> { [ a, A, aacute, Aacute ] }; // a A á Á
839 key <AD02> { [ z, Z, ae, AE ] }; // z Z æ Æ
840 key <AD03> { [ e, E, EuroSign, cent ] }; // e E € ¢
841 key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê
842 key <AD05> { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë
843 key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û
844 key <AD07> { [ u, U, uacute, Uacute ] }; // u U ú Ú
845 key <AD08> { [ i, I, iacute, Iacute ] }; // i I í Í
846 key <AD09> { [ o, O, oacute, Oacute ] }; // o O ó Ó
847 key <AD10> { [ p, P, ograve, Ograve ] }; // p P ò Ò
848 key <AD11> { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ
849 key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø
852 key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä
853 key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „
854 key <AC03> { [ d, D, acircumflex, Acircumflex ] }; // d D â Â
855 key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚
856 key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥
857 key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü
858 key <AC07> { [ j, J, icircumflex, Icircumflex] }; // j J î Î
859 key <AC08> { [ k, K, idiaeresis, Idiaeresis] }; // k K ï Ï
860 key <AC09> { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô
861 key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö
862 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù
863 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄
866 key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥
867 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “
868 key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ”
869 key <AB03> { [ c, C, copyright, registered ] }; // c C © ®
870 key <AB04> { [ v, V, rightarrow, leftarrow ] }; // v V → ←
871 key <AB05> { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑
872 key <AB06> { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ
873 key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ …
874 key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅
875 key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕
876 key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ −
879 // Marc.Shapiro@inria.fr 19-sep-1998
880 // modifications : Etienne Herlent <eherlent@linux-france.org> june 2000
881 // adapted to the new input layer :
882 // Martin Costabel <costabel@wanadoo.fr> 3-jan-2001
883 // adapted for Latin9 alphabet (ISO-8859-15):
884 // Etienne Herlent <eherlent@linux-france.org> march 2005
886 // This map is an almost-complete mapping of the standard French
887 // MacIntosh keyboard under Xwindows. I tried to remain as faithful
888 // as possible to the Mac meaning of each key. I did this entirely by
889 // hand and by intuition, relying on the Clavier (Keyboard?) Desktop
890 // Accessory for the Mac meaning of keys, and on reading keysymdef.h
891 // to intuit the corresponding X names. Lacking proper documentation,
892 // I may have made some mistakes.
894 // Entries marked CHECK are particularly uncertain
896 // Entries marked MISSING mark Mac characters for which I was unable
897 // to find a corresponding keysym. (Some for sure don't: e.g. the
898 // Apple mark and the oe/OE character; others I may have simply not
901 // Copied from macintosh_vndr/fr
902 partial alphanumeric_keys
905 name[Group1]= "France - Macintosh";
907 // Alphanumeric section
908 key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
909 key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple
910 key <AE02> { [ eacute, 2, ediaeresis, Eacute ] };
911 key <AE03> { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks
912 key <AE04> { [ apostrophe, 4, VoidSymbol, VoidSymbol ] };
913 key <AE05> { [ parenleft, 5, braceleft, bracketleft ] };
915 key <AE06> { [ section, 6, paragraph, aring ] };
916 key <AE07> { [ egrave, 7, guillemotleft, guillemotright ] };
917 key <AE08> { [ exclam, 8, exclamdown, Ucircumflex ] };
918 key <AE09> { [ ccedilla, 9, Ccedilla, Aacute ] };
919 key <AE10> { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash
920 key <AE11> { [ parenright, degree, braceright, bracketright ] };
921 key <AE12> { [ minus, underscore, emdash, endash ] }; // CHECK dashes
923 key <AD01> { [ a, A, ae, AE ] };
924 key <AD02> { [ z, Z, Acircumflex, Aring ] };
925 key <AD03> { [ e, E, ecircumflex, Ecircumflex ] };
926 key <AD04> { [ r, R, registered, currency ] };
927 key <AD05> { [ t, T, VoidSymbol, VoidSymbol ] };
928 key <AD06> { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9
929 key <AD07> { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine?
930 key <AD08> { [ i, I, icircumflex, idiaeresis ] };
931 key <AD09> { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9
932 key <AD10> { [ p, P, VoidSymbol, VoidSymbol ] };
933 key <AD11> { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] };
934 key <AD12> { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9
936 key <AC01> { [ q, Q, acircumflex, Agrave ] };
937 key <AC02> { [ s, S, Ograve, VoidSymbol ] };
938 key <AC03> { [ d, D, VoidSymbol, VoidSymbol ] };
939 key <AC04> { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f??
940 key <AC05> { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl
941 key <AC06> { [ h, H, Igrave, Icircumflex ] };
942 key <AC07> { [ j, J, Idiaeresis, Iacute ] };
943 key <AC08> { [ k, K, Egrave, Ediaeresis ] };
944 key <AC09> { [ l, L, notsign, bar ] };
945 key <AC10> { [ m, M, mu, Oacute ] };
946 key <AC11> { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille
947 key <BKSL> { [ dead_grave, sterling, at, numbersign ] };
949 key <LSGT> { [ less, greater, VoidSymbol, VoidSymbol ] };
950 key <AB01> { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket)
951 key <AB02> { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash
952 key <AB03> { [ c, C, copyright, cent ] };
953 key <AB04> { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical
954 key <AB05> { [ b, B, ssharp, VoidSymbol ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s
955 key <AB06> { [ n, N, dead_tilde, asciitilde ] };
956 key <AB07> { [ comma, question, VoidSymbol, questiondown ] };
957 key <AB08> { [ semicolon, period, VoidSymbol, periodcentered ] };
958 key <AB09> { [ colon, slash, division, backslash ] };
959 key <AB10> { [ equal, plus, VoidSymbol, plusminus ] };
961 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
962 // End alphanumeric section
964 key <KPDL> { [ comma,KP_Decimal ] };
966 include "level3(ralt_switch)"
969 partial alphanumeric_keys
973 name[Group1]= "France - Georgian AZERTY Tskapo";
975 key <TLDE> { [ exclam, noSymbol ] };
976 key <AE01> { [ 0x0100201e, 1 ] };
977 key <AE02> { [ 0x01002116, 2 ] };
978 key <AE03> { [ percent, 3 ] };
979 key <AE04> { [ parenleft, 4 ] };
980 key <AE05> { [ colon, 5 ] };
981 key <AE06> { [ semicolon, 6 ] };
982 key <AE07> { [ question, 7 ] };
983 key <AE08> { [ 0x01002116, 8 ] };
984 key <AE09> { [ degree, 9 ] };
985 key <AE10> { [ parenright, 0 ] };
986 key <AE11> { [ minus, underscore, 0x01002014 ] };
987 key <AE12> { [ less, greater ] };
989 key <AD01> { [ 0x010010d0, 0x010010fa ] };
990 key <AD02> { [ 0x010010d6, Z ] };
991 key <AD03> { [ 0x010010d4, E, 0x010010f1 ] };
992 key <AD04> { [ 0x010010e0, 0x010000ae ] };
993 key <AD05> { [ 0x010010e2, T ] };
994 key <AD06> { [ 0x010010e7, 0x010010f8 ] };
995 key <AD07> { [ 0x010010e3, U ] };
996 key <AD08> { [ 0x010010d8, 0x010010f2 ] };
997 key <AD09> { [ 0x010010dd, O ] };
998 key <AD10> { [ 0x010010de, P ] };
999 key <AD11> { [ 0x010010d7, T ] };
1000 key <AD12> { [ 0x010010eb, Z ] };
1002 key <AC01> { [ 0x010010e5, Q ] };
1003 key <AC02> { [ 0x010010e1, S ] };
1004 key <AC03> { [ 0x010010d3, D ] };
1005 key <AC04> { [ 0x010010e4, 0x010010f6 ] };
1006 key <AC05> { [ 0x010010d2, 0x010010f9 ] };
1007 key <AC06> { [ 0x010010f0, 0x010010f5 ] };
1008 key <AC07> { [ 0x010010ef, 0x010010f7 ] };
1009 key <AC08> { [ 0x010010d9, K ] };
1010 key <AC09> { [ 0x010010da, L ] };
1011 key <AC10> { [ 0x010010db, M ] };
1012 key <AC11> { [ 0x010010df, J ] };
1013 key <BKSL> { [ 0x010010e9, 0x010000a9 ] };
1015 key <LSGT> { [ guillemotleft,guillemotright ] };
1016 key <AB01> { [ 0x010010ec, W ] };
1017 key <AB02> { [ 0x010010ee, 0x010010f4 ] };
1018 key <AB03> { [ 0x010010ea, 0x010000a9 ] };
1019 key <AB04> { [ 0x010010d5, 0x010010f3 ] };
1020 key <AB05> { [ 0x010010d1, B ] };
1021 key <AB06> { [ 0x010010dc, 0x010010fc ] };
1022 key <AB07> { [ comma, 0x01002014 ] };
1023 key <AB08> { [ 0x010010e8, S ] };
1024 key <AB09> { [ 0x010010e6, noSymbol ] };
1025 key <AB10> { [ 0x010010ed, noSymbol ] };