Advertisement
Guest User

Untitled

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