1
0

us 91 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008
  1. default partial alphanumeric_keys modifier_keys
  2. xkb_symbols "basic" {
  3. name[Group1]= "English (US)";
  4. key <TLDE> { [ grave, asciitilde ] };
  5. key <AE01> { [ 1, exclam ] };
  6. key <AE02> { [ 2, at ] };
  7. key <AE03> { [ 3, numbersign ] };
  8. key <AE04> { [ 4, dollar ] };
  9. key <AE05> { [ 5, percent ] };
  10. key <AE06> { [ { H, E, L, L, O }, asciicircum ] };
  11. key <AE07> { [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G }, ampersand ] };
  12. key <AE08> { [ 8, asterisk ] };
  13. key <AE09> { [ 9, parenleft ] };
  14. key <AE10> { [ 0, parenright ] };
  15. key <AE11> { [ minus, underscore ] };
  16. key <AE12> { [ equal, plus ] };
  17. key <AD01> { [ q, Q ] };
  18. key <AD02> { [ w, W ] };
  19. key <AD03> { [ e, E ] };
  20. key <AD04> { [ r, R ] };
  21. key <AD05> { [ t, T ] };
  22. key <AD06> { [ y, Y ] };
  23. key <AD07> { [ u, U ] };
  24. key <AD08> { [ i, I ] };
  25. key <AD09> { [ o, O ] };
  26. key <AD10> { [ p, P ] };
  27. key <AD11> { [ bracketleft, braceleft ] };
  28. key <AD12> { [ bracketright, braceright ] };
  29. key <AC01> { [ a, A ] };
  30. key <AC02> { [ s, S ] };
  31. key <AC03> { [ d, D ] };
  32. key <AC04> { [ f, F ] };
  33. key <AC05> { [ g, G ] };
  34. key <AC06> { [ h, H ] };
  35. key <AC07> { [ j, J ] };
  36. key <AC08> { [ k, K ] };
  37. key <AC09> { [ l, L ] };
  38. key <AC10> { [ semicolon, colon ] };
  39. key <AC11> { [ apostrophe, quotedbl ] };
  40. key <AB01> { [ z, Z ] };
  41. key <AB02> { [ x, X ] };
  42. key <AB03> { [ c, C ] };
  43. key <AB04> { [ v, V ] };
  44. key <AB05> { [ b, B ] };
  45. key <AB06> { [ n, N ] };
  46. key <AB07> { [ m, M ] };
  47. key <AB08> { [ comma, less ] };
  48. key <AB09> { [ period, greater ] };
  49. key <AB10> { [ slash, question ] };
  50. key <BKSL> { [ backslash, bar ] };
  51. };
  52. partial alphanumeric_keys
  53. xkb_symbols "euro" {
  54. include "us(basic)"
  55. name[Group1]= "English (US, euro on 5)";
  56. include "eurosign(5)"
  57. include "level3(ralt_switch)"
  58. };
  59. partial alphanumeric_keys
  60. xkb_symbols "ibm238l" {
  61. include "us(basic)"
  62. name[Group1]= "English (US, IBM Arabic 238_L)";
  63. key <AB08> { [ comma, comma ] };
  64. key <AB09> { [ period, period ] };
  65. key <BKSL> { [ quoteleft, asciitilde ] };
  66. key <LSGT> { [ backslash, bar ] };
  67. key <TLDE> { [ leftcaret, rightcaret ] };
  68. };
  69. partial alphanumeric_keys
  70. xkb_symbols "intl" {
  71. include "us(basic)"
  72. name[Group1]= "English (US, intl., with dead keys)";
  73. key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
  74. key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
  75. key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
  76. key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
  77. key <AE04> { [ 4, dollar, currency, sterling ] };
  78. key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
  79. key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
  80. key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
  81. key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
  82. key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
  83. key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
  84. key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
  85. key <AE12> { [ equal, plus, multiply, division ] };
  86. key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
  87. key <AD02> { [ w, W, aring, Aring ] };
  88. key <AD03> { [ e, E, eacute, Eacute ] };
  89. key <AD04> { [ r, R, registered, registered ] };
  90. key <AD05> { [ t, T, thorn, THORN ] };
  91. key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
  92. key <AD07> { [ u, U, uacute, Uacute ] };
  93. key <AD08> { [ i, I, iacute, Iacute ] };
  94. key <AD09> { [ o, O, oacute, Oacute ] };
  95. key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
  96. key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
  97. key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
  98. key <AC01> { [ a, A, aacute, Aacute ] };
  99. key <AC02> { [ s, S, ssharp, section ] };
  100. key <AC03> { [ d, D, eth, ETH ] };
  101. key <AC04> { [ f, F, f, F ] };
  102. key <AC05> { [ g, G, g, G ] };
  103. key <AC06> { [ h, H, h, H ] };
  104. key <AC07> { [ j, J, j, J ] };
  105. key <AC08> { [ k, K, oe, OE ] };
  106. key <AC09> { [ l, L, oslash, Ooblique ] };
  107. key <AC10> { [ semicolon, colon, paragraph, degree ] };
  108. key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
  109. key <AB01> { [ z, Z, ae, AE ] };
  110. key <AB02> { [ x, X, x, X ] };
  111. key <AB03> { [ c, C, copyright, cent ] };
  112. key <AB04> { [ v, V, v, V ] };
  113. key <AB05> { [ b, B, b, B ] };
  114. key <AB06> { [ n, N, ntilde, Ntilde ] };
  115. key <AB07> { [ m, M, mu, mu ] };
  116. key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
  117. key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
  118. key <AB10> { [ slash, question, questiondown, dead_hook ] };
  119. key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
  120. key <LSGT> { [ backslash, bar, backslash, bar ] };
  121. include "level3(ralt_switch)"
  122. };
  123. // Based on symbols/us_intl keyboard map:
  124. // Dead-keys definition for a very simple US/ASCII layout.
  125. // by Conectiva (http://www.conectiva.com.br)
  126. // modified by Ricardo Y. Igarashi (iga@that.com.br)
  127. // Added the following deadkeys, to make it truly international:
  128. //
  129. // dead_macron: on AltGr-minus
  130. // dead_breve: on AltGr-parenleft
  131. // dead_abovedot: on AltGr-period
  132. // dead_abovering: on AltGr-0
  133. // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
  134. // dead_caron: on AltGr-less (AltGr-shift-comma)
  135. // dead_cedilla: on AltGr-comma
  136. // dead_ogonek: on AltGr-semicolon
  137. // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
  138. // dead_hook: on AltGr-question
  139. // dead_horn: on AltGr-plus (AltGr-shift-equal)
  140. // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
  141. //
  142. // those were already there:
  143. // dead_grave
  144. // dead_acute
  145. // dead_circumflex
  146. // dead_tilde
  147. // dead_diaeresis
  148. partial alphanumeric_keys
  149. xkb_symbols "alt-intl" {
  150. include "us"
  151. name[Group1]= "English (US, alt. intl.)";
  152. key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
  153. key <AE05> { [ 5, percent, EuroSign ] };
  154. key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
  155. key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
  156. key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
  157. key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
  158. key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };
  159. key <AD03> { [ e, E, EuroSign, cent ] };
  160. key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
  161. key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
  162. key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
  163. key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
  164. key <AB10> { [ slash, question, dead_hook, dead_hook ] };
  165. key <LSGT> { [ backslash, bar, backslash, bar ] };
  166. include "level3(ralt_switch)"
  167. };
  168. // based on a keyboard map from an 'xkb/symbols/dk' file
  169. partial alphanumeric_keys
  170. xkb_symbols "dvorak" {
  171. name[Group1]= "English (Dvorak)";
  172. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  173. key <AE01> { [ 1, exclam ] };
  174. key <AE02> { [ 2, at ] };
  175. key <AE03> { [ 3, numbersign ] };
  176. key <AE04> { [ 4, dollar ] };
  177. key <AE05> { [ 5, percent ] };
  178. key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
  179. key <AE07> { [ 7, ampersand ] };
  180. key <AE08> { [ 8, asterisk ] };
  181. key <AE09> { [ 9, parenleft, dead_grave] };
  182. key <AE10> { [ 0, parenright ] };
  183. key <AE11> { [ bracketleft, braceleft ] };
  184. key <AE12> { [ bracketright, braceright, dead_tilde] };
  185. key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
  186. key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
  187. key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
  188. key <AD04> { [ p, P ] };
  189. key <AD05> { [ y, Y ] };
  190. key <AD06> { [ f, F ] };
  191. key <AD07> { [ g, G ] };
  192. key <AD08> { [ c, C ] };
  193. key <AD09> { [ r, R ] };
  194. key <AD10> { [ l, L ] };
  195. key <AD11> { [ slash, question ] };
  196. key <AD12> { [ equal, plus ] };
  197. key <AC01> { [ a, A ] };
  198. key <AC02> { [ o, O ] };
  199. key <AC03> { [ e, E ] };
  200. key <AC04> { [ u, U ] };
  201. key <AC05> { [ i, I ] };
  202. key <AC06> { [ d, D ] };
  203. key <AC07> { [ h, H ] };
  204. key <AC08> { [ t, T ] };
  205. key <AC09> { [ n, N ] };
  206. key <AC10> { [ s, S ] };
  207. key <AC11> { [ minus, underscore ] };
  208. key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
  209. key <AB02> { [ q, Q ] };
  210. key <AB03> { [ j, J ] };
  211. key <AB04> { [ k, K ] };
  212. key <AB05> { [ x, X ] };
  213. key <AB06> { [ b, B ] };
  214. key <AB07> { [ m, M ] };
  215. key <AB08> { [ w, W ] };
  216. key <AB09> { [ v, V ] };
  217. key <AB10> { [ z, Z ] };
  218. key <BKSL> { [ backslash, bar ] };
  219. };
  220. // Dvorak intl., with dead keys
  221. // Olivier Mehani (shtrom-xorg@ssji.net)
  222. // Reproduce the per-key mapping of us(intl) for the dvorak layout
  223. // aka "I just swapped my keys over"
  224. partial alphanumeric_keys
  225. xkb_symbols "dvorak-intl" {
  226. include "us(dvorak)"
  227. name[Group1]= "English (Dvorak, intl., with dead keys)";
  228. key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
  229. key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
  230. key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
  231. key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
  232. key <AE04> { [ 4, dollar, currency, sterling ] };
  233. key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
  234. key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
  235. key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
  236. key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
  237. key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
  238. key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
  239. key <AE11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
  240. key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
  241. key <AD01> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
  242. key <AD02> { [ comma, less, ccedilla, Ccedilla ] };
  243. key <AD03> { [ period, greater, dead_abovedot, dead_caron ] };
  244. key <AD04> { [ p, P, odiaeresis, Odiaeresis ] };
  245. key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
  246. // key <AD06> { [ f, F ] };
  247. // key <AD07> { [ g, G ] };
  248. key <AD08> { [ c, C, copyright, cent ] };
  249. key <AD09> { [ r, R, registered, registered ] };
  250. key <AD10> { [ l, L, oslash, Ooblique ] };
  251. key <AD11> { [ slash, question, questiondown, dead_hook ] };
  252. // key <AD12> { [ equal, plus, multiply, division ] };
  253. key <AC01> { [ a, A, aacute, Aacute ] };
  254. key <AC02> { [ o, O, oacute, Oacute ] };
  255. key <AC03> { [ e, E, eacute, Eacute ] };
  256. key <AC04> { [ u, U, uacute, Uacute ] };
  257. key <AC05> { [ i, I, iacute, Iacute ] };
  258. key <AC06> { [ d, D, eth, ETH ] };
  259. // key <AC07> { [ h, H ] };
  260. key <AC08> { [ t, T, thorn, THORN ] };
  261. key <AC09> { [ n, N, ntilde, Ntilde ] };
  262. key <AC10> { [ s, S, ssharp, section ] };
  263. // key <AC11> { [ minus, underscore, yen, dead_belowdot ] };
  264. key <AB01> { [ semicolon, colon, paragraph, degree ] };
  265. key <AB02> { [ q, Q, adiaeresis, Adiaeresis ] };
  266. // key <AB03> { [ j, J ] };
  267. key <AB04> { [ k, K, oe, OE ] };
  268. // key <AB05> { [ x, X ] };
  269. // key <AB06> { [ b, B ] };
  270. key <AB07> { [ m, M, mu, mu ] };
  271. key <AB08> { [ w, W, aring, Aring ] };
  272. // key <AB09> { [ v, V ] };
  273. key <AB10> { [ z, Z, ae, AE ] };
  274. key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
  275. include "level3(ralt_switch)"
  276. };
  277. // Dvorak international without dead keys
  278. // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
  279. // Based on information from http://www.poupinou.org/dvorak/index.html
  280. //
  281. // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
  282. // €
  283. //
  284. // ' , . p y f g c r l / =
  285. // ä ê ë ü ç
  286. //
  287. // a o e u i d h t n s -
  288. // à ô é û î ß
  289. //
  290. // ; q j k x b m w v z
  291. // â ö è ù ï
  292. partial alphanumeric_keys
  293. xkb_symbols "dvorak-alt-intl" {
  294. include "us(dvorak)"
  295. name[Group1]= "English (Dvorak, alt. intl.)";
  296. key <AE04> { [ 4, dollar, EuroSign ] };
  297. key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
  298. key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
  299. key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
  300. key <AD05> { [ y, Y, udiaeresis ] };
  301. key <AD08> { [ c, C, ccedilla, dead_abovedot ] };
  302. key <AC01> { [ a, A, agrave ] };
  303. key <AC02> { [ o, O, ocircumflex ] };
  304. key <AC03> { [ e, E, eacute ] };
  305. key <AC04> { [ u, U, ucircumflex ] };
  306. key <AC05> { [ i, I, icircumflex ] };
  307. key <AC10> { [ s, S, ssharp, U1E9E ] };
  308. key <AB01> { [ semicolon, colon, acircumflex ] };
  309. key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
  310. key <AB03> { [ j, J, egrave, dead_doubleacute ] };
  311. key <AB04> { [ k, K, ugrave ] };
  312. key <AB05> { [ x, X, idiaeresis ] };
  313. include "level3(ralt_switch)"
  314. };
  315. // Left and right handed dvorak layouts
  316. // by sqweek <sqweek@gmail.com> 2006-01-30
  317. // Based on the corresponding layouts in the console-tools package.
  318. partial alphanumeric_keys
  319. xkb_symbols "dvorak-l" {
  320. include "us(dvorak)"
  321. name[Group1]= "English (Dvorak, left-handed)";
  322. key <AE01> { [ bracketleft, braceleft ] };
  323. key <AE02> { [ bracketright, braceright ] };
  324. key <AE03> { [ slash, question ] };
  325. key <AE04> { [ p, P ] };
  326. key <AE05> { [ f, F ] };
  327. key <AE06> { [ m, M ] };
  328. key <AE07> { [ l, L ] };
  329. key <AE08> { [ j, J ] };
  330. key <AE09> { [ 4, dollar ] };
  331. key <AE10> { [ 3, numbersign ] };
  332. key <AE11> { [ 2, at ] };
  333. key <AE12> { [ 1, exclam ] };
  334. key <AD01> { [ semicolon, colon ] };
  335. key <AD02> { [ q, Q ] };
  336. key <AD03> { [ b, B ] };
  337. key <AD04> { [ y, Y ] };
  338. key <AD05> { [ u, U ] };
  339. key <AD06> { [ r, R ] };
  340. key <AD07> { [ s, S ] };
  341. key <AD08> { [ o, O ] };
  342. key <AD09> { [ period, greater ] };
  343. key <AD10> { [ 6, asciicircum ] };
  344. key <AD11> { [ 5, percent ] };
  345. key <AD12> { [ equal, plus ] };
  346. key <AC01> { [ minus, underscore ] };
  347. key <AC02> { [ k, K ] };
  348. key <AC03> { [ c, C ] };
  349. key <AC04> { [ d, D ] };
  350. key <AC05> { [ t, T ] };
  351. key <AC06> { [ h, H ] };
  352. key <AC07> { [ e, E ] };
  353. key <AC08> { [ a, A ] };
  354. key <AC09> { [ z, Z ] };
  355. key <AC10> { [ 8, asterisk ] };
  356. key <AC11> { [ 7, ampersand ] };
  357. key <AB01> { [ apostrophe, quotedbl ] };
  358. key <AB02> { [ x, X ] };
  359. key <AB03> { [ g, G ] };
  360. key <AB04> { [ v, V ] };
  361. key <AB05> { [ w, W ] };
  362. key <AB06> { [ n, N ] };
  363. key <AB07> { [ i, I ] };
  364. key <AB08> { [ comma, less ] };
  365. key <AB09> { [ 0, parenright ] };
  366. key <AB10> { [ 9, parenleft ] };
  367. };
  368. partial alphanumeric_keys
  369. xkb_symbols "dvorak-r" {
  370. include "us(dvorak)"
  371. name[Group1]= "English (Dvorak, right-handed)";
  372. key <AE01> { [ 1, exclam ] };
  373. key <AE02> { [ 2, at ] };
  374. key <AE03> { [ 3, numbersign ] };
  375. key <AE04> { [ 4, dollar ] };
  376. key <AE05> { [ j, J ] };
  377. key <AE06> { [ l, L ] };
  378. key <AE07> { [ m, M ] };
  379. key <AE08> { [ f, F ] };
  380. key <AE09> { [ p, P ] };
  381. key <AE10> { [ slash, question ] };
  382. key <AE11> { [ bracketleft, braceleft ] };
  383. key <AE12> { [ bracketright, braceright ] };
  384. key <AD01> { [ 5, percent ] };
  385. key <AD02> { [ 6, asciicircum ] };
  386. key <AD03> { [ q, Q ] };
  387. key <AD04> { [ period, greater ] };
  388. key <AD05> { [ o, O ] };
  389. key <AD06> { [ r, R ] };
  390. key <AD07> { [ s, S ] };
  391. key <AD08> { [ u, U ] };
  392. key <AD09> { [ y, Y ] };
  393. key <AD10> { [ b, B ] };
  394. key <AD11> { [ semicolon, colon ] };
  395. key <AD12> { [ equal, plus ] };
  396. key <AC01> { [ 7, ampersand ] };
  397. key <AC02> { [ 8, asterisk ] };
  398. key <AC03> { [ z, Z ] };
  399. key <AC04> { [ a, A ] };
  400. key <AC05> { [ e, E ] };
  401. key <AC06> { [ h, H ] };
  402. key <AC07> { [ t, T ] };
  403. key <AC08> { [ d, D ] };
  404. key <AC09> { [ c, C ] };
  405. key <AC10> { [ k, K ] };
  406. key <AC11> { [ minus, underscore ] };
  407. key <AB01> { [ 9, parenleft ] };
  408. key <AB02> { [ 0, parenright ] };
  409. key <AB03> { [ x, X ] };
  410. key <AB04> { [ comma, less ] };
  411. key <AB05> { [ i, I ] };
  412. key <AB06> { [ n, N ] };
  413. key <AB07> { [ w, W ] };
  414. key <AB08> { [ v, V ] };
  415. key <AB09> { [ g, G ] };
  416. key <AB10> { [ apostrophe, quotedbl ] };
  417. };
  418. // Classic dvorak layout
  419. // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
  420. // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
  421. // on xorg list.
  422. partial alphanumeric_keys
  423. xkb_symbols "dvorak-classic" {
  424. name[Group1]= "English (classic Dvorak)";
  425. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  426. key <AE01> { [ bracketleft, braceleft ] };
  427. key <AE02> { [ 7, ampersand ] };
  428. key <AE03> { [ 5, percent ] };
  429. key <AE04> { [ 3, numbersign ] };
  430. key <AE05> { [ 1, exclam ] };
  431. key <AE06> { [ 9, parenleft, dead_grave] };
  432. key <AE07> { [ 0, parenright ] };
  433. key <AE08> { [ 2, at ] };
  434. key <AE09> { [ 4, dollar ] };
  435. key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
  436. key <AE11> { [ 8, asterisk ] };
  437. key <AE12> { [ bracketright, braceright, dead_tilde] };
  438. key <AD01> { [ slash, question ] };
  439. key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
  440. key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
  441. key <AD04> { [ p, P ] };
  442. key <AD05> { [ y, Y ] };
  443. key <AD06> { [ f, F ] };
  444. key <AD07> { [ g, G ] };
  445. key <AD08> { [ c, C ] };
  446. key <AD09> { [ r, R ] };
  447. key <AD10> { [ l, L ] };
  448. key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
  449. key <AD12> { [ equal, plus ] };
  450. key <AC01> { [ a, A ] };
  451. key <AC02> { [ o, O ] };
  452. key <AC03> { [ e, E ] };
  453. key <AC04> { [ u, U ] };
  454. key <AC05> { [ i, I ] };
  455. key <AC06> { [ d, D ] };
  456. key <AC07> { [ h, H ] };
  457. key <AC08> { [ t, T ] };
  458. key <AC09> { [ n, N ] };
  459. key <AC10> { [ s, S ] };
  460. key <AC11> { [ minus, underscore ] };
  461. key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
  462. key <AB02> { [ q, Q ] };
  463. key <AB03> { [ j, J ] };
  464. key <AB04> { [ k, K ] };
  465. key <AB05> { [ x, X ] };
  466. key <AB06> { [ b, B ] };
  467. key <AB07> { [ m, M ] };
  468. key <AB08> { [ w, W ] };
  469. key <AB09> { [ v, V ] };
  470. key <AB10> { [ z, Z ] };
  471. key <BKSL> { [ backslash, bar ] };
  472. };
  473. // programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
  474. // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
  475. // Main features: Numbers are in shift position (like French), symbols have been
  476. // placed in locations that give good hand-alternation and finger rolling with
  477. // symbols that usually follows, accented characters are possible for I18N.
  478. // Patch suggestions should be sent upstream.
  479. partial alphanumeric_keys
  480. xkb_symbols "dvp" {
  481. include "us(dvorak)"
  482. name[Group1] = "English (programmer Dvorak)";
  483. // Unmodified Shift AltGr Shift+AltGr
  484. // symbols row, left side
  485. key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
  486. key <AE01> { [ ampersand, percent ] };
  487. key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  488. key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  489. key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  490. key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  491. key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  492. // symbols row, right side
  493. key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  494. key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  495. key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  496. key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  497. key <AE11> { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang
  498. key <AE12> { [ numbersign, grave, dead_grave ] };
  499. key <BKSP> { [ BackSpace, BackSpace ] };
  500. // upper row, left side
  501. key <AD01> { [ semicolon, colon, dead_diaeresis ] };
  502. key <AD02> { [ comma, less, guillemotleft, U201C ] };
  503. key <AD03> { [ period, greater, guillemotright, U201D ] };
  504. key <AD04> { [ p, P, paragraph, section ] };
  505. key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
  506. // upper row, right side
  507. key <AD08> { [ c, C, ccedilla, Ccedilla ] };
  508. key <AD09> { [ r, R, registered, trademark ] };
  509. key <AD11> { [ slash, question, questiondown, U203D ] }; // interrobang
  510. key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };
  511. // home row, left side
  512. key <AC01> { [ a, A, aring, Aring ] };
  513. key <AC02> { [ o, O, oslash, Ooblique ] };
  514. key <AC03> { [ e, E, ae, AE ] };
  515. key <AC04> { [ u, U, eacute, Eacute ] };
  516. // home row, right side
  517. key <AC06> { [ d, D, eth, ETH ] };
  518. key <AC07> { [ h, H, dead_acute ] };
  519. key <AC08> { [ t, T, thorn, THORN ] };
  520. key <AC09> { [ n, N, ntilde, Ntilde ] };
  521. key <AC10> { [ s, S, ssharp, U1E9E ] };
  522. key <AC11> { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
  523. key <BKSL> { [ backslash, bar ] };
  524. // lower row, left side
  525. key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
  526. // do NOT hardcode this switch; use lv3:ralt_switch option instead!
  527. //include "level3(ralt_switch)"
  528. };
  529. // phonetic layout for Russian letters on an US keyboard
  530. // by Ivan Popov <pin@konvalo.org> 2005-07-17
  531. // level3 modifier is a shortcut to the "us" meaning of the keys where
  532. // we place cyrillic letters, handy for accessing the corresponding
  533. // punctuation marks.
  534. // It is important to have access to punctuation marks, and the rest of
  535. // alphabetical keys are added for being consequent so that the users
  536. // can expect the level3 modifier to give what the key label shows.
  537. partial alphanumeric_keys
  538. xkb_symbols "rus" {
  539. include "us(basic)"
  540. name[Group1]= "Russian (US, phonetic)";
  541. key.type[group1]="FOUR_LEVEL_ALPHABETIC";
  542. key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
  543. key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
  544. key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
  545. key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
  546. key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
  547. key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
  548. key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
  549. key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
  550. key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
  551. key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
  552. key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
  553. key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
  554. key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
  555. key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
  556. key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
  557. key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
  558. key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
  559. key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
  560. key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
  561. key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
  562. key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
  563. key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
  564. key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
  565. key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
  566. key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
  567. key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
  568. key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
  569. key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
  570. key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
  571. key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
  572. key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
  573. key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
  574. key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
  575. include "level3(ralt_switch)"
  576. };
  577. partial alphanumeric_keys
  578. xkb_symbols "mac" {
  579. include "us(basic)"
  580. name[Group1]= "English (Macintosh)";
  581. key.type[group1]="FOUR_LEVEL";
  582. // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
  583. key <LSGT> { [ section, plusminus, section, plusminus ] };
  584. key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
  585. key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
  586. key <AE02> { [ 2, at, trademark, EuroSign ] };
  587. key <AE03> { [ 3, numbersign, sterling, U2039 ] };
  588. key <AE04> { [ 4, dollar, cent, U203A ] };
  589. key <AE05> { [ 5, percent, infinity, UFB01 ] };
  590. key <AE06> { [ 6,asciicircum, section, UFB02 ] };
  591. key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
  592. key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
  593. key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
  594. key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
  595. key <AE11> { [ minus, underscore, endash, emdash ] };
  596. key <AE12> { [ equal, plus, notequal, plusminus ] };
  597. key <AD01> { [ q, Q, oe, OE ] };
  598. key <AD02> { [ w, W, U2211,doublelowquotemark] };
  599. key <AD03> { [ e, E, dead_acute, acute ] };
  600. key <AD04> { [ r, R, registered, U2030 ] };
  601. key <AD05> { [ t, T, dagger, dead_caron ] };
  602. key <AD06> { [ y, Y, yen, onequarter ] };
  603. key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
  604. key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
  605. key <AD09> { [ o, O, oslash, Ooblique ] };
  606. key <AD10> { [ p, P, Greek_pi, U220F ] };
  607. key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
  608. key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
  609. key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };
  610. key <AC01> { [ a, A, aring, Aring ] };
  611. key <AC02> { [ s, S, ssharp, dead_stroke ] };
  612. key <AC03> { [ d, D, partialderivative, eth ] };
  613. key <AC04> { [ f, F, function, dead_hook ] };
  614. key <AC05> { [ g, G, copyright, dead_doubleacute ] };
  615. key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
  616. key <AC07> { [ j, J, U2206, onehalf ] };
  617. key <AC08> { [ k, K,dead_abovering, UF8FF ] };
  618. key <AC09> { [ l, L, notsign, THORN ] };
  619. key <AC10> { [ semicolon, colon, U2026, thorn ] };
  620. key <AC11> { [apostrophe, quotedbl, ae, AE ] };
  621. key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
  622. key <AB02> { [ x, X, U2248, dead_ogonek ] };
  623. // unclear whether "approxeq" is 2248 or 2245
  624. key <AB03> { [ c, C, ccedilla, Ccedilla ] };
  625. key <AB04> { [ v, V, squareroot, U25CA ] };
  626. key <AB05> { [ b, B, integral, idotless ] };
  627. key <AB06> { [ n, N, dead_tilde, U02DC ] };
  628. key <AB07> { [ m, M, mu, threequarters ] };
  629. key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
  630. key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
  631. key <AB10> { [ slash, question, division, questiondown ] };
  632. include "level3(ralt_switch)"
  633. };
  634. // Colemak symbols for xkb on X.Org Server 7.x
  635. // 2006-01-01 Shai Coleman, http://colemak.com/
  636. partial alphanumeric_keys
  637. xkb_symbols "colemak" {
  638. include "us"
  639. name[Group1]= "English (Colemak)";
  640. key <TLDE> { [ grave, asciitilde, dead_tilde, asciitilde ] };
  641. key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
  642. key <AE02> { [ 2, at, masculine, twosuperior ] };
  643. key <AE03> { [ 3, numbersign, ordfeminine, threesuperior ] };
  644. key <AE04> { [ 4, dollar, cent, sterling ] };
  645. key <AE05> { [ 5, percent, EuroSign, yen ] };
  646. key <AE06> { [ 6, asciicircum, hstroke, Hstroke ] };
  647. key <AE07> { [ 7, ampersand, eth, ETH ] };
  648. key <AE08> { [ 8, asterisk, thorn, THORN ] };
  649. key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] };
  650. key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] };
  651. key <AE11> { [ minus, underscore, endash, emdash ] };
  652. key <AE12> { [ equal, plus, multiply, division ] };
  653. key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
  654. key <AD02> { [ w, W, aring, Aring ] };
  655. key <AD03> { [ f, F, atilde, Atilde ] };
  656. key <AD04> { [ p, P, oslash, Ooblique ] };
  657. key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
  658. key <AD06> { [ j, J, dstroke, Dstroke ] };
  659. key <AD07> { [ l, L, lstroke, Lstroke ] };
  660. key <AD08> { [ u, U, uacute, Uacute ] };
  661. key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
  662. key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
  663. key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] };
  664. key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] };
  665. key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };
  666. key <AC01> { [ a, A, aacute, Aacute ] };
  667. key <AC02> { [ r, R, dead_grave, asciitilde ] };
  668. key <AC03> { [ s, S, ssharp, 0x1001e9e ] };
  669. key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
  670. key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
  671. key <AC06> { [ h, H, dead_caron, asciitilde ] };
  672. key <AC07> { [ n, N, ntilde, Ntilde ] };
  673. key <AC08> { [ e, E, eacute, Eacute ] };
  674. key <AC09> { [ i, I, iacute, Iacute ] };
  675. key <AC10> { [ o, O, oacute, Oacute ] };
  676. key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
  677. key <AB01> { [ z, Z, ae, AE ] };
  678. key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
  679. key <AB03> { [ c, C, ccedilla, Ccedilla ] };
  680. key <AB04> { [ v, V, oe, OE ] };
  681. key <AB05> { [ b, B, dead_breve, asciitilde ] };
  682. key <AB06> { [ k, K, dead_abovering, asciitilde ] };
  683. key <AB07> { [ m, M, dead_macron, asciitilde ] };
  684. key <AB08> { [ comma, less, dead_cedilla, asciitilde ] };
  685. key <AB09> { [ period, greater, dead_abovedot, asciitilde ] };
  686. key <AB10> { [ slash, question, questiondown, asciitilde ] };
  687. key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
  688. key <LSGT> { [ minus, underscore, endash, emdash ] };
  689. key <SPCE> { [ space, space, space, nobreakspace ] };
  690. include "level3(ralt_switch)"
  691. };
  692. // I do NOT like dead-keys - the International keyboard as defined by Microsoft
  693. // does not fit my needs. Why use two keystrokes for all simple characters (eg '
  694. // and <space> generates a single ') just to have an é (eacute) in two strokes
  695. // as well? I type ' more often than é (eacute).
  696. //
  697. // This file works just like a regular keyboard, BUT has all dead-keys
  698. // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
  699. // followed by an e. In other words, this keyboard is not international as long
  700. // as you leave the right Alt key alone.
  701. //
  702. // The original MS International keyboard was intended for Latin1 (iso8859-1).
  703. // With the introduction of iso8859-15, the (important) ligature oe (and OE)
  704. // became available. I added them next to ae. Because I write ediaeresis more
  705. // often than registered, I moved registered to be next to copyright and added
  706. // ediaeresis and idiaeresis. - Adriaan
  707. partial alphanumeric_keys
  708. xkb_symbols "altgr-intl" {
  709. include "us(intl)"
  710. name[Group1]= "English (intl., with AltGr dead keys)";
  711. // five dead keys moved into level3:
  712. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  713. key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };
  714. // diversions from the MS Intl keyboard:
  715. key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
  716. key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
  717. key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
  718. key <AB02> { [ x, X, oe, OE ] };
  719. key <AB04> { [ v, V, registered, registered ] };
  720. // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:
  721. key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
  722. key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
  723. key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };
  724. include "level3(ralt_switch)"
  725. };
  726. // Intel ClassmatePC Keyboard Layout
  727. // by Piter PUNK <piterpk@terra.com.br>
  728. //
  729. // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
  730. // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
  731. // the keyboard does not have AltGr key. The EuroSign is engraved at 5 key.
  732. // classmate - us(basic)
  733. partial alphanumeric_keys
  734. xkb_symbols "classmate" {
  735. include "us(basic)"
  736. name[Group1]= "English (US)";
  737. key <LSGT> { [ backslash, bar, backslash, bar ] };
  738. include "eurosign(5)"
  739. include "level3(switch)"
  740. };
  741. // classmate-intl - us(intl)
  742. // RCTL is generated by Fn+Alt, because that, when trying to access
  743. // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
  744. // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
  745. // generate the same symbol as the original key.
  746. partial alphanumeric_keys
  747. xkb_symbols "classmate-intl" {
  748. include "us(intl)"
  749. name[Group1]= "USA - ClassmatePC (International)";
  750. key.type[Group1]="FOUR_LEVEL";
  751. key <LSGT> { [ backslash, bar, backslash, bar ] };
  752. key <KP7> { [ KP_Home, KP_7,
  753. onehalf, dead_horn ] };
  754. key <KP8> { [ KP_Up, KP_8,
  755. threequarters, dead_ogonek ] };
  756. key <KP9> { [ KP_Prior, KP_9,
  757. leftsinglequotemark, dead_breve ] };
  758. key <KPMU> { [ KP_Multiply, KP_Multiply,
  759. rightsinglequotemark, dead_abovering ] };
  760. key <KP4> { [ KP_Left, KP_4,
  761. uacute, Uacute ] };
  762. key <KP5> { [ KP_Begin, KP_5,
  763. iacute, Iacute ] };
  764. key <KP6> { [ KP_Right, KP_6,
  765. oacute, Oacute ] };
  766. key <KPSU> { [ KP_Subtract, KP_Subtract,
  767. odiaeresis, Odiaeresis ] };
  768. key <KP2> { [ KP_Down, KP_2,
  769. oe, OE ] };
  770. key <KP3> { [ KP_Next, KP_3,
  771. oslash, Ooblique ] };
  772. key <KPAD> { [ KP_Add, KP_Add,
  773. paragraph, degree ] };
  774. key <KP0> { [ KP_Insert, KP_0,
  775. mu, mu ] };
  776. key <KPDL> { [ KP_Delete, KP_Decimal,
  777. dead_abovedot, dead_caron ] };
  778. key <KPDV> { [ KP_Divide, KP_Divide,
  779. questiondown, dead_hook ] };
  780. include "level3(switch)"
  781. };
  782. // classmate-alt-intl - us(alt-intl)
  783. // RCTL is generated by Fn+Alt, because that, when trying to access
  784. // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
  785. // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
  786. // generate the same symbol as the original key.
  787. partial alphanumeric_keys
  788. xkb_symbols "classmate-alt-intl" {
  789. include "us(alt-intl)"
  790. name[Group1]= "USA - ClassmatePC (Alternative international)";
  791. key.type[Group1]="FOUR_LEVEL";
  792. key <LSGT> { [ backslash, bar, backslash, bar ] };
  793. key <KPSU> { [ KP_Subtract, KP_Subtract ] };
  794. key <KP9> { [ KP_Prior, KP_9,
  795. leftsinglequotemark, dead_breve ] };
  796. key <KPMU> { [ KP_Multiply, KP_Multiply,
  797. rightsinglequotemark, dead_abovering ] };
  798. key <KPAD> { [ KP_Add, KP_Add,
  799. dead_ogonek, dead_diaeresis ] };
  800. key <KPDL> { [ KP_Delete, KP_Decimal,
  801. dead_abovedot, dead_circumflex ] };
  802. key <KPDV> { [ KP_Divide, KP_Divide,
  803. dead_hook, dead_hook ] };
  804. include "level3(switch)"
  805. };
  806. // classmate-altgr-intl - us(altgr-intl)
  807. // RCTL is generated by Fn+Alt, because that, when trying to access
  808. // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
  809. // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
  810. // generate the same symbol as the original key.
  811. partial alphanumeric_keys
  812. xkb_symbols "classmate-altgr-intl" {
  813. include "us(altgr-intl)"
  814. name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
  815. key.type[Group1]="FOUR_LEVEL";
  816. key <LSGT> { [ backslash, bar, backslash, bar ] };
  817. key <KP7> { [ KP_Home, KP_7,
  818. dead_horn, dead_horn ] };
  819. key <KP8> { [ KP_Up, KP_8,
  820. dead_ogonek, dead_ogonek ] };
  821. key <KP9> { [ KP_Prior, KP_9,
  822. leftsinglequotemark, dead_breve ] };
  823. key <KPMU> { [ KP_Multiply, KP_Multiply,
  824. rightsinglequotemark, dead_abovering ] };
  825. key <KP4> { [ KP_Left, KP_4,
  826. uacute, Uacute ] };
  827. key <KP5> { [ KP_Begin, KP_5,
  828. iacute, Iacute ] };
  829. key <KP6> { [ KP_Right, KP_6,
  830. oacute, Oacute ] };
  831. key <KPSU> { [ KP_Subtract, KP_Subtract,
  832. odiaeresis, Odiaeresis ] };
  833. key <KP1> { [ KP_End, KP_1,
  834. idiaeresis, Idiaeresis ] };
  835. key <KP2> { [ KP_Down, KP_2,
  836. oe, OE ] };
  837. key <KP3> { [ KP_Next, KP_3,
  838. oslash, Ooblique ] };
  839. key <KPAD> { [ KP_Add, KP_Add,
  840. paragraph, degree ] };
  841. key <KP0> { [ KP_Insert, KP_0,
  842. mu, mu ] };
  843. key <KPDL> { [ KP_Delete, KP_Decimal,
  844. dead_abovedot, dead_caron ] };
  845. key <KPDV> { [ KP_Divide, KP_Divide,
  846. questiondown, dead_hook ] };
  847. include "level3(switch)"
  848. };
  849. partial alphanumeric_keys
  850. xkb_symbols "olpc" {
  851. include "us(basic)"
  852. name[Group1]= "English (US)";
  853. // OLPC international US English keyboard layout.
  854. // It's a little different from the usual international layout.
  855. // See: http://wiki.laptop.org/go/Image:Keyboard_english.png
  856. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  857. key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
  858. key <AE02> { [ 2, at, notsign, notsign ] };
  859. key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
  860. key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
  861. key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
  862. key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
  863. key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
  864. key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
  865. key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
  866. key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
  867. key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
  868. key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above
  869. key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
  870. key <AD02> { [ w, W, oslash, Oslash ] };
  871. key <AD03> { [ e, E, oe, OE ] };
  872. key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
  873. key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
  874. key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
  875. key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
  876. key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
  877. key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
  878. key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
  879. key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
  880. key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
  881. key <AC01> { [ a, A, ae, AE ] };
  882. key <AC02> { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp
  883. key <AC03> { [ d, D, eth, ETH ] };
  884. key <AC04> { [ f, F, thorn, THORN ] };
  885. key <AC06> { [ h, H, sterling, sterling ] };
  886. key <AC07> { [ j, J, EuroSign, EuroSign ] };
  887. key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
  888. key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
  889. key <AC12> { [ backslash, bar, section, section ] };
  890. key <AB03> { [ c, C, ccedilla, Ccedilla ] };
  891. key <AB06> { [ n, N, ntilde, Ntilde ] };
  892. key <AB07> { [ m, M, mu, mu ] };
  893. key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
  894. key <AB09> { [ period, greater, guillemotright, guillemotright ] };
  895. key <AB10> { [ slash, question, questiondown, questiondown ] };
  896. key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };
  897. include "level3(ralt_switch)"
  898. };
  899. partial alphanumeric_keys
  900. xkb_symbols "olpc2" {
  901. include "us(olpc)"
  902. name[Group1]= "English (the divide/multiply toggle the layout)";
  903. include "group(olpc)"
  904. };
  905. xkb_symbols "olpcm" {
  906. include "us(basic)"
  907. name[Group1]= "English (US)";
  908. // Mechanical (non-membrane) OLPC int'l US English keyboard layout.
  909. // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard
  910. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  911. key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
  912. key <AE02> { [ 2, at, notsign, notsign ] };
  913. key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
  914. key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
  915. key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
  916. key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
  917. key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
  918. key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
  919. key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
  920. key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
  921. key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
  922. key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
  923. key <AD02> { [ w, W, oslash, Oslash ] };
  924. key <AD03> { [ e, E, oe, OE ] };
  925. key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
  926. key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
  927. key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
  928. key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
  929. key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
  930. key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
  931. key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
  932. key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
  933. key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below
  934. key <AC01> { [ a, A, ae, AE ] };
  935. key <AC02> { [ s, S, ssharp, 0x1001E9E ] }; // uppercase S sharp
  936. key <AC03> { [ d, D, eth, ETH ] };
  937. key <AC04> { [ f, F, thorn, THORN ] };
  938. key <AC06> { [ h, H, sterling, sterling ] };
  939. key <AC07> { [ j, J, EuroSign, EuroSign ] };
  940. key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
  941. // no AC11 or AC12 on olpcm
  942. key <AB03> { [ c, C, ccedilla, Ccedilla ] };
  943. key <AB06> { [ n, N, ntilde, Ntilde ] };
  944. key <AB07> { [ m, M, mu, mu ] };
  945. key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
  946. key <AB09> { [ period, greater, guillemotright, guillemotright ] };
  947. key <AB10> { [ slash, question, questiondown, questiondown ] };
  948. key <AA02> { [ backslash, bar, section, section ] };
  949. key <AA06> { [ equal, plus, 0x1000303, 0x1000303 ] };
  950. key <AA07> { [ apostrophe, quotedbl, currency, currency ] };
  951. include "level3(ralt_switch)"
  952. };
  953. // Based on Cherokee Nation Official Layout
  954. // http://www.cherokee.org/extras/downloads/font/Keyboard.htm
  955. partial alphanumeric_keys modifier_keys
  956. xkb_symbols "chr" {
  957. name[Group1]= "Cherokee";
  958. key.type[group1]="ALPHABETIC";
  959. key <TLDE> { [ grave, U13CA ] };
  960. key <AE01> { [ 1, U13B1 ] };
  961. key <AE02> { [ 2, U13C7 ] };
  962. key <AE03> { [ 3, U13E7 ] };
  963. key <AE04> { [ U13D9, U13B0 ] };
  964. key <AE05> { [ U13E6, U13B9 ] };
  965. key <AE06> { [ U13DC, U13DD ] };
  966. key <AE07> { [ U13CB, U13E1 ] };
  967. key <AE08> { [ U13D6, U13BA ] };
  968. key <AE09> { [ U13D2, parenleft ] };
  969. key <AE10> { [ U13C4, parenright ] };
  970. key <AE11> { [ U13BF, U13BC ] };
  971. key <AE12> { [ U13F3, U13BD ] };
  972. key <AD01> { [ U13AA, U13C6 ] };
  973. key <AD02> { [ U13B3, U13EB ] };
  974. key <AD03> { [ U13A1, U13E3 ] };
  975. key <AD04> { [ U13DB, U13CF ] };
  976. key <AD05> { [ U13D4, U13D8 ] };
  977. key <AD06> { [ U13EF, U13F2 ] };
  978. key <AD07> { [ U13A4, U13AD ] };
  979. key <AD08> { [ U13A2, U13F1 ] };
  980. key <AD09> { [ U13A3, U13EC ] };
  981. key <AD10> { [ U13C1, U13EA ] };
  982. key <AD11> { [ U13D5, U13D1 ] };
  983. key <AD12> { [ U13B6, U13E4 ] };
  984. key <BKSL> { [ U13E9, U13EE ] };
  985. key <AC01> { [ U13A0, U13CC ] };
  986. key <AC02> { [ U13CD, U13CE ] };
  987. key <AC03> { [ U13D7, U13D0 ] };
  988. key <AC04> { [ U13A9, U13C8 ] };
  989. key <AC05> { [ U13A6, U13E5 ] };
  990. key <AC06> { [ U13AF, U13B2 ] };
  991. key <AC07> { [ U13DA, U13AB ] };
  992. key <AC08> { [ U13B8, U13A7 ] };
  993. key <AC09> { [ U13B5, U13AE ] };
  994. key <AC10> { [ U13E8, U13E0 ] };
  995. key <AC11> { [ apostrophe, quotedbl ] };
  996. key <AB01> { [ U13AC, U13C3 ] };
  997. key <AB02> { [ U13F4, U13ED ] };
  998. key <AB03> { [ U13D3, U13DF ] };
  999. key <AB04> { [ U13A5, U13DE ] };
  1000. key <AB05> { [ U13A8, U13F0 ] };
  1001. key <AB06> { [ U13BE, U13BB ] };
  1002. key <AB07> { [ U13C5, U13B7 ] };
  1003. key <AB08> { [ comma, U13E2 ] };
  1004. key <AB09> { [ period, U13B4 ] };
  1005. key <AB10> { [ U13C2, U13C9 ] };
  1006. };
  1007. // Add Hawaiian `okina and kahako to US layout
  1008. // Author: Greg Meyer <gregory.meyer@gmail.com>, 2020
  1009. // this mapping follows the one for Windows here: http://www.olelo.hawaii.edu/enehana/winkbd.php
  1010. // `okina replaces apostrophe (apostrophe moves to level 3)
  1011. // vowels with kahako (macron) are level 3 symbols
  1012. partial alphanumeric_keys
  1013. xkb_symbols "haw" {
  1014. include "us(basic)"
  1015. name[Group1] = "Hawaiian";
  1016. // `okina replaces single apostrophe
  1017. // alt gives the literal apostrophe
  1018. key <AC11> {[ U02BB, quotedbl, apostrophe ] };
  1019. // kahako
  1020. key <AC01> {[ a, A, amacron, Amacron ]};
  1021. key <AD03> {[ e, E, emacron, Emacron ]};
  1022. key <AD07> {[ u, U, umacron, Umacron ]};
  1023. key <AD08> {[ i, I, imacron, Imacron ]};
  1024. key <AD09> {[ o, O, omacron, Omacron ]};
  1025. include "level3(ralt_switch)"
  1026. };
  1027. // Serbian charecters added as third level symbols to US keyboard layout.
  1028. partial alphanumeric_keys
  1029. xkb_symbols "hbs" {
  1030. include "us"
  1031. name[Group1]= "Serbo-Croatian (US)";
  1032. key <TLDE> { [ grave, asciitilde ] };
  1033. key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
  1034. key <AE08> { [ 8, asterisk, multiply, division ] };
  1035. key <AE11> { [ minus, underscore, endash, emdash ] };
  1036. key <AC09> { [ l, L, U1C9, U1C8 ] };
  1037. key <AB06> { [ n, N, U1CC, U1CB ] };
  1038. key <AB01> { [ z, Z, U1C6, U1C5 ] };
  1039. key <AD03> { [ e, E, EuroSign, cent ] };
  1040. key <AC03> { [ d, D, dstroke, Dstroke ] };
  1041. key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
  1042. key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
  1043. key <AB08> { [ comma, less, U3003, guillemotright ] };
  1044. key <AB09> { [ period, greater, ellipsis, guillemotleft ] };
  1045. include "level3(ralt_switch)"
  1046. };
  1047. // Workman Keyboard Layout symbols for xkb on X.Org Server 7.x
  1048. // 09-06-2010 OJ Bucao. http://www.workmanlayout.com
  1049. partial alphanumeric_keys
  1050. xkb_symbols "workman" {
  1051. include "us(basic)"
  1052. name[Group1]= "English (Workman)";
  1053. key <AD01> { [ q, Q ] };
  1054. key <AD02> { [ d, D ] };
  1055. key <AD03> { [ r, R ] };
  1056. key <AD04> { [ w, W ] };
  1057. key <AD05> { [ b, B ] };
  1058. key <AD06> { [ j, J ] };
  1059. key <AD07> { [ f, F ] };
  1060. key <AD08> { [ u, U ] };
  1061. key <AD09> { [ p, P ] };
  1062. key <AD10> { [ semicolon, colon ] };
  1063. key <AC01> { [ a, A ] };
  1064. key <AC02> { [ s, S ] };
  1065. key <AC03> { [ h, H ] };
  1066. key <AC04> { [ t, T ] };
  1067. key <AC05> { [ g, G ] };
  1068. key <AC06> { [ y, Y ] };
  1069. key <AC07> { [ n, N ] };
  1070. key <AC08> { [ e, E ] };
  1071. key <AC09> { [ o, O ] };
  1072. key <AC10> { [ i, I ] };
  1073. key <AB01> { [ z, Z ] };
  1074. key <AB02> { [ x, X ] };
  1075. key <AB03> { [ m, M ] };
  1076. key <AB04> { [ c, C ] };
  1077. key <AB05> { [ v, V ] };
  1078. key <AB06> { [ k, K ] };
  1079. key <AB07> { [ l, L ] };
  1080. key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };
  1081. include "level3(ralt_switch)"
  1082. };
  1083. partial alphanumeric_keys
  1084. xkb_symbols "workman-intl" {
  1085. include "us(intl)"
  1086. name[Group1]= "English (Workman, intl., with dead keys)";
  1087. key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
  1088. key <AD02> { [ d, D, eth, ETH ] };
  1089. key <AD03> { [ r, R, registered, registered ] };
  1090. key <AD04> { [ w, W, aring, Aring ] };
  1091. key <AD05> { [ b, B, b, B ] };
  1092. key <AD06> { [ j, J, j, J ] };
  1093. key <AD07> { [ f, F, f, F ] };
  1094. key <AD08> { [ u, U, uacute, Uacute ] };
  1095. key <AD09> { [ p, P, odiaeresis, Odiaeresis ] };
  1096. key <AD10> { [ semicolon, colon, paragraph, degree ] };
  1097. key <AC01> { [ a, A, aacute, Aacute ] };
  1098. key <AC02> { [ s, S, ssharp, section ] };
  1099. key <AC03> { [ h, H, h, H ] };
  1100. key <AC04> { [ t, T, thorn, THORN ] };
  1101. key <AC05> { [ g, G, g, G ] };
  1102. key <AC06> { [ y, Y, udiaeresis, Udiaeresis ] };
  1103. key <AC07> { [ n, N, ntilde, Ntilde ] };
  1104. key <AC08> { [ e, E, eacute, Eacute ] };
  1105. key <AC09> { [ o, O, oacute, Oacute ] };
  1106. key <AC10> { [ i, I, iacute, Iacute ] };
  1107. key <AB01> { [ z, Z, ae, AE ] };
  1108. key <AB02> { [ x, X, x, X ] };
  1109. key <AB03> { [ m, M, mu, mu ] };
  1110. key <AB04> { [ c, C, copyright, cent ] };
  1111. key <AB05> { [ v, V, v, V ] };
  1112. key <AB06> { [ k, K, oe, OE ] };
  1113. key <AB07> { [ l, L, oslash, Ooblique ] };
  1114. key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };
  1115. include "level3(ralt_switch)"
  1116. };
  1117. // Norman keyboard layout symbols for xkb on X.Org Server 7.x
  1118. // Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info
  1119. // To the extent possible under law, the author(s) have dedicated all
  1120. // copyright and related and neighboring rights to this software to the
  1121. // public domain worldwide. This software is distributed without any warranty.
  1122. partial alphanumeric_keys
  1123. xkb_symbols "norman" {
  1124. include "us(basic)"
  1125. name[Group1]= "English (Norman)";
  1126. key <AD01> { [ q, Q ] };
  1127. key <AD02> { [ w, W ] };
  1128. key <AD03> { [ d, D ] };
  1129. key <AD04> { [ f, F ] };
  1130. key <AD05> { [ k, K ] };
  1131. key <AD06> { [ j, J ] };
  1132. key <AD07> { [ u, U ] };
  1133. key <AD08> { [ r, R ] };
  1134. key <AD09> { [ l, L ] };
  1135. key <AD10> { [ semicolon, colon ] };
  1136. key <AC01> { [ a, A ] };
  1137. key <AC02> { [ s, S ] };
  1138. key <AC03> { [ e, E ] };
  1139. key <AC04> { [ t, T ] };
  1140. key <AC05> { [ g, G ] };
  1141. key <AC06> { [ y, Y ] };
  1142. key <AC07> { [ n, N ] };
  1143. key <AC08> { [ i, I ] };
  1144. key <AC09> { [ o, O ] };
  1145. key <AC10> { [ h, H ] };
  1146. key <AB01> { [ z, Z ] };
  1147. key <AB02> { [ x, X ] };
  1148. key <AB03> { [ c, C ] };
  1149. key <AB04> { [ v, V ] };
  1150. key <AB05> { [ b, B ] };
  1151. key <AB06> { [ p, P ] };
  1152. key <AB07> { [ m, M ] };
  1153. key <CAPS> { [ BackSpace ] };
  1154. include "level3(ralt_switch)"
  1155. };
  1156. // Carpalx layout created by Martin Krzywinski
  1157. // http://mkweb.bcgsc.ca/carpalx/
  1158. partial alphanumeric_keys
  1159. xkb_symbols "carpalx" {
  1160. name[Group1]= "English (Carpalx)";
  1161. key <TLDE> { [ grave, asciitilde ] };
  1162. key <AE01> { [ 1, exclam ] };
  1163. key <AE02> { [ 2, at ] };
  1164. key <AE03> { [ 3, numbersign ] };
  1165. key <AE04> { [ 4, dollar ] };
  1166. key <AE05> { [ 5, percent ] };
  1167. key <AE06> { [ 6, asciicircum ] };
  1168. key <AE07> { [ 7, ampersand ] };
  1169. key <AE08> { [ 8, asterisk ] };
  1170. key <AE09> { [ 9, parenleft ] };
  1171. key <AE10> { [ 0, parenright ] };
  1172. key <AE11> { [ minus, underscore ] };
  1173. key <AE12> { [ equal, plus ] };
  1174. key <AD01> { [ q, Q ] };
  1175. key <AD02> { [ g, G ] };
  1176. key <AD03> { [ m, M ] };
  1177. key <AD04> { [ l, L ] };
  1178. key <AD05> { [ w, W ] };
  1179. key <AD06> { [ y, Y ] };
  1180. key <AD07> { [ f, F ] };
  1181. key <AD08> { [ u, U ] };
  1182. key <AD09> { [ b, B ] };
  1183. key <AD10> { [ semicolon, colon ] };
  1184. key <AD11> { [ bracketleft, braceleft ] };
  1185. key <AD12> { [ bracketright, braceright ] };
  1186. key <AC01> { [ d, D ] };
  1187. key <AC02> { [ s, S ] };
  1188. key <AC03> { [ t, T ] };
  1189. key <AC04> { [ n, N ] };
  1190. key <AC05> { [ r, R ] };
  1191. key <AC06> { [ i, I ] };
  1192. key <AC07> { [ a, A ] };
  1193. key <AC08> { [ e, E ] };
  1194. key <AC09> { [ o, O ] };
  1195. key <AC10> { [ h, H ] };
  1196. key <AC11> { [ apostrophe, quotedbl ] };
  1197. key <AB01> { [ z, Z ] };
  1198. key <AB02> { [ x, X ] };
  1199. key <AB03> { [ c, C ] };
  1200. key <AB04> { [ v, V ] };
  1201. key <AB05> { [ j, J ] };
  1202. key <AB06> { [ k, K ] };
  1203. key <AB07> { [ p, P ] };
  1204. key <AB08> { [ comma, less ] };
  1205. key <AB09> { [ period, greater ] };
  1206. key <AB10> { [ slash, question ] };
  1207. key <BKSL> { [ backslash, bar ] };
  1208. };
  1209. // Carpalx layout created by Martin Krzywinski
  1210. // http://mkweb.bcgsc.ca/carpalx/
  1211. // Merged with us(intl) and modified to move
  1212. // accented vowels closer to the plain vowels
  1213. partial alphanumeric_keys
  1214. xkb_symbols "carpalx-intl" {
  1215. include "us(carpalx)"
  1216. name[Group1]= "English (Carpalx, intl., with dead keys)";
  1217. key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
  1218. key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
  1219. key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
  1220. key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
  1221. key <AE04> { [ 4, dollar, currency, sterling ] };
  1222. key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
  1223. key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
  1224. key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
  1225. key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
  1226. key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
  1227. key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
  1228. key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
  1229. key <AE12> { [ equal, plus, multiply, division ] };
  1230. key <AD01> { [ q, Q, degree, paragraph ] };
  1231. key <AD02> { [ g, G, U011F, U011E ] };
  1232. key <AD03> { [ m, M, mu, mu ] };
  1233. key <AD04> { [ l, L, copyright, cent ] };
  1234. key <AD05> { [ w, W, w, W ] };
  1235. key <AD06> { [ y, Y, idiaeresis, Idiaeresis ] };
  1236. key <AD07> { [ f, F, adiaeresis, Adiaeresis ] };
  1237. key <AD08> { [ u, U, udiaeresis, Udiaeresis ] };
  1238. key <AD09> { [ b, B, odiaeresis, Odiaeresis ] };
  1239. key <AD10> { [ semicolon, colon, oslash, Ooblique ] };
  1240. key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
  1241. key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };
  1242. key <AC01> { [ d, D, eth, ETH ] };
  1243. key <AC02> { [ s, S, ssharp, section ] };
  1244. key <AC03> { [ t, T, thorn, THORN ] };
  1245. key <AC04> { [ n, N, ntilde, Ntilde ] };
  1246. key <AC05> { [ r, R, registered, registered ] };
  1247. key <AC06> { [ i, I, iacute, Iacute ] };
  1248. key <AC07> { [ a, A, aacute, Aacute ] };
  1249. key <AC08> { [ e, E, eacute, Eacute ] };
  1250. key <AC09> { [ o, O, oacute, Oacute ] };
  1251. key <AC10> { [ h, H, uacute, Uacute ] };
  1252. key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
  1253. key <AB01> { [ z, Z, z, Z ] };
  1254. key <AB02> { [ x, X, U015F, U015E ] };
  1255. key <AB03> { [ c, C, ccedilla, Ccedilla ] };
  1256. key <AB04> { [ v, V, ae, AE ] };
  1257. key <AB05> { [ j, J, oe, OE ] };
  1258. key <AB06> { [ k, K, U0131, U0130 ] };
  1259. key <AB07> { [ p, P, aring, Aring ] };
  1260. key <AB08> { [ comma, less, ediaeresis, Ediaeresis ] };
  1261. key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
  1262. key <AB10> { [ slash, question, questiondown, dead_hook ] };
  1263. key <BKSL> { [ backslash, bar, notsign, brokenbar ] };
  1264. key <LSGT> { [ backslash, bar, backslash, bar ] };
  1265. include "level3(ralt_switch)"
  1266. };
  1267. // Carpalx layout created by Martin Krzywinski
  1268. // http://mkweb.bcgsc.ca/carpalx/
  1269. // Merged with us(intl) and us(altgr-intl) and modified to move
  1270. // accented vowels closer to the plain vowels
  1271. partial alphanumeric_keys
  1272. xkb_symbols "carpalx-altgr-intl" {
  1273. include "us(carpalx-intl)"
  1274. name[Group1]= "English (Carpalx, intl., with AltGr dead keys)";
  1275. // five dead keys moved into level3:
  1276. key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
  1277. key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };
  1278. // diversions from the MS Intl keyboard:
  1279. key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
  1280. // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:
  1281. key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
  1282. key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
  1283. key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };
  1284. include "level3(ralt_switch)"
  1285. };
  1286. // Carpalx layout created by Martin Krzywinski
  1287. // Full optimization variant without fixed QWERTY-like ZXCV keys
  1288. // http://mkweb.bcgsc.ca/carpalx/
  1289. partial alphanumeric_keys
  1290. xkb_symbols "carpalx-full" {
  1291. include "us(carpalx)"
  1292. name[Group1]= "English (Carpalx, full optimization)";
  1293. key <AD06> { [ b, B ] };
  1294. key <AD07> { [ y, Y ] };
  1295. key <AD09> { [ v, V ] };
  1296. key <AB04> { [ f, F ] };
  1297. };
  1298. // Carpalx layout created by Martin Krzywinski
  1299. // Full optimization variant without fixed QWERTY-like ZXCV keys
  1300. // http://mkweb.bcgsc.ca/carpalx/
  1301. // Merged with us(intl) and modified to move
  1302. // accented vowels closer to the plain vowels
  1303. partial alphanumeric_keys
  1304. xkb_symbols "carpalx-full-intl" {
  1305. include "us(carpalx-intl)"
  1306. name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)";
  1307. key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
  1308. key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
  1309. key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };
  1310. key <AB04> { [ f, F, ae, AE ] };
  1311. };
  1312. // Carpalx layout created by Martin Krzywinski
  1313. // Full optimization variant without fixed QWERTY-like ZXCV keys
  1314. // http://mkweb.bcgsc.ca/carpalx/
  1315. // Merged with us(intl) and us(altgr-intl) and modified to move
  1316. // accented vowels closer to the plain vowels
  1317. partial alphanumeric_keys
  1318. xkb_symbols "carpalx-full-altgr-intl" {
  1319. include "us(carpalx-altgr-intl)"
  1320. name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)";
  1321. key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
  1322. key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
  1323. key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };
  1324. key <AB04> { [ f, F, ae, AE ] };
  1325. };
  1326. // EXTRAS:
  1327. // Czech, Slovak and German charecters added as third level symbols to US keyboard layout.
  1328. partial alphanumeric_keys
  1329. xkb_symbols "cz_sk_de" {
  1330. include "us"
  1331. name[Group1]="Czech Slovak and German (US)";
  1332. key <TLDE> { [grave, asciitilde, uring, Uring ] };
  1333. key <AE01> { [ 1, exclam, uacute, Uacute ] };
  1334. key <AE02> { [ 2, at, ecaron, Ecaron ] };
  1335. key <AE03> { [ 3, numbersign, scaron, Scaron ] };
  1336. key <AE04> { [ 4, dollar, ccaron, Ccaron ] };
  1337. key <AE05> { [ 5, percent, rcaron, Rcaron ] };
  1338. key <AE06> { [ 6, asciicircum, zcaron, Zcaron ] };
  1339. key <AE07> { [ 7, ampersand, yacute, Yacute ] };
  1340. key <AE08> { [ 8, asterisk, aacute, Aacute ] };
  1341. key <AE09> { [ 9, parenleft, iacute, Iacute ] };
  1342. key <AE10> { [ 0, parenright, eacute, Eacute ] };
  1343. key <AE11> { [minus, underscore, ssharp, 0x1001E9E ] };
  1344. key <AE12> { [equal, plus, dead_acute, dead_caron ] };
  1345. key <AD03> { [ e, E, EuroSign, Eacute ] };
  1346. key <AD11> { [bracketleft, braceleft, udiaeresis, Udiaeresis ] };
  1347. key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
  1348. key <AC11> { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] };
  1349. key <AC01> { [ a, A, aacute, Aacute ] };
  1350. key <AD08> { [ i, I, iacute, Iacute ] };
  1351. key <AD09> { [ o, O, oacute, Oacute ] };
  1352. key <AD06> { [ y, Y, yacute, Yacute ] };
  1353. key <AD07> { [ u, U, uring, Uring ] };
  1354. key <AC02> { [ s, S, scaron, Scaron ] };
  1355. key <AB01> { [ z, Z, zcaron, Zcaron ] };
  1356. key <AB03> { [ c, C, ccaron, Ccaron ] };
  1357. key <AD04> { [ r, R, rcaron, Rcaron ] };
  1358. key <AD05> { [ t, T, tcaron, Tcaron ] };
  1359. key <AC03> { [ d, D, dcaron, Dcaron ] };
  1360. key <AB06> { [ n, N, ncaron, Ncaron ] };
  1361. key <AC09> { [ l, L, lcaron, Lcaron ] };
  1362. key <AD10> { [ p, P,ocircumflex, Ocircumflex ] };
  1363. key <SPCE> { [ space, space, nobreakspace, nobreakspace] };
  1364. include "level3(ralt_switch)"
  1365. };
  1366. // 03 December 2017 - Added us(scn), please refer to
  1367. // Cadèmia Siciliana <l10n@cademiasiciliana.org>
  1368. partial alphanumeric_keys
  1369. xkb_symbols "scn" {
  1370. include "us(intl)"
  1371. name[Group1]="Sicilian (US keyboard)";
  1372. key <AD03> { [ e, E, U0259, U018F ] };
  1373. key <AC03> { [ d, D, U1E0D, U1E0C ] };
  1374. key <AC04> { [ f, F, U0111, U0110 ] };
  1375. key <AC06> { [ h, H, U1E25, U1E24 ] };
  1376. key <AB02> { [ x, X, U03C7, U03A7 ] };
  1377. key <AB09> { [ period, greater, U1D58, dead_caron ] };
  1378. include "level3(ralt_switch)"
  1379. };
  1380. // XCompose is out! Unicode combining is in! For those of us who live
  1381. // on the edge: A keymap using Unicode combining characters instead of
  1382. // deadkeys. This variation does not deviate from the lame MS-style
  1383. // US-intl layout; but it uses AltGr for combining, like altgr-intl.
  1384. //
  1385. // This might break your font layout layout systems (because they
  1386. // suck), caveat emptor. Also, most of today's software will count
  1387. // individual combining marks for selection, deletion, character
  1388. // counting &c., and won't be smart enough to do canonical equivalence
  1389. // when searching, &c.
  1390. //
  1391. // With Unicode combining you use "handwriting order", not
  1392. // "typewriting order" as with deadkeys. That is, you first type the
  1393. // base character, then the diacritics/accents/modifiers. This has
  1394. // the advantage of avoiding hidden states --- each keypress changes
  1395. // something on screen.
  1396. //
  1397. // TODO: as of now, this duplicates all us(intl) functionality with
  1398. // combining. With care, perhaps we could add more combining marks
  1399. // not present in intl, and support all major languages.
  1400. partial alphanumeric_keys
  1401. xkb_symbols "intl-unicode" {
  1402. name[Group1]= "English (US, intl., AltGr Unicode combining)";
  1403. include "us(intl)"
  1404. include "level3(ralt_switch)"
  1405. // grave, tilde
  1406. key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
  1407. // double acute
  1408. key <AE02> { [ 2, at, twosuperior, U030B ] };
  1409. // macron
  1410. key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
  1411. // circumflex
  1412. key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
  1413. // horn
  1414. key <AE07> { [ 7, ampersand, onehalf, U031B ] };
  1415. // ogonek
  1416. key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
  1417. // breve
  1418. key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
  1419. // abovering
  1420. key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };
  1421. // belowdot
  1422. key <AE11> { [ minus, underscore, yen, U0323 ] };
  1423. // acute, diaeresis
  1424. key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
  1425. // abovedot, caron
  1426. key <AB09> { [ period, greater, U0307, U030C ] };
  1427. // hook
  1428. key <AB10> { [ slash, question, questiondown, U0309 ] };
  1429. // alt-intl compatibility
  1430. // cedilla, caron
  1431. key <AB08> { [ comma, less, U0327, U030C ] };
  1432. // ogonek, diaeresis
  1433. key <AC10> { [ semicolon, colon, U0328, U0308 ] };
  1434. // doubleacute, horn
  1435. key <AE12> { [ equal, plus, U030B, U031B ] };
  1436. // we don't do combining latin letters and combining enclosures
  1437. // because support for those is very rare.
  1438. };
  1439. // XCompose is out! Unicode combining is in! For those of us who live
  1440. // on the edge: A keymap using Unicode combining characters instead of
  1441. // deadkeys. This variation does break compatibility with us-intl,
  1442. // whenever I thought it would be more mnemonic or Unicodeish.
  1443. partial alphanumeric_keys
  1444. xkb_symbols "alt-intl-unicode" {
  1445. name[Group1]= "English (US, intl., AltGr Unicode combining, alt.)";
  1446. include "us(intl-unicode)"
  1447. // easier macron; em-dash.
  1448. // em-dash is available via compose, but I added here since it's such
  1449. // an important typographic character.
  1450. key <AE11> { [ minus, underscore, U0304, U2014 ] };
  1451. // belowdot, abovedot (caron at coma/less key, per above)
  1452. key <AB09> { [ period, greater, U0323, U0307 ] };
  1453. };
  1454. partial alphanumeric_keys
  1455. xkb_symbols "ats" {
  1456. include "us"
  1457. name[Group1]= "Atsina";
  1458. //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
  1459. //q, l, t, s, m, g, k, p, w, y, r
  1460. //XCompose key is used for the other accute and grave.
  1461. key <AD03> { [ e, E, eacute, Eacute ] };
  1462. key <AD07> { [ u, U, uacute, Uacute ] };
  1463. key <AD08> { [ i, I, iacute, Iacute ] };
  1464. key <AD09> { [ o, O, oacute, Oacute ] };
  1465. key <AD11> { [ bracketleft, braceleft, U03B8 ] };
  1466. key <AD12> { [ bracketright, braceright, U010D, U010C ] };
  1467. //U+010C (uppercase Č) and U+010D (lowercase č).
  1468. key <AC01> { [ a, A, aacute, Aacute ] };
  1469. //Small letter Open use compose to key get acute accent
  1470. key <AB03> { [ c, C, U0254, U0186 ] };
  1471. key <AB08> { [ comma, less, U0313 ] };
  1472. key <AB10> { [ slash, question, U0294 ] };
  1473. include "level3(ralt_switch)"
  1474. include "compose(rctrl)"
  1475. };
  1476. partial alphanumeric_keys
  1477. xkb_symbols "crd" {
  1478. include "us"
  1479. name[Group1]= "Coeur d'Alene Salish";
  1480. key <AD02> { [ w, W, U02B7, U02B7 ] };
  1481. key <AE07> { [ 7, ampersand, U0294 ] };
  1482. key <AD01> { [ q, Q, U221A ] };
  1483. key <AB04> { [ v, V, U0259 ] };
  1484. key <BKSL> { [ backslash, bar, U026B ] };
  1485. key <AD03> { [ e, E, U025B ] };
  1486. key <AD08> { [ i, I, U026A ] };
  1487. key <AC07> { [ j, J, U01F0 ] };
  1488. key <AE06> { [ 6, asciicircum, U0295 ] };
  1489. key <AC02> { [ s, S, U0161 ] };
  1490. key <AB03> { [ c, C, U010D ] };
  1491. key <AD09> { [ o, O, U0254 ] };
  1492. key <AB09> { [ period, greater, U0323 ] };
  1493. include "level3(ralt_switch)"
  1494. include "compose(rctrl)"
  1495. };
  1496. partial alphanumeric_keys
  1497. xkb_symbols "sun_type6" {
  1498. include "sun_vndr/us(sun_type6)"
  1499. };
  1500. // Implementation of the 3l keyboard layout
  1501. // See https://github.com/jackrosenthal/threelayout for specification
  1502. partial alphanumeric_keys modifier_keys
  1503. xkb_symbols "3l" {
  1504. name[Group1] = "English (3l)";
  1505. key.type[Group1] = "ONE_LEVEL";
  1506. key <TAB> { [ Escape ] };
  1507. key <CAPS> { [ Tab ] };
  1508. key <AC11> { [ ISO_Level3_Shift ] }; // Sym Modifier
  1509. key <AB10> { [ ISO_Level5_Shift ] }; // Cur/Num Modifier
  1510. // Top row numbers - not part of spec, but given for convenience
  1511. key <AE01> { [ 1 ] };
  1512. key <AE02> { [ 2 ] };
  1513. key <AE03> { [ 3 ] };
  1514. key <AE04> { [ 4 ] };
  1515. key <AE05> { [ 5 ] };
  1516. key <AE06> { [ 6 ] };
  1517. key <AE07> { [ 7 ] };
  1518. key <AE08> { [ 8 ] };
  1519. key <AE09> { [ 9 ] };
  1520. key <AE10> { [ 0 ] };
  1521. // Main keys
  1522. // Order of mods (defined by EIGHT_LEVEL_SEMIALPHABETIC) is:
  1523. // [ None, Shift, Sym, Shift+Sym, Num, Shift+Num, Sym+Num, Shift+Sym+Num ]
  1524. key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
  1525. // Second row
  1526. key <AD01> { [ q, Q, quotedbl, Greek_omicron, Prior, Prior, U21CD, Greek_OMICRON ] };
  1527. key <AD02> { [ f, F, underscore, Greek_phi, BackSpace, BackSpace, U21A4, Greek_PHI ] };
  1528. key <AD03> { [ u, U, bracketleft, Greek_upsilon, Up, Up, U2191, Greek_UPSILON ] };
  1529. key <AD04> { [ y, Y, bracketright, Greek_psi, Delete, Delete, U21A6, Greek_PSI ] };
  1530. key <AD05> { [ z, Z, asciicircum, Greek_zeta, Next, Next, U21CF, Greek_ZETA ] };
  1531. key <AD06> { [ x, X, exclam, Greek_xi, NoSymbol, NoSymbol, U2260, Greek_XI ] };
  1532. key <AD07> { [ k, K, less, Greek_kappa, 1, A, U2A7D, Greek_KAPPA ] };
  1533. key <AD08> { [ c, C, greater, Greek_chi, 2, B, U2A7E, Greek_CHI ] };
  1534. key <AD09> { [ w, W, equal, Greek_omega, 3, C, U2261, Greek_OMEGA ] };
  1535. key <AD10> { [ b, B, ampersand, Greek_beta, NoSymbol, NoSymbol, U2248, Greek_BETA ] };
  1536. // Home row
  1537. key <AC01> { [ o, O, slash, Greek_omega, Home, Home, U21D0, Greek_OMEGA ] };
  1538. key <AC02> { [ h, H, minus, Greek_theta, Left, Left, U2190, Greek_THETA ] };
  1539. key <AC03> { [ e, E, braceleft, Greek_epsilon, Down, Down, U2193, Greek_EPSILON ] };
  1540. key <AC04> { [ a, A, braceright, Greek_alpha, Right, Right, U2192, Greek_ALPHA ] };
  1541. key <AC05> { [ i, I, asterisk, Greek_iota, End, End, U21D2, Greek_IOTA ] };
  1542. key <AC06> { [ d, D, question, Greek_delta, period, colon, U2286, Greek_DELTA ] };
  1543. key <AC07> { [ r, R, parenleft, Greek_rho, 4, D, U2227, Greek_RHO ] };
  1544. key <AC08> { [ t, T, parenright, Greek_tau, 5, E, U2228, Greek_TAU ] };
  1545. key <AC09> { [ n, N, apostrophe, Greek_eta, 6, F, U2200, Greek_ETA ] };
  1546. key <AC10> { [ s, S, colon, Greek_sigma, NoSymbol, NoSymbol, U2203, Greek_SIGMA ] };
  1547. // Bottom row
  1548. key <AB01> { [ comma, comma, numbersign, NoSymbol, slash, NoSymbol, U21AE, NoSymbol ] };
  1549. key <AB02> { [ m, M, dollar, Greek_mu, asterisk, NoSymbol, U2194, Greek_MU ] };
  1550. key <AB03> { [ period, period, bar, NoSymbol, minus, NoSymbol, U21CE, NoSymbol ] };
  1551. key <AB04> { [ j, J, asciitilde, Greek_SIGMA, plus, NoSymbol, U21D4, NoSymbol ] };
  1552. key <AB05> { [ semicolon, semicolon, grave, NoSymbol, comma, NoSymbol, U2282, NoSymbol ] };
  1553. key <AB06> { [ g, G, plus, Greek_gamma, 0, NoSymbol, U2229, Greek_GAMMA ] };
  1554. key <AB07> { [ l, L, percent, Greek_lambda, 7, parenleft, U222A, Greek_LAMBDA ] };
  1555. key <AB08> { [ p, P, backslash, Greek_pi, 8, parenright, U2208, Greek_PI ] };
  1556. key <AB09> { [ v, V, at, Greek_nu, 9, NoSymbol, U2209, Greek_NU ] };
  1557. include "level5(modifier_mapping)"
  1558. };
  1559. // Chromebooks typically have the key which is normally in the caps
  1560. // lock position mapped to keycode 133 (LWIN). For 3l, it is critical
  1561. // that the key in this positon correspond to tab, so there is a
  1562. // variant available for chromebook hardware.
  1563. partial modifier_keys
  1564. xkb_symbols "3l-cros" {
  1565. include "us(3l)"
  1566. name[Group1] = "English (3l, Chromebook)";
  1567. key <LWIN> {
  1568. type[Group1] = "ONE_LEVEL",
  1569. symbols[Group1] = [ Tab ]
  1570. };
  1571. };
  1572. // A 3l variant for emacs users, which maps control to caps lock and (re)maps
  1573. // tab back to tab.
  1574. partial modifier_keys
  1575. xkb_symbols "3l-emacs" {
  1576. include "us(3l)"
  1577. name[Group1] = "English (3l, emacs)";
  1578. key <TAB> { [ Tab ] };
  1579. key <CAPS> { [ Control_L ] };
  1580. modifier_map Control { <CAPS> };
  1581. };
  1582. // Drix EU Latin - version 3.1 (2019-10-07)
  1583. // Author: Jerome Leclanche <jerome@leclan.ch>
  1584. // Latin layout based on classic US qwerty, with azerty-style second-row m key.
  1585. // Features:
  1586. // - Programmer-centric punctuation keys (All common symbols on right hand except < and > on left)
  1587. // - Most common dead accents on altgr-shift number row
  1588. // - Unicode arrows on Altgr+shift+WASD
  1589. // - Some commonly used special characters available:
  1590. // - Most common european special characters
  1591. // - Misc currency symbols, copyright/registered/trademark symbols
  1592. // - Common math symbols + some common greek letters
  1593. // - Compose key replaces Mod5
  1594. //
  1595. // This layout is in the Public Domain.
  1596. //
  1597. // ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
  1598. // │ ~ ~ │ " ´ │ ' ` │ ^ ^ │ ` ¨ │ ´ ° │ 6 ¯ │ 7 ¸ │ 8 ˛ │ 9 ˇ │ | ˝ │ _ ± │ = ≠ ┃Backspace┃
  1599. // │ @ £ │ 1 ¹ │ 2 ² │ 3 ³ │ 4 ⁴ │ 5 ⁵ │ 6 ⁶ │ 7 ⁷ │ 8 ⁸ │ 9 ⁹ │ 0 ⁰ │ - " │ + ' ┃ ⌫ ┃
  1600. // ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
  1601. // ┃Tab ┃ Q Ø │ W ↑ │ E € │ R ₽ │ T τ │ Y ¥ │ U U │ I ’ │ O Ω │ P ₱ │ [ « │ ] » ┃ ⏎ ┃
  1602. // ┃ ↹ ┃ q ø │ w w │ e € │ r ® │ t ™ │ y ¥ │ u u │ i ‘ │ o œ │ p π │ ( { │ ) } ┃ Enter ┃
  1603. // ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃
  1604. // ┃Caps ┃ A ← │ S ↓ │ D → │ F Ƒ │ G G │ H H │ J ” │ K „ │ L λ │ M M │ % ‰ │ & × ┃ ┃
  1605. // ┃Lock ⇬ ┃ a æ │ s ß │ d Δ │ f ƒ │ g g │ h h │ j “ │ k ‚ │ l £ │ m µ │ # ~ │ * $ ┃ ┃
  1606. // ┣━━━━━━┳━┹───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┬─┴───┲━┷━━━━━┻━━━━━━┫
  1607. // ┃Shift ┃ > ≥ │ Z ¶ │ X ÷ │ C ¢ │ V V │ B ₿ │ N N │ ? ¿ │ , · │ ; ´ │ \ ¦ ┃Shift ┃
  1608. // ┃ ⇧ ┃ < ≤ │ z § │ x × │ c © │ v ♀ │ b ♂ │ n ⚥ │ ! ¡ │ . … │ : ` │ / | ┃ ⇧ ┃
  1609. // ┣━━━━━━┻┳━━━━┷━━┳━━┷━━━━┱┴─────┴─────┴─────┴─────┴─────┴────┲┷━━━━━╈━━━━━┻┳━━━━━━┳━━━━━━┫
  1610. // ┃Ctrl ┃ Fn ┃Alt ┃ ␣ Space Nobreakspace ⍽ ┃AltGr ┃Multi ┃ Ctxt ┃ Ctrl ┃
  1611. // ┃ ┃ ┃ ┃ ␣ Space Nobreakspace ⍽ ┃ ┃ ┃ Menu ┃ ┃
  1612. // ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━┻━━━━━━┻━━━━━━┻━━━━━━┛
  1613. partial alphanumeric_keys modifier_keys
  1614. xkb_symbols "drix" {
  1615. name[Group1] = "English (Drix)";
  1616. // First row
  1617. key <TLDE> {[ at, asciitilde, sterling, dead_tilde ]}; // @ ~ £ ~
  1618. key <AE01> {[ 1, quotedbl, onesuperior, dead_grave ]}; // 1 " ¹ `
  1619. key <AE02> {[ 2, apostrophe, twosuperior, dead_acute ]}; // 2 ' ² ´
  1620. key <AE03> {[ 3, asciicircum, threesuperior, dead_circumflex ]}; // 3 ^ ³ ^
  1621. key <AE04> {[ 4, grave, foursuperior, dead_diaeresis ]}; // 4 4 ⁴ ¨
  1622. key <AE05> {[ 5, degree, fivesuperior, dead_abovering ]}; // 5 ° ⁵ °
  1623. key <AE06> {[ 6, 6, sixsuperior, dead_macron ]}; // 6 6 ⁶ ¯
  1624. key <AE07> {[ 7, 7, sevensuperior, dead_cedilla ]}; // 7 7 ⁷ ¸
  1625. key <AE08> {[ 8, 8, eightsuperior, dead_ogonek ]}; // 8 8 ⁸ ˛
  1626. key <AE09> {[ 9, 9, ninesuperior, dead_caron ]}; // 9 9 ⁹ ˇ
  1627. key <AE10> {[ 0, bar, zerosuperior, dead_doubleacute ]}; // 0 | ⁰ ˝
  1628. key <AE11> {[ minus, underscore, quotedbl, plusminus ]}; // - _ " ±
  1629. key <AE12> {[ plus, equal, apostrophe, notequal ]}; // + = ' ≠
  1630. // Second row
  1631. key <AD01> {[ q, Q, oslash, Ooblique ]}; // q Q ø Ø
  1632. key <AD02> {[ w, W, w, uparrow ]}; // w W w ↑
  1633. key <AD03> {[ e, E, EuroSign, EuroS ]}; // e E € €
  1634. key <AD04> {[ r, R, registered, 0x10020bd ]}; // r R ® ₽
  1635. key <AD05> {[ t, T, trademark, Greek_tau ]}; // t T ™ τ
  1636. key <AD06> {[ y, Y, yen, yen ]}; // y Y ¥ ¥
  1637. key <AD07> {[ u, U, u, U ]}; // u U u U
  1638. key <AD08> {[ i, I, leftsinglequotemark, rightsinglequotemark ]}; // i I ‘ ’
  1639. key <AD09> {[ o, O, oe, Greek_OMEGA ]}; // o O œ Ω
  1640. key <AD10> {[ p, P, Greek_pi, 0x10020b1 ]}; // p P π ₱
  1641. key <AD11> {[ parenleft, bracketleft, braceleft, guillemotleft ]}; // ( [ { «
  1642. key <AD12> {[ parenright, bracketright, braceright, guillemotright ]}; // ) ] } »
  1643. // Third row
  1644. key <AC01> {[ a, A, ae, leftarrow ]}; // a A æ ←
  1645. key <AC02> {[ s, S, ssharp, downarrow ]}; // s S ß ↓
  1646. key <AC03> {[ d, D, Greek_DELTA, rightarrow ]}; // d D Δ →
  1647. key <AC04> {[ f, F, 0x1000192, 0x1000191 ]}; // f F ƒ Ƒ
  1648. key <AC05> {[ g, G, g, G ]}; // g G g G
  1649. key <AC06> {[ h, H, h, H ]}; // h H h H
  1650. key <AC07> {[ j, J, leftdoublequotemark, rightdoublequotemark ]}; // j J “ ”
  1651. key <AC08> {[ k, K, singlelowquotemark, doublelowquotemark ]}; // k K ‚ „
  1652. key <AC09> {[ l, L, sterling, Greek_lambda ]}; // l L £ λ
  1653. key <AC10> {[ m, M, mu, M ]}; // m M µ M
  1654. key <AC11> {[ numbersign, percent, asciitilde, 0x1002030 ]}; // # % ~ ‰
  1655. // Fourth row
  1656. key <LSGT> {[ less, greater, lessthanequal, greaterthanequal ]}; // < > ≤ ≥
  1657. key <AB01> {[ z, Z, section, paragraph ]}; // z Z § ¶
  1658. key <AB02> {[ x, X, multiply, division ]}; // x X × ÷
  1659. key <AB03> {[ c, C, copyright, cent ]}; // c C © ¢
  1660. key <AB04> {[ v, V, 0x1002640, V ]}; // v V ♀ V
  1661. key <AB05> {[ b, B, 0x1002642, 0x10020bf ]}; // b B ♂ ₿
  1662. key <AB06> {[ n, N, 0x10026a5, N ]}; // n N ⚥ N
  1663. key <AB07> {[ exclam, question, exclamdown, questiondown ]}; // ! ? ¡ ¿
  1664. key <AB08> {[ period, comma, 0x1002026, periodcentered ]}; // . , … ·
  1665. key <AB09> {[ colon, semicolon, grave, acute ]}; // : ; ` ´
  1666. key <AB10> {[ slash, backslash, bar, brokenbar ]}; // / \ | ¦
  1667. // Next to the enter key
  1668. key <BKSL> {[ asterisk, ampersand, dollar, multiply ]}; // * & $ ×
  1669. // Rebind right Super (windows key) into a Compose key
  1670. key <RWIN> {[ Multi_key ]};
  1671. // Implement AltGr and AltGr+Shift
  1672. // For some reason, include "level3(ralt_switch)" doesn't do the trick.
  1673. key <RALT> {
  1674. type[Group1]="TWO_LEVEL",
  1675. [ ISO_Level3_Shift, Multi_key ]
  1676. };
  1677. };
  1678. // German and Swedish characters added as third level symbols to the US keyboard layout
  1679. // Author: Stephan Lachnit <stephanlachnit@protonmail.com>, 2019
  1680. // the german umlauts are placed over the characters without diaeresis, the sharp-s over the s
  1681. // the swedish ao is placed over the p, since it's closed to the position on a swedish keyboard
  1682. // the euro sign is placed over the e, as it is usual for german and swedish keyboards
  1683. partial alphanumeric_keys
  1684. xkb_symbols "de_se_fi" {
  1685. include "us(basic)"
  1686. include "eurosign(e)"
  1687. name[Group1] = "German, Swedish and Finnish (US)";
  1688. key <AC01> {[ a, A, adiaeresis, Adiaeresis ]};
  1689. key <AD09> {[ o, O, odiaeresis, Odiaeresis ]};
  1690. key <AC02> {[ s, S, ssharp, U1E9E ]};
  1691. key <AD07> {[ u, U, udiaeresis, Udiaeresis ]};
  1692. key <AD10> {[ p, P, aring, Aring ]};
  1693. include "level3(ralt_switch)"
  1694. };