logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

us (117295B)


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