J_Sekinger

usr/share/X11/xkb/symbols/fr

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