fr revision bb3a541c
1default partial alphanumeric_keys 2xkb_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 42partial alphanumeric_keys 43xkb_symbols "olpc" { 44 // Contact: Sayamindu Dasgupta <sayamindu@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 62partial alphanumeric_keys 63xkb_symbols "nodeadkeys" { 64 65 // Modifies the basic French layout to eliminate all dead keys 66 67 include "fr(basic)" 68 69 name[Group1]="French (no dead keys)"; 70 71 key <AE12> { [ equal, plus, braceright, ogonek ] }; 72 key <AD11> { [asciicircum, diaeresis ] }; 73 key <AD12> { [ dollar, sterling, currency, macron ] }; 74 key <AC11> { [ ugrave, percent, asciicircum, caron ] }; 75 key <BKSL> { [ asterisk, mu, grave, breve ] }; 76 key <AB07> { [ comma, question, acute, doubleacute ] }; 77 key <AB10> { [ exclam, section, dead_belowdot, abovedot ] }; 78}; 79 80 81// Unicode French derivative 82// Loose refactoring of the historic Linux French keyboard layout 83// 84// Copyright © 2006-2008 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 85// 86// Credits (fr-latin1, fr-latin0, fr-latin9) 87// © 199x-1996 René Cougnenc ✝ 88// © 1997-2002 Guylhem Aznar <clavier @ externe.net> 89// © 2003-2006 Nicolas Mailhot <nicolas.mailhot @ laposte.net> 90// 91// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 92// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ 93// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ 94// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 95// ┃ ┃ A Æ │ Z  │ E ¢ │ R Ê │ T Þ │ Y Ÿ │ U Û │ I Î │ O Œ │ P Ô │ ¨ ˚ │ £ Ø ┃Entrée ┃ 96// ┃Tab ↹ ┃ a æ │ z â │ e € │ r ê │ t þ │ y ÿ │ u û │ i î │ o œ │ p ô │ ^ ~ │ $ ø ┃ ⏎ ┃ 97// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 98// ┃ ┃ Q Ä │ S „ │ D Ë │ F ‚ │ G ¥ │ H Ð │ J Ü │ K Ï │ L Ŀ │ M Ö │ % Ù │ µ ̄ ┃ ┃ 99// ┃Maj ⇬ ┃ q ä │ s ß │ d ë │ f ‘ │ g ’ │ h ð │ j ü │ k ï │ l ŀ │ m ö │ ù ' │ * ` ┃ ┃ 100// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ 101// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ 102// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ 103// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ 104// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ 105// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ 106// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 107partial alphanumeric_keys 108xkb_symbols "oss" { 109 110 include "latin" 111 include "level3(ralt_switch)" 112 include "nbsp(level4n)" 113 include "keypad(oss)" 114 115 name[Group1]="French (alt.)"; 116 117 // First row 118 key <TLDE> { [ twosuperior, threesuperior, onesuperior, dead_cedilla ] }; // ² ³ ¹ ¸ 119 key <AE01> { [ ampersand, 1, dead_caron, dead_ogonek ] }; // & 1 ˇ ̨ 120 key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; // é 2 ~ É 121 key <AE03> { [ quotedbl, 3, numbersign, dead_breve ] }; // " 3 # ˘ 122 key <AE04> { [ apostrophe, 4, braceleft, 0x1002014 ] }; // ' 4 { — (tiret cadratin) 123 key <AE05> { [ parenleft, 5, bracketleft, 0x1002013 ] }; // ( 5 [ – (tiret demi-cadratin) 124 key <AE06> { [ minus, 6, bar, 0x1002011 ] }; // - 6 | ‑ (tiret insécable) 125 key <AE07> { [ egrave, 7, grave, Egrave ] }; // è 7 ` È 126 key <AE08> { [ underscore, 8, backslash, trademark ] }; // _ 8 \ ™ 127 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; // ç 9 ^ Ç 128 key <AE10> { [ agrave, 0, at, Agrave ] }; // à 0 @ À 129 key <AE11> { [ parenright, degree, bracketright, notequal ] }; // ) ° ] ≠ 130 key <AE12> { [ equal, plus, braceright, plusminus ] }; // = + } ± 131 132 // Second row 133 key <AD01> { [ a, A, ae, AE ] }; // a A æ Æ 134 key <AD02> { [ z, Z, acircumflex, Acircumflex ] }; // z Z â  135 key <AD03> { [ e, E, EuroSign, cent ] }; // e E € ¢ 136 key <AD04> { [ r, R, ecircumflex, Ecircumflex ] }; // r R ê Ê 137 key <AD05> { [ t, T, thorn, THORN ] }; // t T þ Þ 138 key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; // y Y ÿ Ÿ 139 key <AD07> { [ u, U, ucircumflex, Ucircumflex ] }; // u U û Û 140 key <AD08> { [ i, I, icircumflex, Icircumflex ] }; // i I î Î 141 key <AD09> { [ o, O, oe, OE ] }; // o O œ Œ 142 key <AD10> { [ p, P, ocircumflex, Ocircumflex ] }; // p P ô Ô 143 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ] }; // ^ ̈ ̃ ˚ 144 key <AD12> { [ dollar, sterling, oslash, Ooblique ] }; // $ £ ø Ø 145 146 // Third row 147 key <AC01> { [ q, Q, adiaeresis, Adiaeresis ] }; // q Q ä Ä 148 key <AC02> { [ s, S, ssharp, doublelowquotemark ] }; // s S ß „ 149 key <AC03> { [ d, D, ediaeresis, Ediaeresis ] }; // d D ë Ë 150 key <AC04> { [ f, F, leftsinglequotemark, singlelowquotemark ] }; // f F ‘ ‚ 151 key <AC05> { [ g, G, rightsinglequotemark, yen ] }; // g G ’ ¥ 152 key <AC06> { [ h, H, eth, ETH ] }; // h H ð Ð 153 key <AC07> { [ j, J, udiaeresis, Udiaeresis ] }; // j J ü Ü 154 key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï 155 key <AC09> { [ l, L, 0x1000140, 0x100013F ] }; // l L ŀ Ŀ 156 key <AC10> { [ m, M, odiaeresis, Odiaeresis ] }; // m M ö Ö 157 key <AC11> { [ ugrave, percent, dead_acute, Ugrave ] }; // ù % ' Ù 158 key <BKSL> { [ asterisk, mu, dead_grave, dead_macron ] }; // * µ ` ̄ 159 160 // Fourth row 161 key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ 162 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // w W « “ 163 key <AB02> { [ x, X, guillemotright, rightdoublequotemark ] }; // x X » ” 164 key <AB03> { [ c, C, copyright, registered ] }; // c C © ® 165 key <AB04> { [ v, V, 0x100202F, leftarrow ] }; // v V ⍽ ← (espace fine insécable) 166 key <AB05> { [ b, B, downarrow, uparrow ] }; // b B ↓ ↑ 167 key <AB06> { [ n, N, notsign, rightarrow ] }; // n N ¬ → 168 key <AB07> { [ comma, question, questiondown, 0x1002026 ] }; // , ? ¿ … 169 key <AB08> { [ semicolon, period, multiply, 0x10022C5 ] }; // ; . × ⋅ 170 key <AB09> { [ colon, slash, division, 0x1002215 ] }; // : / ÷ ∕ 171 key <AB10> { [ exclam, section, exclamdown, 0x1002212 ] }; // ! § ¡ − 172}; 173 174partial alphanumeric_keys 175xkb_symbols "oss_latin9" { 176 177 // Restricts the fr(oss) layout to latin9 symbols 178 179 include "fr(oss)" 180 include "keypad(oss_latin9)" 181 182 name[Group1]="French (alt., Latin-9 only)"; 183 184 // First row 185 key <AE01> { [ ampersand, 1, dead_caron, dead_cedilla ] }; // & 1 ˇ ¸ 186 key <AE03> { [ quotedbl, 3, numbersign, dead_tilde ] }; // " 3 # ~ 187 key <AE04> { [ apostrophe, 4, braceleft, underscore ] }; // ' 4 { _ 188 key <AE05> { [ parenleft, 5, bracketleft, minus ] }; // ( 5 [ - 189 key <AE06> { [ minus, 6, bar, minus ] }; // - 6 | - 190 key <AE08> { [ underscore, 8, backslash, backslash ] }; // _ 8 \ \ 191 key <AE11> { [ parenright, degree, bracketright, equal ] }; // ) ° ] = 192 193 // Third row 194 key <AC02> { [ s, S, ssharp, guillemotleft ] }; // s S ß « 195 key <AC04> { [ f, F, apostrophe, apostrophe ] }; // f F ' ' 196 key <AC05> { [ g, G, apostrophe, yen ] }; // g G ' ¥ 197 key <AC09> { [ l, L, periodcentered, periodcentered ] }; // l L · · 198 key <BKSL> { [ asterisk, mu, dead_grave, dead_circumflex ] }; // * µ ` ^ 199 200 // Fourth row 201 key <LSGT> { [ less, greater, less, greater ] }; // < > < > 202 key <AB01> { [ w, W, guillemotleft, guillemotleft ] }; // w W « « 203 key <AB02> { [ x, X, guillemotright, guillemotright ] }; // x X » » 204 key <AB04> { [ v, V, nobreakspace, less ] }; // v V ⍽ < (espace insécable) 205 key <AB05> { [ b, B, minus, asciicircum ] }; // b B - ^ 206 key <AB06> { [ n, N, notsign, greater ] }; // n N ¬ > 207 key <AB07> { [ comma, question, questiondown, period ] }; // , ? ¿ . 208 key <AB08> { [ semicolon, period, multiply, periodcentered ] }; // ; . × · 209 key <AB09> { [ colon, slash, division, slash ] }; // : / ÷ / 210 key <AB10> { [ exclam, section, exclamdown, minus ] }; // ! § ¡ - 211}; 212 213partial alphanumeric_keys 214xkb_symbols "oss_nodeadkeys" { 215 216 // Modifies the basic fr(oss) layout to eliminate all dead keys 217 218 include "fr(oss)" 219 220 name[Group1]="French (alt., no dead keys)"; 221 222 key <TLDE> { [ twosuperior, threesuperior, onesuperior, cedilla ] }; // ² ³ ¹ ¸ 223 key <AE01> { [ ampersand, 1, caron, ogonek ] }; // & 1 ˇ ̨ 224 key <AE03> { [ quotedbl, 3, numbersign, breve ] }; // " 3 # ˘ 225 226 key <AD11> { [ asciicircum, diaeresis, asciitilde, Aring ] }; // ^ ̈ ̃ Å 227 key <AC11> { [ ugrave, percent, acute, Ugrave ] }; // ù % ' Ù 228 key <BKSL> { [ asterisk, mu, grave, macron ] }; // * µ ` ̄ 229}; 230 231 232// Historic Linux French keyboard layout (fr-latin9) 233// Copyright (c) 199x, 2002 Rene Cougnenc (original work) 234// Guylhem Aznar <clavier @ externe.net> (maintainer) 235// Nicolas Mailhot <Nicolas.Mailhot @ laposte.net> 236// (XFree86 submission) 237// 238// This layout has long been distributed and refined outside official channels. 239// To this day it remains more feature-rich and popular than the 'fr' layout. 240// 241// This layout is derived from an original version by Guylhem Aznar. 242// The original version is always available from: 243// http://en.tldp.org/HOWTO/Francophones-HOWTO.html 244// and is distributed under a GPL license. 245// 246// The author has given permission for this derived version to be distributed 247// under the standard XFree86 license. He would like all changes to this 248// version to be sent to him at <clavier @ externe.net>, so he can sync 249// the identically named linux console map (kbd, linux-console) and his 250// out-of-tree GPL version. 251// 252// Now follows the keyboard design description in French. 253// (If you can't read it you probably have no business changing this file anyway:) 254// 255// Les accents circonflexes des principales voyelles sont obtenus avec 256// la touche Alt_Gr, les trémas sont obtenus par Alt_Gr + Shift. 257// 258// ____ _________ _____________ _______ 259// | S A| S = Shift, A = AltGr + Shift | Imprime | Arrêt défil | Pause | 260// | s a| s = normal, a = AltGr | Exec | | Halte | 261// ¯¯¯¯ ¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ 262// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ 263// | œ "| 1 ·| 2 É| 3 ,| 4 '| 5 "| 6 || 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + °| <-- | 264// | Œ "| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | 265// ======================================================================== 266// | |<- | A ä| Z Å| E ¢| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ë| , | 267// | ->| | a â| z å| e €| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ê| <-' | 268// ===================================================================¬ | 269// | | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥| | 270// | MAJ | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³| | 271// ======================================================================== 272// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | 273// | | | < || w «| x »| c ©| v ®| b ß| n ¬| , ¿| ; ×| : ÷| ! ¡| | | 274// ======================================================================== 275// | | | | | | | | | 276// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | 277// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ 278// 279// 280// Si les touches mortes fonctionnent, utiliser les accents dits 281// « morts », i.e. fonctionnant comme l'accent circonflexe & le 282// tréma des machines à écrire ; sont disponibles : 283// 284// (^) : accent circonflexe, 285// Shift+(^) : tréma, 286// Shift+AltGr+(^) : tilde, 287// AltGr+(1) : accent aigu, 288// AltGr+(7) : accent grave 289// 290// Pour s'en servir, procéder comme avec l'accent circonflexe & le tréma 291// sur les vielles machines à écrire : 292// 293// AltGr+(1) puis e : é 294// AltGr+(1) puis E : É 295// 296partial alphanumeric_keys 297 298xkb_symbols "latin9" { 299 300 include "latin" 301 include "nbsp(level3)" 302 303 name[Group1]="French (legacy, alt.)"; 304 305 key <TLDE> { [ oe, OE, leftdoublequotemark, rightdoublequotemark ] }; 306 key <AE01> { [ ampersand, 1, dead_acute, periodcentered ] }; 307 key <AE02> { [ eacute, 2, asciitilde, Eacute ] }; 308 key <AE03> { [ quotedbl, 3, numbersign, cedilla ] }; 309 key <AE04> { [ apostrophe, 4, braceleft, acute ] }; 310 key <AE05> { [ parenleft, 5, bracketleft, diaeresis ] }; 311 key <AE06> { [ minus, 6, bar, brokenbar ] }; 312 key <AE07> { [ egrave, 7, dead_grave, Egrave ] }; 313 key <AE08> { [ underscore, 8, backslash, macron ] }; 314 key <AE09> { [ ccedilla, 9, asciicircum, Ccedilla ] }; 315 key <AE10> { [ agrave, 0, at, Agrave ] }; 316 key <AE11> { [ parenright, degree, bracketright, ydiaeresis ] }; 317 key <AE12> { [ equal, plus, braceright, dead_abovering ] }; 318 319 key <AD01> { [ a, A, acircumflex, adiaeresis ] }; 320 key <AD02> { [ z, Z, aring, Aring ] }; 321 key <AD03> { [ e, E, EuroSign, cent ] }; 322 key <AD04> { [ r, R, ccedilla, Ccedilla ] }; 323 key <AD05> { [ t, T, thorn, THORN ] }; 324 key <AD06> { [ y, Y, yacute, Yacute ] }; 325 key <AD07> { [ u, U, ucircumflex, udiaeresis ] }; 326 key <AD08> { [ i, I, icircumflex, idiaeresis ] }; 327 key <AD09> { [ o, O, ocircumflex, odiaeresis ] }; 328 key <AD10> { [ p, P, paragraph, grave ] }; 329 key <AD11> { [ dead_circumflex, dead_diaeresis, dead_tilde, apostrophe ] }; 330 key <AD12> { [ dollar, sterling, ecircumflex, ediaeresis ] }; 331 332 key <AC01> { [ q, Q, Acircumflex, Adiaeresis ] }; 333 key <AC02> { [ s, S, oslash, Ooblique ] }; 334 key <AC03> { [ d, D, Ecircumflex, Ediaeresis ] }; 335 key <AC04> { [ f, F, plusminus, ordfeminine ] }; 336 key <AC05> { [ g, G, ae, AE ] }; 337 key <AC06> { [ h, H, eth, ETH ] }; 338 key <AC07> { [ j, J, Ucircumflex, Udiaeresis ] }; 339 key <AC08> { [ k, K, Icircumflex, Idiaeresis ] }; 340 key <AC09> { [ l, L, Ocircumflex, Odiaeresis ] }; 341 key <AC10> { [ m, M, onesuperior, masculine ] }; 342 key <AC11> { [ ugrave, percent, twosuperior, Ugrave ] }; 343 key <BKSL> { [ asterisk, mu, threesuperior, yen ] }; 344 345 key <LSGT> { [ less, greater, bar ] }; 346 key <AB01> { [ w, W, guillemotleft ] }; 347 key <AB02> { [ x, X, guillemotright ] }; 348 key <AB03> { [ c, C, copyright ] }; 349 key <AB04> { [ v, V, registered ] }; 350 key <AB05> { [ b, B, ssharp, U1E9E ] }; 351 key <AB06> { [ n, N, notsign ] }; 352 key <AB07> { [ comma, question, questiondown ] }; 353 key <AB08> { [ semicolon, period, multiply ] }; 354 key <AB09> { [ colon, slash, division ] }; 355 key <AB10> { [ exclam, section, exclamdown ] }; 356 357 // French uses a comma as decimal separator, but keyboards are labeled with a period 358 // Will take effect when KP_Decimal is mapped to the locale decimal separator 359 key <KPDL> { [ KP_Delete, KP_Decimal, KP_Delete, KP_Decimal ] }; 360 361 include "level3(ralt_switch)" 362}; 363 364partial alphanumeric_keys 365xkb_symbols "latin9_nodeadkeys" { 366 367 // Modifies the basic fr-latin9 layout to eliminate all dead keys 368 369 include "fr(latin9)" 370 371 name[Group1]="French (legacy, alt., no dead keys)"; 372 373 key <AE01> { [ ampersand, 1, apostrophe, periodcentered ] }; 374 key <AE07> { [ egrave, 7, grave, Egrave ] }; 375 key <AE12> { [ equal, plus, braceright ] }; 376 key <AD11> { [ asciicircum, diaeresis, asciitilde, apostrophe ] }; 377}; 378 379// Bépo : Improved ergonomic french keymap using Dvorak method. 380// Built by community on 'Dvorak Fr / Bépo' : 381// see http://www.clavier-dvorak.org/wiki/ to join and help. 382// XOrg integration (1.0rc2 version) in 2008 383// by Frédéric Boiteux <fboiteux at free dot fr> 384// 385// Bépo layout (1.0rc2 version) for a pc105 keyboard (french) : 386// ┌─────┐ 387// │ S A │ S = Shift, A = AltGr + Shift 388// │ s a │ s = normal, a = AltGr 389// └─────┘ 390// 391// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 392// │ # ¶ │ 1 „ │ 2 “ │ 3 ” │ 4 ≤ │ 5 ≥ │ 6 │ 7 ¬ │ 8 ¼ │ 9 ½ │ 0 ¾ │ ° ′ │ ` ″ ┃ ⌫ Retour┃ 393// │ $ – │ " — │ « < │ » > │ ( [ │ ) ] │ @ ^ │ + ± │ - − │ / ÷ │ * × │ = ≠ │ % ‰ ┃ arrière┃ 394// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 395// ┃ ┃ B ¦ │ É ˝ │ P § │ O Œ │ È ` │ ! │ V │ D Ð │ L │ J IJ │ Z Ə │ W ┃Entrée ┃ 396// ┃Tab ↹ ┃ b | │ é ˊ │ p & │ o œ │ è ` │ ˆ ¡ │ v ˇ │ d ð │ l / │ j ij │ z ə │ w ̆ ┃ ⏎ ┃ 397// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 398// ┃ ┃ A Æ │ U Ù │ I ˙ │ E ¤ │ ; ̛ │ C ſ │ T Þ │ S ẞ │ R ™ │ N │ M º │ Ç , ┃ ┃ 399// ┃Maj ⇬ ┃ a æ │ u ù │ i ̈ │ e € │ , ’ │ c © │ t þ │ s ß │ r ® │ n ˜ │ m ¯ │ ç ¸ ┃ ┃ 400// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ 401// ┃ ┃ Ê │ À │ Y ‘ │ X ’ │ : · │ K │ ? ̉ │ Q ̣ │ G │ H ‡ │ F ª ┃ ┃ 402// ┃Shift ⇧┃ ê / │ à \ │ y { │ x } │ . … │ k ~ │ ' ¿ │ q ˚ │ g µ │ h † │ f ˛ ┃Shift ⇧ ┃ 403// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ 404// ┃ ┃ ┃ ┃ Espace inséc. Espace inséc. fin ┃ ┃ ┃ ┃ 405// ┃Ctrl ┃Meta ┃Alt ┃ ␣ (Espace) _ ␣ ┃AltGr ⇮┃Menu ┃Ctrl ┃ 406// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 407partial alphanumeric_keys 408xkb_symbols "bepo" { 409 410 include "level3(ralt_switch)" 411 include "keypad(oss)" 412 413 name[Group1]= "French (BEPO)"; 414 415 // First row 416 key <TLDE> { [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ 417 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ 418 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ 419 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” 420 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, lessthanequal ] }; // ( 4 [ ≤ 421 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, greaterthanequal ] }; // ) 5 ] ≥ 422 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum ] }; // @ 6 ^ 423 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ 424 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ 425 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ 426 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ 427 key <AE11> { [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ 428 key <AE12> { [ percent, grave, permille, seconds ] }; // % ` ‰ ″ 429 430 // Second row 431 key <AD01> { [ b, B, bar, brokenbar ] }; // b B | ¦ 432 key <AD02> { [ eacute, Eacute, dead_acute, dead_doubleacute ] }; // é É ˊ ˝ 433 key <AD03> { [ p, P, ampersand, section ] }; // p P & § 434 key <AD04> { [ o, O, oe, OE ] }; // o O œ Œ 435 key <AD05> { [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` 436 key <AD06> { [ dead_circumflex, exclam, exclamdown ] }; // ^ ! ¡ 437 key <AD07> { [ v, V, dead_caron ] }; // v V ˇ 438 key <AD08> { [ d, D, eth, ETH ] }; // d D ð Ð 439 key <AD09> { [ l, L, dead_stroke ] }; // l L / 440 key <AD10> { [ j, J, U0133, U0132 ] }; // j J ij IJ 441 key <AD11> { [ z, Z, schwa, SCHWA ] }; // z Z ə Ə 442 key <AD12> { [ w, W, dead_breve ] }; // w W ̆ 443 444 // Third row 445 key <AC01> { [ a, A, ae, AE ] }; // a A æ Æ 446 key <AC02> { [ u, U, ugrave, Ugrave ] }; // u U ù Ù 447 key <AC03> { [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ̈ ˙ 448 key <AC04> { [ e, E, EuroSign, dead_currency ] }; // e E € ¤ 449 key <AC05> { [ comma, semicolon, rightsinglequotemark, dead_horn ] }; // , ; ’ ̛ 450 key <AC06> { [ c, C, copyright, U017F ] }; // c C © ſ 451 key <AC07> { [ t, T, thorn, THORN ] }; // t T þ Þ 452 key <AC08> { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ 453 key <AC09> { [ r, R, registered, trademark ] }; // r R ® ™ 454 key <AC10> { [ n, N, dead_tilde ] }; // n N ~ 455 key <AC11> { [ m, M, dead_macron, masculine ] }; // m M ̄ º 456 key <BKSL> { [ ccedilla, Ccedilla, dead_cedilla, dead_belowcomma ] }; // ç Ç ¸ , 457 458 // Fourth row 459 key <LSGT> { [ ecircumflex, Ecircumflex, slash ] }; // ê Ê / 460 key <AB01> { [ agrave, Agrave, backslash ] }; // à À \ 461 key <AB02> { [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ 462 key <AB03> { [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ 463 key <AB04> { [ period, colon, ellipsis, periodcentered ] }; // . : … · 464 key <AB05> { [ k, K, asciitilde ] }; // k K ~ 465 key <AB06> { [ apostrophe, question, questiondown, dead_hook ] }; // ' ? ¿ ̉ 466 key <AB07> { [ q, Q, dead_abovering, dead_belowdot ] }; // q Q ˚ ̣ 467 key <AB08> { [ g, G, dead_greek ] }; // g G µ 468 key <AB09> { [ h, H, dagger, doubledagger ] }; // h H † ‡ 469 key <AB10> { [ f, F, dead_ogonek, ordfeminine ] }; // f F ̨ ª 470 471 key <SPCE> { [ space, nobreakspace, underscore, U202F ] }; // ␣ (espace insécable) _ (espace insécable fin) 472}; 473 474partial alphanumeric_keys 475xkb_symbols "bepo_latin9" { 476 477 // Restricts the fr(bepo) layout to latin9 symbols 478 479 include "fr(bepo)" 480 include "keypad(oss_latin9)" 481 482 name[Group1]="French (BEPO, Latin-9 only)"; 483 484 key <TLDE> { [ dollar, numbersign, dollar, paragraph ] }; // $ # $ ¶ 485 486 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1 ] }; // " 1 487 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less ] }; // « 2 < 488 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater ] }; // » 3 > 489 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft ] }; // ( 4 [ 490 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright ] }; // ) 5 ] 491 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, minus, onequarter ] }; // - 8 - ¼ 492 key <AE11> { [ equal, degree ] }; // = ° 493 key <AE12> { [ percent, grave ] }; // % ` 494 495 key <AD01> { [ b, B, bar ] }; // b B | 496 key <AD02> { [ eacute, Eacute, dead_acute ] }; // é É ˊ 497 key <AD10> { [ j, J ] }; // j J 498 key <AD11> { [ z, Z ] }; // z Z 499 key <AD12> { [ w, W ] }; // w W 500 501 key <AC03> { [ i, I, dead_diaeresis ] }; // i I ̈ 502 key <AC05> { [ comma, semicolon, comma, dead_horn ] }; // , ; , ̛ 503 key <AC06> { [ c, C, copyright ] }; // c C © 504 key <AC08> { [ s, S, ssharp, U1E9E ] }; // s S ß ẞ 505 key <AC09> { [ r, R, registered ] }; // r R ® 506 key <AC11> { [ m, M, macron, masculine ] }; // m M ̄ º 507 508 key <AB02> { [ y, Y, braceleft ] }; // y Y { 509 key <AB03> { [ x, X, braceright ] }; // x X } 510 key <AB04> { [ period, colon ] }; // . : 511 key <AB09> { [ h, H ] }; // h H 512 key <AB10> { [ f, F, f, ordfeminine ] }; // f F ª 513 514 // Note : on a besoin de redéfinir les niveaux 3 et 4, 515 // donc nbsp(level2) ne suffit pas ! 516 key <SPCE> { [ space, nobreakspace, underscore, nobreakspace ] }; // ␣ (espace insécable) _ (espace insécable) 517}; 518 519// Version 1.1rc2 of the Bépo keyboard layout, 520// normalized by the AFNOR NF Z71‐300 norm. 521// 522// Layout: https://bepo.fr/wiki/Version_1.1rc2 523// Normalization: https://normalisation.afnor.org/actualites/faq-clavier-francais/ 524// 525// ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────╔═════════╗ 526// │ # ¶│ 1 „│ 2 “│ 3 ”│ 4 ⩽│ 5 ⩾║ 6 │ 7 ¬│ 8 ¼│ 9 ½│ 0 ¾│ ° ′│ ` ″║ ║ 527// │ $ –│ " —│ « <│ » >│ ( [│ ) ]║ @ ^│ + ±│ - −│ / ÷│ * ×│ = ≠│ % ‰║ <-- ║ 528// ╔════╧══╗─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─╚══╦══════╣ 529// ║ |<- ║ B _│ É │ P §│ O Œ│ È `║ ! │ V │ D │ L £│ J │ Z │ W ║ | ║ 530// ║ ->| ║ b |│ é ´│ p &│ o œ│ è `║ ˆ ¡│ v ˇ│ d ∞│ l /│ j │ z ―│ w ║ <-' ║ 531// ╠═══════╩╗───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───╚╗ ║ 532// ║ ║ A Æ│ U Ù│ I ˙│ E ¤│ ; ,║ C ©│ T ™│ S ſ│ R ®│ N │ M │ Ç ©║ ║ 533// ║ CAPS ║ a æ│ u ù│ i ¨│ e €│ , '║ c ¸│ t ᵉ│ s ß│ r ˘│ n ~│ m ¯│ ç ║ ║ 534// ╠══════╦═╝──┬─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴─══─┴──┬─┴──┬─┴──┬─┴──╔═╧════╩═════╣ 535// ║ ^ ║ Ê ^│ À ‚│ Y ‘│ X ’│ : ·│ K ‑║ ? ̉ │ Q ̛│ G †│ H ‡│ F ║ ^ ║ 536// ║ | ║ ê /│ à \│ y {│ x }│ . …│ k ~║ ’ ¿│ q °│ g µ│ h ̣ │ f ˛║ | ║ 537// ╠══════╩╦═══╧══╦═╧═══╦╧════╧════╧════╧════╧════╧═╦══╧══╦═╧════╬═════╦══════╣ 538// ║ ║ ║ ║ Fine insécable Insécable ║ ║ ║ ║ ║ 539// ║ Ctrl ║ WinG ║ Alt ║ Espace _ ║AltGr║ WinD ║WinM ║ Ctrl ║ 540// ╚═══════╩══════╩═════╩═══════════════════════════╩═════╩══════╩═════╩══════╝ 541partial alphanumeric_keys 542xkb_symbols "bepo_afnor" { 543 544 name[Group1]= "French (BEPO, AFNOR)"; 545 546 include "pc(pc105)" 547 548 key <TLDE> { type[group1] = "FOUR_LEVEL", [ dollar, numbersign, endash, paragraph ] }; // $ # – ¶ 549 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 1, emdash, doublelowquotemark ] }; // " 1 — „ 550 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotleft, 2, less, leftdoublequotemark ] }; // « 2 < “ 551 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ guillemotright, 3, greater, rightdoublequotemark ] }; // » 3 > ” 552 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 4, bracketleft, U2A7D ] }; // ( 4 [ ⩽ 553 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 5, bracketright, U2A7E ] }; // ) 5 ] ⩾ 554 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ at, 6, asciicircum, U262D ] }; // @ 6 ^ ☭ 555 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ plus, 7, plusminus, notsign ] }; // + 7 ± ¬ 556 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 8, U2212, onequarter ] }; // - 8 − ¼ 557 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 9, division, onehalf ] }; // / 9 ÷ ½ 558 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ asterisk, 0, multiply, threequarters ] }; // * 0 × ¾ 559 key <AE11> { type[group1] = "FOUR_LEVEL", [ equal, degree, notequal, minutes ] }; // = ° ≠ ′ 560 key <AE12> { type[group1] = "FOUR_LEVEL", [ percent, grave, U2030, seconds ] }; // % ` ‰ ″ 561 562 key <AD01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ b, B, bar, underscore ] }; // b B | _ 563 key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, Eacute, dead_acute, heart ] }; // é É ´ ♥ 564 key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ p, P, ampersand, section ] }; // p P & § 565 key <AD04> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ o, O, oe, OE ] }; // o O œ Œ 566 key <AD05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, Egrave, dead_grave, grave ] }; // è È ` ` 567 key <AD06> { type[group1] = "FOUR_LEVEL", [ dead_circumflex, exclam, exclamdown, U2620 ] }; // ^ ! ¡ ☠ 568 key <AD07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ v, V, dead_caron, U2622 ] }; // v V ˇ ☢ 569 key <AD08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ d, D, UFDD7, U2623 ] }; // d D ∞ ☣ 570 key <AD09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ l, L, dead_stroke, sterling ] }; // l L / £ 571 key <AD10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ j, J, U262E, U262F ] }; // j J ☮ ☯ 572 key <AD11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ z, Z, UFDD8, U2619 ] }; // z Z ― ☙ 573 key <AD12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ w, W, U269C, U267F ] }; // w W ⚜ ♿ 574 575 key <AC01> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ a, A, ae, AE ] }; // a A æ Æ 576 key <AC02> { type[group1] = "FOUR_LEVEL_ALPHABETIC", [ u, U, ugrave, Ugrave ] }; // u U ù Ù 577 key <AC03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ i, I, dead_diaeresis, dead_abovedot ] }; // i I ¨ ˙ 578 key <AC04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ e, E, EuroSign, dead_currency ] }; // e E € ¤ 579 key <AC05> { type[group1] = "FOUR_LEVEL", [ comma, semicolon, apostrophe, dead_belowcomma ] }; // , ; ' , 580 key <AC06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ c, C, dead_cedilla, copyright ] }; // c C ¸ © 581 key <AC07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ t, T, UFDD5, trademark ] }; // t T ᵉ ™ 582 key <AC08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ s, S, UFDD4, U017F ] }; // s S ß ſ 583 key <AC09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ r, R, dead_breve, registered ] }; // r R ˘ ® 584 key <AC10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ n, N, dead_tilde, U2693 ] }; // n N ~ ⚓ 585 key <AC11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ m, M, dead_macron, U26FD ] }; // m M ¯ ⛽ 586 key <BKSL> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ccedilla, Ccedilla, U2708, U1F12F ] }; // ç Ç ✈ 587 588 key <LSGT> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ecircumflex, Ecircumflex, slash, asciicircum ] }; // ê Ê / ^ 589 key <AB01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ agrave, Agrave, backslash, singlelowquotemark ] }; // à À \ ‚ 590 key <AB02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ y, Y, braceleft, leftsinglequotemark ] }; // y Y { ‘ 591 key <AB03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ x, X, braceright, rightsinglequotemark ] }; // x X } ’ 592 key <AB04> { type[group1] = "FOUR_LEVEL", [ period, colon, ellipsis, periodcentered ] }; // . : … · 593 key <AB05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ k, K, asciitilde, U2011 ] }; // k K ~ ‑ 594 key <AB06> { type[group1] = "FOUR_LEVEL", [ rightsinglequotemark, question, questiondown, dead_hook ] }; // ’ ? ¿ ̉ 595 key <AB07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ q, Q, dead_abovering, dead_horn ] }; // q Q ˚ ̛ 596 key <AB08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ g, G, dead_greek, dagger ] }; // g G µ † 597 key <AB09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ h, H, dead_belowdot, doubledagger ] }; // h H ̣ ‡ 598 key <AB10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ f, F, dead_ogonek, U26C4 ] }; // f F ˛ ⛄ 599 key <SPCE> { type[group1] = "FOUR_LEVEL", [ space, U202F, underscore, nobreakspace ] }; // _ 600 601 602 include "level3(ralt_switch)" 603}; 604 605// Author : Francis Leboutte, http://www.algo.be/ergo/dvorak-fr.html 606// thanks to Fabien Cazenave for his help 607// Licence : X11 608// Version : 0.3 609 610// Base layer + dead AltGr key (`): 611// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ 612// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ 613// │ _ │ = │ / ± │ - ¼ │ è ½ │ \ ¾ │ ^ │ ( │ ` ` │ ) │ " │ [ │ ] ┃ ⌫ ┃ 614// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ 615// ┃ ┃ ? Æ │ < │ > │ G │ ! │ H │ V │ C Ç │ M │ K │ Z │ & ┃ ┃ 616// ┃ ↹ ┃ : æ │ ' $ │ é É │ g € │ . ° │ h │ v │ c ç │ m µ │ k │ z │ ¨ ┃ ┃ 617// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ 618// ┃ ┃ O Ò │ A À │ U Ù │ E È │ B │ F │ S │ T │ N │ D │ W │ # ┃ ┃ 619// ┃ ⇬ ┃ o ò │ a à │ u ù │ e è │ b │ f │ s « │ t │ n » │ d │ w │ ~ ┃ ┃ 620// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ 621// ┃ ┃ ç Ç │ | Œ │ Q │ @ │ I Ì │ Y │ X │ R │ L │ P │ J ┃ ┃ 622// ┃ ⇧ ┃ à À │ ; œ │ q { │ , } │ i ì │ y £ │ x │ r º │ l │ p § │ j ┃ ⇧ ┃ 623// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ 624// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ 625// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ 626// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ 627 628// Notice the specific Caps_Lock layer: 629// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━━┓ 630// │ * │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ + │ % ┃ ┃ 631// │ │ │ │ │ │ │ │ │ │ │ │ │ ┃ ⌫ ┃ 632// ┢━━━━━┷━━┱──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┺━━┳━━━━━━━┫ 633// ┃ ┃ │ < │ > │ │ │ │ │ │ │ │ │ ┃ ┃ 634// ┃ ↹ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ 635// ┣━━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ⏎ ┃ 636// ┃ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ 637// ┃ ⇬ ┃ │ │ │ │ │ │ │ │ │ │ │ ┃ ┃ 638// ┣━━━━━━┳━━┹──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┲━━┷━━━━━┻━━━━━━┫ 639// ┃ ┃ / │ - │ │ │ │ │ │ │ │ │ ┃ ┃ 640// ┃ ⇧ ┃ │ │ │ │ │ │ │ │ │ │ ┃ ⇧ ┃ 641// ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴─┲━━━┷━━━┳━┷━━━━━╋━━━━━━━┳━━━━━━━┫ 642// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ ┃ 643// ┃ ctrl ┃ super ┃ alt ┃ ␣ Espace Espace insécable ⍽ ┃ alt ┃ super ┃ menu ┃ ctrl ┃ 644// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┻━━━━━━━┛ 645 646partial alphanumeric_keys modifier_keys 647xkb_symbols "dvorak" { 648 name[Group1]="French (Dvorak)"; 649 650 // First row 651 key <TLDE> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ underscore, asterisk ] }; 652 key <AE01> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ equal, 1 ] }; 653 key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ slash, 2, plusminus ] }; 654 key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ minus, 3, onequarter ] }; 655 key <AE04> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ egrave, 4, onehalf ] }; 656 key <AE05> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ backslash, 5, threequarters ] }; 657 key <AE06> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ dead_circumflex, 6 ] }; 658 key <AE07> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenleft, 7 ] }; 659 key <AE08> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ ISO_Level3_Latch, 8, grave ] }; 660 key <AE09> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ parenright, 9 ] }; 661 key <AE10> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ quotedbl, 0 ] }; 662 key <AE11> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketleft, plus ] }; 663 key <AE12> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ bracketright, percent ] }; 664 665 // Second row 666 key <AD01> { [ colon, question, ae, AE ] }; 667 key <AD02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ apostrophe, less, dollar ] }; 668 key <AD03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ eacute, greater, Eacute ] }; 669 key <AD04> { [ g, G, EuroSign ] }; 670 key <AD05> { [ period, exclam, degree ] }; 671 key <AD06> { [ h, H ] }; 672 key <AD07> { [ v, V ] }; 673 key <AD08> { [ c, C, ccedilla, Ccedilla ] }; 674 key <AD09> { [ m, M, mu ] }; 675 key <AD10> { [ k, K ] }; 676 key <AD11> { [ z, Z ] }; 677 key <AD12> { [ dead_diaeresis, ampersand ] }; 678 679 // Third row 680 key <AC01> { [ o, O, ograve, Ograve ] }; 681 key <AC02> { [ a, A, agrave, Agrave ] }; 682 key <AC03> { [ u, U, ugrave, Ugrave ] }; 683 key <AC04> { [ e, E, egrave, Egrave ] }; 684 key <AC05> { [ b, B ] }; 685 key <AC06> { [ f, F ] }; 686 key <AC07> { [ s, S, guillemotleft ] }; 687 key <AC08> { [ t, T ] }; 688 key <AC09> { [ n, N, guillemotright ] }; 689 key <AC10> { [ d, D ] }; 690 key <AC11> { [ w, W ] }; 691 key <BKSL> { [ asciitilde, numbersign ] }; 692 693 // Fourth row 694 key <LSGT> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ agrave, ccedilla, Agrave, Ccedilla, slash ] }; 695 key <AB01> { type[group1] = "FOUR_LEVEL_PLUS_LOCK", [ semicolon, bar, oe, OE, minus ] }; 696 key <AB02> { [ q, Q, braceleft ] }; 697 key <AB03> { [ comma, at, braceright ] }; 698 key <AB04> { [ i, I, igrave, Igrave ] }; 699 key <AB05> { [ y, Y, sterling ] }; 700 key <AB06> { [ x, X ] }; 701 key <AB07> { [ r, R, masculine ] }; 702 key <AB08> { [ l, L ] }; 703 key <AB09> { [ p, P, section ] }; 704 key <AB10> { [ j, J ] }; 705 706 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; 707}; 708 709// C'WHERTY: Breton keyboard. Ar c'hlavier brezhoneg. 710// Copyright © 2009 Dominique Pellé <dominique.pelle@gmail.com> 711// Version: 0.1 712// 713// ┌─────┐ 714// │ S A │ S = Reol = Shift, A = ArErl + Pennlizherenn = AltGr + Shift 715// │ s a │ s = normal, a = ArErl = AltGr 716// └─────┘ 717// 718// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 719// │ $ Γ │ 1 Δ │ 2 Θ │ 3 Λ │ 4 Ξ │ 5 Π │ 6 Σ │ 7 Φ │ 8 Ψ │ 9 Ç │ 0 Ω │ ° ß │ + ¬ ┃ ⌫ Souzañ┃ 720// │ ² ˙ │ & ¯ │ é ´ │ " # │ ' { │ ( [ │ - | │ è ` │ - \ │ ç ± │ à @ │ ) ] │ = } ┃ ┃ 721// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 722// ┃Toalenn┃ C'h │ W ω │ E ε │ R ρ │ T τ │ Y ψ │ U υ │ I ι │ O OE│ P π │ ¨ ¥ │ * £ ┃Enankañ┃ 723// ┃ ↹ ┃ c'h │ w │ e € │ r │ t │ y │ u │ i ı │ o oe│ p │ ^ « │ / » ┃ ⏎ ┃ 724// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 725// ┃Prenn ┃ A Æ │ S σ │ D δ │ F φ │ G γ │ H η │ J ς │ K κ │ L λ │ M μ │ Ù ® │ ! ¡ ┃ ┃ 726// ┃Pennli ⇬┃ a æ │ s │ d $ │ f │ g │ h │ j │ k │ l │ m │ ù ŭ │ ? ¿ ┃ ┃ 727// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ 728// ┃ ┃ Q θ │ Z ζ │ X ξ │ C χ │ V │ B β │ N ν │ CH │ Ñ │ : © │ ; ┃ ┃ 729// ┃Shift ⇧┃ q < │ z > │ x │ c ¢ │ v │ b │ n │ ch │ ñ │ . │ , ┃Shift ⇧ ┃ 730// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ 731// ┃ ┃ ┃ ┃ ⍽ Espace insécable ␣ ┃ ┃ ┃ ┃ 732// ┃Reol ┃Meta ┃Erl ┃ ␣ Espace ␣ ┃ArErl ⇮┃Menu ┃Reol ┃ 733// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 734partial alphanumeric_keys 735xkb_symbols "bre" { 736 737 include "keypad(oss)" 738 739 name[Group1]= "French (Breton)"; 740 741 // First row 742 key <TLDE> { [ twosuperior, dead_tilde, dead_abovedot, Greek_GAMMA ] }; 743 key <AE01> { [ ampersand, 1, dead_macron, Greek_DELTA ] }; 744 key <AE02> { [ eacute, 2, dead_acute, Greek_THETA ] }; 745 key <AE03> { [ quotedbl, 3, numbersign, Greek_LAMDA ] }; 746 key <AE04> { [ apostrophe, 4, braceleft, Greek_XI ] }; 747 key <AE05> { [ parenleft, 5, bracketleft, Greek_PI ] }; 748 key <AE06> { [ minus, 6, bar, Greek_SIGMA ] }; 749 key <AE07> { [ egrave, 7, dead_grave, Greek_PHI ] }; 750 key <AE08> { [ underscore, 8, backslash, Greek_PSI ] }; 751 key <AE09> { [ ccedilla, 9, plusminus, Ccedilla ] }; 752 key <AE10> { [ agrave, 0, at, Greek_OMEGA ] }; 753 key <AE11> { [ parenright, dead_abovering, bracketright, ssharp ] }; 754 key <AE12> { [ equal, plus, braceright, notsign ] }; 755 756 // Second row 757 // Handling the C'H key correctly requires an inputmethod (XIM) 758 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 759 // key <AD01> { [ trigraph_c_h, trigraph_C_h, trigraph_C_H, Greek_alpha ] }; 760 key <AD01> { [ UF8FD, UF8FE, UF8FF, Greek_alpha ] }; 761 key <AD02> { [ w, W, Greek_omega, Greek_omega ] }; 762 key <AD03> { [ e, E, EuroSign, Greek_epsilon ] }; 763 key <AD04> { [ r, R, Greek_rho, Greek_rho ] }; 764 key <AD05> { [ t, T, Greek_tau, Greek_tau ] }; 765 key <AD06> { [ y, Y, Greek_psi, Greek_psi ] }; 766 key <AD07> { [ u, U, Greek_upsilon, Greek_upsilon ] }; 767 key <AD08> { [ i, I, idotless, Greek_iota ] }; 768 key <AD09> { [ o, O, oe, OE ] }; 769 key <AD10> { [ p, P, Greek_pi, Greek_pi ] }; 770 key <AD11> { [ dead_circumflex, dead_diaeresis, guillemotleft, yen ] }; 771 key <AD12> { [ slash, asterisk, guillemotright, sterling ] }; 772 773 // Third row 774 key <AC01> { [ a, A, ae, AE ] }; 775 key <AC02> { [ s, S, Greek_sigma, Greek_sigma ] }; 776 key <AC03> { [ d, D, dollar, Greek_delta ] }; 777 key <AC04> { [ f, F, Greek_phi, Greek_phi ] }; 778 key <AC05> { [ g, G, Greek_gamma, Greek_gamma ] }; 779 key <AC06> { [ h, H, Greek_eta, Greek_eta ] }; 780 key <AC07> { [ j, J, Greek_finalsmallsigma, Greek_finalsmallsigma ] }; 781 key <AC08> { [ k, K, Greek_kappa, Greek_kappa ] }; 782 key <AC09> { [ l, L, Greek_lamda, Greek_lambda ] }; 783 key <AC10> { [ m, M, Greek_mu, Greek_mu ] }; 784 key <AC11> { [ ugrave, Ugrave, ubreve, registered ] }; 785 key <BKSL> { [ question, exclam, questiondown, exclamdown ] }; 786 787 // Fourth row 788 key <LSGT> { [ q, Q, less, Greek_theta ] }; 789 key <AB01> { [ z, Z, greater, Greek_zeta ] }; 790 key <AB02> { [ x, X, Greek_xi, Greek_xi ] }; 791 key <AB03> { [ c, C, cent, Greek_chi ] }; 792 key <AB04> { [ v, V ] }; 793 key <AB05> { [ b, B, Greek_beta, Greek_beta ] }; 794 key <AB06> { [ n, N, Greek_nu, Greek_nu ] }; 795 // Handling the CH key correctly requires an inputmethod (XIM) 796 // See https://bugs.freedesktop.org/show_bug.cgi?id=19506 797 // key <AB07> { [ digraph_ch, digraph_Ch, digraph_CH, Greek_omicron ] }; 798 key <AB07> { [ UF8FA, UF8FB, UF8FC, Greek_omicron ] }; 799 key <AB08> { [ ntilde, Ntilde ] }; 800 key <AB09> { [ period, colon, section, copyright ] }; 801 key <AB10> { [ comma, semicolon, percent ] }; 802 803 key <SPCE> { [ space, nobreakspace, space, nobreakspace ] }; 804 805 include "level3(ralt_switch)" 806}; 807 808// Occitan layout 809// Author : 2009 Thomas Metz <tmetz @ free.fr> 810// Derived from the layout defined at http://www.panoccitan.org 811// Version: 0.1 812// Differences from OSS French keyboard : 813// - add á, í, ò, ó et ú, Á, Í, Ò, Ó, Ú, ñ, Ñ 814// - change position of æ, ü, î, û, œ, ô, ö, ï, â, ë 815// 816// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 817// │ ³ ¸ │ 1 ̨ │ 2 É │ 3 ˘ │ 4 — │ 5 – │ 6 ‑ │ 7 È │ 8 ™ │ 9 Ç │ 0 À │ ° ≠ │ + ± ┃ ⌫ Retour┃ 818// │ ² ¹ │ & ˇ │ é ~ │ " # │ ' { │ ( [ │ - | │ è ` │ _ \ │ ç ^ │ à @ │ ) ] │ = } ┃ arrière┃ 819// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 820// ┃ ┃ A Á │ Z Æ │ E ¢ │ R Ê │ T Ë │ Y Û │ U Ú │ I Í │ O Ó │ P Ò │ ¨ Œ │ £ Ø ┃Entrée ┃ 821// ┃Tab ↹ ┃ a á │ z æ │ e € │ r ê │ t ë │ y û │ u ú │ i í │ o ó │ p ò │ ^ œ │ $ ø ┃ ⏎ ┃ 822// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 823// ┃ ┃ Q Ä │ S „ │ D  │ F ‚ │ G ¥ │ H Ü │ J Î │ K Ï │ L Ô │ M Ö │ % Ù │ µ ̄ ┃ ┃ 824// ┃Maj ⇬ ┃ q ä │ s ß │ d â │ f ‘ │ g ’ │ h ü │ j î │ k ï │ l ô │ m ö │ ù ' │ * ` ┃ ┃ 825// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ 826// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N Ñ │ ? … │ . . │ / ∕ │ § − ┃ ┃ 827// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v → │ b ↓ │ n ñ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ 828// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ 829// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ 830// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ 831// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 832partial alphanumeric_keys 833xkb_symbols "oci" { 834 835 include "fr(oss)" 836 837 name[Group1]= "Occitan"; 838 839 key <AD01> { [ a, A, aacute, Aacute ] }; // a A á Á 840 key <AD02> { [ z, Z, ae, AE ] }; // z Z æ Æ 841 key <AD05> { [ t, T, ediaeresis, Ediaeresis ] }; // t T ë Ë 842 key <AD06> { [ y, Y, ucircumflex, Ucircumflex ] }; // y Y û Û 843 key <AD07> { [ u, U, uacute, Uacute ] }; // u U ú Ú 844 key <AD08> { [ i, I, iacute, Iacute ] }; // i I í Í 845 key <AD09> { [ o, O, oacute, Oacute ] }; // o O ó Ó 846 key <AD10> { [ p, P, ograve, Ograve ] }; // p P ò Ò 847 key <AD11> { [ dead_circumflex, dead_diaeresis, oe, OE ] }; // ^ ̈ ̃ œ Œ 848 849 key <AC03> { [ d, D, acircumflex, Acircumflex ] }; // d D â  850 key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; // h H ü Ü 851 key <AC07> { [ j, J, icircumflex, Icircumflex ] }; // j J î Î 852 key <AC08> { [ k, K, idiaeresis, Idiaeresis ] }; // k K ï Ï 853 key <AC09> { [ l, L, ocircumflex, Ocircumflex ] }; // l L ô Ô 854 855 key <AB04> { [ v, V, rightarrow, leftarrow ] }; // v V → ← 856 key <AB06> { [ n, N, ntilde, Ntilde ] }; // n N ñ Ñ 857}; 858 859// Marc.Shapiro@inria.fr 19-sep-1998 860// modifications : Etienne Herlent <eherlent@linux-france.org> june 2000 861// adapted to the new input layer : 862// Martin Costabel <costabel@wanadoo.fr> 3-jan-2001 863// adapted for Latin9 alphabet (ISO-8859-15): 864// Etienne Herlent <eherlent@linux-france.org> march 2005 865 866// This map is an almost-complete mapping of the standard French 867// MacIntosh keyboard under Xwindows. I tried to remain as faithful 868// as possible to the Mac meaning of each key. I did this entirely by 869// hand and by intuition, relying on the Clavier (Keyboard?) Desktop 870// Accessory for the Mac meaning of keys, and on reading keysymdef.h 871// to intuit the corresponding X names. Lacking proper documentation, 872// I may have made some mistakes. 873 874// Entries marked CHECK are particularly uncertain 875 876// Entries marked MISSING mark Mac characters for which I was unable 877// to find a corresponding keysym. (Some for sure don't: e.g. the 878// Apple mark and the oe/OE character; others I may have simply not 879// found.) 880 881// Copied from macintosh_vndr/fr 882partial alphanumeric_keys 883xkb_symbols "mac" { 884 885 name[Group1]= "French (Macintosh)"; 886 887 key <TLDE> { [ at, numbersign, periodcentered, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 888 key <AE01> { [ ampersand, 1, VoidSymbol, dead_acute ] }; // MISSING: Apple 889 key <AE02> { [ eacute, 2, ediaeresis, Eacute ] }; 890 key <AE03> { [ quotedbl, 3, VoidSymbol, VoidSymbol ] }; // CHECK all quotemarks 891 key <AE04> { [ apostrophe, 4, VoidSymbol, VoidSymbol ] }; 892 key <AE05> { [ parenleft, 5, braceleft, bracketleft ] }; 893 // CHECK section 894 key <AE06> { [ section, 6, paragraph, aring ] }; 895 key <AE07> { [ egrave, 7, guillemotleft, guillemotright ] }; 896 key <AE08> { [ exclam, 8, exclamdown, Ucircumflex ] }; 897 key <AE09> { [ ccedilla, 9, Ccedilla, Aacute ] }; 898 key <AE10> { [ agrave, 0, oslash, VoidSymbol ] }; // MISSING: Oslash 899 key <AE11> { [ parenright, degree, braceright, bracketright ] }; 900 key <AE12> { [ minus, underscore, emdash, endash ] }; // CHECK dashes 901 902 key <AD01> { [ a, A, ae, AE ] }; 903 key <AD02> { [ z, Z, Acircumflex, Aring ] }; 904 key <AD03> { [ e, E, ecircumflex, Ecircumflex ] }; 905 key <AD04> { [ r, R, registered, currency ] }; 906 key <AD05> { [ t, T, VoidSymbol, VoidSymbol ] }; 907 key <AD06> { [ y, Y, Uacute, Ydiaeresis ] }; // MISSING: Ydiaeresis; eherlent : ok in Latin9 908 key <AD07> { [ u, U, VoidSymbol, ordfeminine ] }; // MISSING: ordmasculine? 909 key <AD08> { [ i, I, icircumflex, idiaeresis ] }; 910 key <AD09> { [ o, O, oe, OE ] }; // MISSING: oe, OE lacking in Latin1; eherlent ok in Latin9 911 key <AD10> { [ p, P, VoidSymbol, VoidSymbol ] }; 912 key <AD11> { [dead_circumflex,dead_diaeresis, ocircumflex, Ocircumflex ] }; 913 key <AD12> { [ dollar, asterisk, EuroSign, yen ] }; // eherlent : EuroSign in Latin9 914 915 key <AC01> { [ q, Q, acircumflex, Agrave ] }; 916 key <AC02> { [ s, S, Ograve, VoidSymbol ] }; 917 key <AC03> { [ d, D, VoidSymbol, VoidSymbol ] }; 918 key <AC04> { [ f, F, VoidSymbol, periodcentered ] }; // MISSING: oblong script f?? 919 key <AC05> { [ g, G, VoidSymbol, VoidSymbol ] }; // MISSING: kerned fi, fl 920 key <AC06> { [ h, H, Igrave, Icircumflex ] }; 921 key <AC07> { [ j, J, Idiaeresis, Iacute ] }; 922 key <AC08> { [ k, K, Egrave, Ediaeresis ] }; 923 key <AC09> { [ l, L, notsign, bar ] }; 924 key <AC10> { [ m, M, mu, Oacute ] }; 925 key <AC11> { [ ugrave,percent, Ugrave, ucircumflex ] }; // MISSING: per-mille 926 key <BKSL> { [ dead_grave, sterling, at, numbersign ] }; 927 928 key <LSGT> { [ less, greater, VoidSymbol, VoidSymbol ] }; 929 key <AB01> { [ w, W, VoidSymbol, VoidSymbol ] }; // MISSING: half-guillemot (single angle bracket) 930 key <AB02> { [ x, X, VoidSymbol, VoidSymbol ] }; // CHECK similarequal; MISSING: extra-slanted slash 931 key <AB03> { [ c, C, copyright, cent ] }; 932 key <AB04> { [ v, V, diamond, leftradical ] }; // CHECK diamond, leftradical 933 key <AB05> { [ b, B, ssharp, U1E9E ] }; // CHECK: Greek_beta or ssharp?; MISSING: oblong script s 934 key <AB06> { [ n, N, dead_tilde, asciitilde ] }; 935 key <AB07> { [ comma, question, VoidSymbol, questiondown ] }; 936 key <AB08> { [ semicolon, period, VoidSymbol, periodcentered ] }; 937 key <AB09> { [ colon, slash, division, backslash ] }; 938 key <AB10> { [ equal, plus, VoidSymbol, plusminus ] }; 939 940 key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; 941 942 key <KPDL> { [ comma,KP_Decimal ] }; 943 944 include "level3(ralt_switch)" 945}; 946 947partial alphanumeric_keys 948xkb_symbols "geo" { 949 include "ge(basic)" 950 951 name[Group1]= "Georgian (France, AZERTY Tskapo)"; 952 953 key <TLDE> { [ exclam, noSymbol ] }; 954 key <AE01> { [ 0x0100201e, 1 ] }; 955 key <AE02> { [ 0x01002116, 2 ] }; 956 key <AE03> { [ percent, 3 ] }; 957 key <AE04> { [ parenleft, 4 ] }; 958 key <AE05> { [ colon, 5 ] }; 959 key <AE06> { [ semicolon, 6 ] }; 960 key <AE07> { [ question, 7 ] }; 961 key <AE08> { [ 0x01002116, 8 ] }; 962 key <AE09> { [ degree, 9 ] }; 963 key <AE10> { [ parenright, 0 ] }; 964 key <AE11> { [ minus, underscore, 0x01002014 ] }; 965 key <AE12> { [ less, greater ] }; 966 967 key <AD01> { [ Georgian_an, 0x010010fa ] }; 968 key <AD02> { [ Georgian_zen, Z ] }; 969 key <AD03> { [ Georgian_en, E, Georgian_he ] }; 970 key <AD04> { [ Georgian_rae, 0x010000ae ] }; 971 key <AD05> { [ Georgian_tar, T ] }; 972 key <AD06> { [ Georgian_qar, 0x010010f8 ] }; 973 key <AD07> { [ Georgian_un, U ] }; 974 key <AD08> { [ Georgian_in, Georgian_hie ] }; 975 key <AD09> { [ Georgian_on, O ] }; 976 key <AD10> { [ Georgian_par, P ] }; 977 key <AD11> { [ Georgian_tan, T ] }; 978 key <AD12> { [ Georgian_jil, Z ] }; 979 980 key <AC01> { [ Georgian_khar, Q ] }; 981 key <AC02> { [ Georgian_san, S ] }; 982 key <AC03> { [ Georgian_don, D ] }; 983 key <AC04> { [ Georgian_phar, Georgian_fi ] }; 984 key <AC05> { [ Georgian_gan, 0x010010f9 ] }; 985 key <AC06> { [ Georgian_hae, Georgian_hoe ] }; 986 key <AC07> { [ Georgian_jhan, 0x010010f7 ] }; 987 key <AC08> { [ Georgian_kan, K ] }; 988 key <AC09> { [ Georgian_las, L ] }; 989 key <AC10> { [ Georgian_man, M ] }; 990 key <AC11> { [ Georgian_zhar, J ] }; 991 key <BKSL> { [ Georgian_chin, 0x010000a9 ] }; 992 993 key <LSGT> { [ guillemotleft, guillemotright ] }; 994 key <AB01> { [ Georgian_cil, W ] }; 995 key <AB02> { [ Georgian_xan, Georgian_har ] }; 996 key <AB03> { [ Georgian_can, 0x010000a9 ] }; 997 key <AB04> { [ Georgian_vin, Georgian_we ] }; 998 key <AB05> { [ Georgian_ban, B ] }; 999 key <AB06> { [ Georgian_nar, 0x010010fc ] }; 1000 key <AB07> { [ comma, 0x01002014 ] }; 1001 key <AB08> { [ Georgian_shin, S ] }; 1002 key <AB09> { [ Georgian_ghan, noSymbol ] }; 1003 key <AB10> { [ Georgian_char, noSymbol ] }; 1004}; 1005 1006// US keyboard made French 1007// 1008// Copyright (C) 2018, Florent Gallaire <f@gallai.re> 1009partial alphanumeric_keys 1010xkb_symbols "us" { 1011 1012 include "us(euro)" 1013 name[Group1]= "French (US)"; 1014 1015 1016 key <TLDE> { [ grave, asciitilde, dead_grave ] }; 1017 key <AE06> { [ 6,asciicircum,dead_circumflex ] }; 1018 1019 key <AB01> { [ z, Z, acircumflex, Acircumflex ] }; // â  1020 key <AB03> { [ c, C, ccedilla, Ccedilla ] }; // ç Ç 1021 1022 key <AC01> { [ a, A, agrave, Agrave ] }; // à À 1023 key <AC02> { [ s, S, ae, AE ] }; // æ Æ 1024 key <AC03> { [ d, D, ecircumflex, Ecircumflex ] }; // ê Ê 1025 key <AC04> { [ f, F, ediaeresis, Ediaeresis ] }; // ë Ë 1026 key <AC06> { [ h, H, udiaeresis, Udiaeresis ] }; // ü Ü 1027 key <AC07> { [ j, J, ucircumflex, Ucircumflex ] }; // û Û 1028 key <AC08> { [ k, K, icircumflex, Icircumflex ] }; // î Î 1029 key <AC11> { [apostrophe, quotedbl,dead_diaeresis, degree ] }; 1030 1031 key <AD03> { [ e, E, eacute, Eacute ] }; // é É 1032 key <AD04> { [ r, R, egrave, Egrave ] }; // è È 1033 key <AD06> { [ y, Y, ydiaeresis, Ydiaeresis ] }; // ÿ Ÿ 1034 key <AD07> { [ u, U, ugrave, Ugrave ] }; // ù Ù 1035 key <AD08> { [ i, I, idiaeresis, Idiaeresis ] }; // ï Ï 1036 key <AD09> { [ o, O, ocircumflex, Ocircumflex ] }; // ô Ô 1037 key <AD10> { [ p, P, oe, OE ] }; // œ Œ 1038 key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ 1039 key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” 1040 1041 key <AE04> { [ 4, dollar, EuroSign, currency ] }; // € ¤ 1042}; 1043 1044// EXTRAS: 1045 1046partial alphanumeric_keys 1047 xkb_symbols "sun_type6" { 1048 include "sun_vndr/fr(sun_type6)" 1049}; 1050 1051 1052partial alphanumeric_keys 1053xkb_symbols "azerty" { 1054 name[Group1]="French (AZERTY)"; 1055 1056 include "level3(ralt_switch)" 1057 1058// French AZERTY-Keyboard layout 1059// Author : 2015, Mats Blakstad <mats @ globalbility.org> 1060// Based on the layout at https://en.wikipedia.org/wiki/File:KB_France.svg 1061 1062// LAYOUT OVERVIEW 1063// ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ _______ 1064// | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ° | + | <-- | 1065// | ² | & | é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }| | 1066// ======================================================================== 1067// | |<- | A | Z | E | R | T | Y | U | I | O | P | ¨ | $ | , | 1068// | ->| | a | z | e €| r | t | y | u | i | o | p | ^ | £ ¤| <-' | 1069// ===================================================================¬ | 1070// | | Q | S | D | F | G | H | J | K | L | M | % | µ | | 1071// | MAJ | q | s | d | f | g | h | j | k | l | m | ù | * | | 1072// ======================================================================== 1073// | ^ | > | W | X | C | V | B | N | ? | . | / | § | ^ | 1074// | | | < | w | x | c | v | b | n | , | ; | : | ! | | | 1075// ======================================================================== 1076// | | | | | | | | | 1077// | Ctrl | Super| Alt | Space Nobreakspace | AltGr | Super|Menu | Ctrl | 1078// ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯ ¯¯¯¯¯¯ ¯¯¯¯¯ ¯¯¯¯¯¯ 1079 1080 // First row 1081 key <TLDE> { [ twosuperior ] }; 1082 key <AE01> { [ ampersand, 1 ] }; 1083 key <AE02> { [ eacute, 2, asciitilde ] }; 1084 key <AE03> { [ quotedbl, 3, numbersign ] }; 1085 key <AE04> { [ apostrophe, 4, braceleft ] }; 1086 key <AE05> { [ parenleft, 5, bracketleft ] }; 1087 key <AE06> { [ minus, 6, bar ] }; 1088 key <AE07> { [ egrave, 7, grave ] }; 1089 key <AE08> { [ underscore, 8, backslash ] }; 1090 key <AE09> { [ ccedilla, 9, asciicircum ] }; 1091 key <AE10> { [ agrave, 0, at ] }; 1092 key <AE11> { [ parenright, degree, bracketright ] }; 1093 key <AE12> { [ equal, plus, braceright ] }; 1094 1095 // Second row 1096 key <AD01> { [ a, A ] }; 1097 key <AD02> { [ z, Z ] }; 1098 key <AD03> { [ e, E, EuroSign ] }; 1099 key <AD04> { [ r, R ] }; 1100 key <AD05> { [ t, T ] }; 1101 key <AD06> { [ y, Y ] }; 1102 key <AD07> { [ u, U ] }; 1103 key <AD08> { [ i, I ] }; 1104 key <AD09> { [ o, O ] }; 1105 key <AD10> { [ p, P ] }; 1106 key <AD11> { [ dead_circumflex,dead_diaeresis ] }; 1107 key <AD12> { [ dollar, sterling, currency ] }; 1108 1109 // Third row 1110 key <AC01> { [ q, Q ] }; 1111 key <AC02> { [ s, S ] }; 1112 key <AC03> { [ d, D ] }; 1113 key <AC04> { [ f, F ] }; 1114 key <AC05> { [ g, G ] }; 1115 key <AC06> { [ h, H ] }; 1116 key <AC07> { [ j, J ] }; 1117 key <AC08> { [ k, K ] }; 1118 key <AC09> { [ l, L ] }; 1119 key <AC10> { [ m, M ] }; 1120 key <AC11> { [ ugrave, percent ] }; 1121 key <BKSL> { [ asterisk, mu ] }; 1122 1123 // Fourth row 1124 key <LSGT> { [ less, greater ] }; 1125 key <AB01> { [ w, W ] }; 1126 key <AB02> { [ x, X ] }; 1127 key <AB03> { [ c, C ] }; 1128 key <AB04> { [ v, V ] }; 1129 key <AB05> { [ b, B ] }; 1130 key <AB06> { [ n, N ] }; 1131 key <AB07> { [ comma, question ] }; 1132 key <AB08> { [ semicolon, period ] }; 1133 key <AB09> { [ colon, slash ] }; 1134 key <AB10> { [ exclam, section ] }; 1135}; 1136 1137// US keyboard made French (with dead keys, alternative) 1138// 1139// Copyright (C) 2018, Florent Gallaire <f@gallai.re> 1140 1141partial alphanumeric_keys 1142xkb_symbols "us-alt" { 1143 1144 include "us(euro)" 1145 name[Group1]= "French (US with dead keys, alt.)"; 1146 1147 key <AB03> { [ c, C, ccedilla, Ccedilla ] }; // ç Ç 1148 1149 key <AC01> { [ a, A, ae, AE ] }; // æ Æ 1150 key <AC11> { [dead_diaeresis, quotedbl, apostrophe ] }; 1151 1152 key <AD03> { [ e, E, eacute, Eacute ] }; // é É 1153 key <AD09> { [ o, O, oe, OE ] }; // œ Œ 1154 key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; // « “ 1155 key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; // » ” 1156 1157 key <TLDE> { [dead_grave, asciitilde, grave ] }; 1158 key <AE06> { [dead_circumflex, asciicircum, 6 ] }; 1159 key <AE04> { [ 4, dollar, EuroSign, currency ] }; // € ¤ 1160}; 1161 1162// For physically modified US keyboard (Q <-> A, W <-> Z and ; <-> M) 1163// 1164// Copyright (C) 2018, Florent Gallaire <f@gallai.re> 1165 1166partial alphanumeric_keys 1167xkb_symbols "us-azerty" { 1168 1169 include "us" 1170 name[Group1]= "French (US, AZERTY)"; 1171 1172 key <AB01> { [ w, W, guillemotleft, leftdoublequotemark ] }; // « “ 1173 key <AB02> { [ x, X,guillemotright,rightdoublequotemark ] }; // » ” 1174 key <AB07> { [ semicolon, colon ] }; 1175 1176 key <AC01> { [ q, Q ] }; 1177 key <AC10> { [ m, M ] }; 1178 key <AC11> { [apostrophe, quotedbl, ugrave, Ugrave ] }; // ù Ù 1179 1180 key <AD01> { [ a, A, ae, AE ] }; // æ Æ 1181 key <AD02> { [ z, Z ] }; 1182 key <AD09> { [ o, O, oe, OE ] }; // œ Œ 1183 key <AD11> { [bracketleft, braceleft,dead_circumflex, dead_diaeresis ] }; 1184 1185 key <TLDE> { [ grave, asciitilde, dead_grave ] }; 1186 key <AE02> { [ 2, at, eacute, Eacute ] }; // é É 1187 key <AE04> { [ 4, dollar, currency ] }; // ¤ 1188 key <AE06> { [ 6,asciicircum,dead_circumflex ] }; 1189 key <AE07> { [ 7, ampersand, egrave, Egrave ] }; // è È 1190 key <AE09> { [ 9, parenleft, ccedilla, Ccedilla ] }; // ç Ç 1191 key <AE10> { [ 0, parenright, agrave, Agrave ] }; // à À 1192 1193 include "eurosign(e)" 1194 include "level3(ralt_switch)" 1195}; 1196 1197// Unicode French standardized new azerty 1198// Defined by the French national organization for standardization (AFNOR) in norm NF Z71-300 (http://norme-azerty.fr/) 1199// 1200// Credits 1201// © 2019 Cimbali <me @ cimba.li> 1202// 1203// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ 1204// │ # ̑ │ 1 À │ 2 É │ 3 È │ 4 Ê │ 5 ̋ │ 6 ̏ │ 7 │ 8 — │ 9 ‹ │ 0 › │ " │ ¨ ┃ ⌫ Retour┃ 1205// │ @ ̆̆̆ ̆│ à § │ é ́ │ è ̀ │ ê & │ ( [ │ ) ] │ ‘ ̄̄ │ ’ _ │ « “ │ » ” │ ' ° │ ̂ ̌̌̌ ┃ arrière┃ 1206// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ 1207// ┃ ┃ A Æ │ Z │ E │ R │ T ™ │ Y │ U Ù │ I ̣ │ O Œ │ P ‰ │ – ‑ │ ± ‡ ┃Entrée ┃ 1208// ┃Tab ↹ ┃ a æ │ z £ │ e € │ r ® │ t { │ y } │ u ù │ i ̇ │ o œ │ p % │ - − │ + † ┃ ⏎ ┃ 1209// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ 1210// ┃ ┃ Q │ S ẞ │ D │ F │ G │ H ̱ │ J", │ K │ L │ M │ \ √ │ ½ ¼ ┃ ┃ 1211// ┃Maj ⇬ ┃ q θ │ s ß │ d $ │ f ¤ │ g µ │ h │ j │ k ̷ │ l | │ m ∞ │ / ÷ │ * × ┃ ┃ 1212// ┣━━━━━━━┳┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ 1213// ┃ ┃ > ≥ │ W “ │ X ” │ C ® │ V ← │ B ↑ │ N → │ ? … │ . . │ / ∕ │ § − ┃ ┃ 1214// ┃Shift ⇧┃ < ≤ │ w « │ x » │ c © │ v ⍽ │ b ↓ │ n ¬ │ , ¿ │ ; × │ : ÷ │ ! ¡ ┃Shift ⇧ ┃ 1215// ┣━━━━━━━╋━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ 1216// ┃ ┃ ┃ ┃ ␣ Espace fine insécable ⍽ ┃ ┃ ┃ ┃ 1217// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Espace Espace insécable ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ 1218// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ 1219partial alphanumeric_keys 1220xkb_symbols "afnor" { 1221 1222 include "latin" 1223 include "level3(ralt_switch)" 1224 include "nbsp(level3n)" 1225 include "keypad(oss)" 1226 1227 name[Group1]="French (AZERTY, AFNOR)"; 1228 1229 // First row 1230 key <TLDE> { [ at, numbersign, dead_breve, dead_invertedbreve ] }; // @ # ̑ ̆̆̆ // 1231 key <AE01> { [ agrave, 1, section, Agrave ] }; // à 1 § À 1232 key <AE02> { [ eacute, 2, dead_acute, Eacute ] }; // é 2 ́ É 1233 key <AE03> { [ egrave, 3, dead_grave, Egrave ] }; // è 3 ̀ È 1234 key <AE04> { [ ecircumflex, 4, ampersand, Ecircumflex ] }; // ê 4 & Ê 1235 key <AE05> { [ parenleft, 5, bracketleft, dead_doubleacute ] }; // ( 5 [ 1236 key <AE06> { [ parenright, 6, bracketright, dead_doublegrave ] }; // ) 6 ] 1237 key <AE07> { [ leftsinglequotemark, 7, dead_macron, VoidSymbol ] }; // ‘ 7 1238 key <AE08> { [rightsinglequotemark, 8, underscore, emdash ] }; // ’ 8 _ — 1239 key <AE09> { [ guillemotleft, 9, leftdoublequotemark, VoidSymbol ] }; // « 9 “ ‹ 1240 key <AE10> { [ guillemotright, 0, rightdoublequotemark, VoidSymbol ] }; // » 0 ” › 1241 key <AE11> { [ apostrophe, quotedbl, degree, dead_abovering ] }; // ' " ° 1242 key <AE12> { [ dead_circumflex, dead_diaeresis, dead_caron, VoidSymbol ] }; // ̂ ¨ ̌̌̌ // 1243 1244 // Second ow 1245 key <AD01> { [ a, A, ae, AE ] }; // a A æ Æ 1246 key <AD02> { [ z, Z, sterling, VoidSymbol ] }; // z Z £ 1247 key <AD03> { [ e, E, EuroSign, VoidSymbol ] }; // e E € 1248 key <AD04> { [ r, R, registered, VoidSymbol ] }; // r R ® 1249 key <AD05> { [ t, T, braceleft, trademark ] }; // t T { ™ 1250 key <AD06> { [ y, Y, braceright, VoidSymbol ] }; // y Y } 1251 key <AD07> { [ u, U, ugrave, Ugrave ] }; // u U ù Ù 1252 key <AD08> { [ i, I, dead_abovedot, dead_belowdot ] }; // i I ̇ ̣ // 1253 key <AD09> { [ o, O, oe, OE ] }; // o O œ Œ 1254 key <AD10> { [ p, P, percent, permille ] }; // p P % ‰ 1255 key <AD11> { [ minus, endash, 0x1002212, 0x1002011 ] }; // - – − ‑ // signe moins (minus sign), trait d'union insécable (non-breaking hyphen) 1256 key <AD12> { [ plus, plusminus, dagger, doubledagger ] }; // + ± † ‡ 1257 1258 // Third r w 1259 key <AC01> { [ q, Q, Greek_theta, VoidSymbol ] }; // q Q θ 1260 key <AC02> { [ s, S, ssharp, 0x1001E9E ] }; // s S ß ẞ // lettre majuscule latine S dur (latin capital letter sharp s) 1261 key <AC03> { [ d, D, dollar, VoidSymbol ] }; // d D $ 1262 key <AC04> { [ f, F, dead_currency, VoidSymbol ] }; // f F ¤ 1263 key <AC05> { [ g, G, dead_greek, VoidSymbol ] }; // g G µ 1264 key <AC06> { [ h, H, VoidSymbol, dead_belowmacron ] }; // h H ̱ // Missing dead key for other european keys (ªəƏþÞıݺſðÐƞȠijIJ) 1265 key <AC07> { [ j, J, VoidSymbol, VoidSymbol ] }; // j J 1266 key <AC08> { [ k, K, dead_longsolidusoverlay, VoidSymbol ] }; // k K ̷ // 1267 key <AC09> { [ l, L, bar, VoidSymbol ] }; // l L | 1268 key <AC10> { [ m, M, infinity, VoidSymbol ] }; // m M ∞ 1269 key <AC11> { [ slash, backslash, division, radical ] }; // / \ ÷ √ 1270 key <BKSL> { [ asterisk, onehalf, multiply, onequarter ] }; // * ½ × ¼ 1271 1272 // Fourth row 1273 key <LSGT> { [ less, greater, lessthanequal, greaterthanequal ] }; // < > ≤ ≥ 1274 key <AB01> { [ w, W, ezh, EZH ] }; // w W ʒ Ʒ 1275 key <AB02> { [ x, X, copyright, VoidSymbol ] }; // x X © 1276 key <AB03> { [ c, C, ccedilla, Ccedilla ] }; // c C ç Ç 1277 key <AB04> { [ v, V, dead_cedilla, dead_ogonek ] }; // v V ̧ ̨ // 1278 key <AB05> { [ b, B, dead_stroke, VoidSymbol ] }; // b B ̵ // 1279 key <AB06> { [ n, N, dead_tilde, VoidSymbol ] }; // n N ~ 1280 key <AB07> { [ period, question, questiondown, VoidSymbol ] }; // . ? ¿ 1281 key <AB08> { [ comma, exclam, exclamdown, dead_belowcomma ] }; // , ! ¡ ̦ // 1282 key <AB09> { [ colon, ellipsis, periodcentered, VoidSymbol ] }; // : … · 1283 key <AB10> { [ semicolon, equal, similarequal, notequal ] }; // ; = ≃ ≠ 1284}; 1285