Last active
December 11, 2015 09:38
-
-
Save pablox-cl/4581290 to your computer and use it in GitHub Desktop.
Colemak Edition Dreymar Special Symbols
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// $XKeyboardConfig$ | |
// ***************************************************************************************** | |
// ****** ****** | |
// ***** Colemak layouts - additions, locales and learning steps as variants ***** | |
// ***** by Øystein Bech "DreymaR" Gadmar, 2011 ***** | |
// ****** ****** | |
// ***************************************************************************************** | |
default | |
// Colemak symbols for xkb on X.Org Server 7.x | |
// 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain. | |
partial alphanumeric_keys | |
xkb_symbols "cmk_standard" { | |
include "us" | |
name[Group1]= "English (Colemak)"; | |
// Alphanumeric section | |
key <TLDE> { [ grave, asciitilde, dead_tilde, asciitilde ] }; | |
key <AE01> { [ 1, exclam, exclamdown, onesuperior ] }; | |
key <AE02> { [ 2, at, masculine, twosuperior ] }; | |
key <AE03> { [ 3, numbersign, ordfeminine, threesuperior ] }; | |
key <AE04> { [ 4, dollar, cent, sterling ] }; | |
key <AE05> { [ 5, percent, EuroSign, yen ] }; | |
key <AE06> { [ 6, asciicircum, hstroke, Hstroke ] }; | |
key <AE07> { [ 7, ampersand, eth, ETH ] }; | |
key <AE08> { [ 8, asterisk, thorn, THORN ] }; | |
key <AE09> { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; | |
key <AE10> { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; | |
key <AE11> { [ minus, underscore, endash, emdash ] }; | |
key <AE12> { [ equal, plus, multiply, division ] }; | |
key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] }; | |
key <AD02> { [ w, W, aring, Aring ] }; | |
key <AD03> { [ f, F, atilde, Atilde ] }; | |
key <AD04> { [ p, P, oslash, Ooblique ] }; | |
key <AD05> { [ g, G, dead_ogonek, asciitilde ] }; | |
key <AD06> { [ j, J, dstroke, Dstroke ] }; | |
key <AD07> { [ l, L, lstroke, Lstroke ] }; | |
key <AD08> { [ u, U, uacute, Uacute ] }; | |
key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] }; | |
key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] }; | |
key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; | |
key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] }; | |
key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] }; | |
key <AC01> { [ a, A, aacute, Aacute ] }; | |
key <AC02> { [ r, R, dead_grave, asciitilde ] }; | |
key <AC03> { [ s, S, ssharp, asciitilde ] }; | |
key <AC04> { [ t, T, dead_acute, dead_doubleacute ] }; | |
key <AC05> { [ d, D, dead_diaeresis, asciitilde ] }; | |
key <AC06> { [ h, H, dead_caron, asciitilde ] }; | |
key <AC07> { [ n, N, ntilde, Ntilde ] }; | |
key <AC08> { [ e, E, eacute, Eacute ] }; | |
key <AC09> { [ i, I, iacute, Iacute ] }; | |
key <AC10> { [ o, O, oacute, Oacute ] }; | |
key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] }; | |
key <AB01> { [ z, Z, ae, AE ] }; | |
key <AB02> { [ x, X, dead_circumflex, asciitilde ] }; | |
key <AB03> { [ c, C, ccedilla, Ccedilla ] }; | |
key <AB04> { [ v, V, oe, OE ] }; | |
key <AB05> { [ b, B, dead_breve, asciitilde ] }; | |
key <AB06> { [ k, K, dead_abovering, asciitilde ] }; | |
key <AB07> { [ m, M, dead_macron, asciitilde ] }; | |
key <AB08> { [ comma, less, dead_cedilla, asciitilde ] }; | |
key <AB09> { [ period, greater, dead_abovedot, asciitilde ] }; | |
key <AB10> { [ slash, question, questiondown, asciitilde ] }; | |
key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; | |
key <LSGT> { [ minus, underscore, endash, emdash ] }; | |
key <SPCE> { [ space, space, space, nobreakspace ] }; | |
include "level3(ralt_switch)" | |
}; | |
// ***************************************************************************************** | |
// ****** ****** | |
// ***** START of DreymaR's Colemak additions (Cmk[eD], Tarmak1-4, National var.) ***** | |
// ****** ****** | |
// ***************************************************************************************** | |
// ****************************************************** | |
// ***** DreymaR: Colemak - edition DreymaR ***** | |
// ****************************************************** | |
// 'Colemak - edition DreymaR' symbols for xkb on X.Org Server 7.x | |
// Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain. | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: New shift levels 3-4. | |
// NOTE: DreymaR's design goals for tweaking the standard Colemak: | |
// - Keeping level 1-2 of Colemak intact! This is what I think of as the Colemak layout per se. | |
// - Dead keys easily accessible as unshifted AltGr+symbol keys; common ones in good positions. | |
// - Added symbols/glyphs similar to, e.g., Mac ones - allowing common math/tech/etc typing. | |
// - Added letters/quotes allowing many of the major latin scripts to be written correctly. | |
// - The positions of added letters and symbols should as far as possible be easy to remember! | |
// - A modular system allows flexible layout definition using different modifier keys and symbols | |
// * The symbol keys including the number row may be kept unchanged (national variant setups) | |
// * Since Colemak moves the semicolon key it has to go in the letter block though. | |
// - The brackets (lvl3-4) and the LSGT key may hold the most common locale-specific keys. | |
// * The oe/aring special letters may well be replaced; these should also be on dead keys. | |
// * Furthermore, keys with non-essential mappings (like h/j/k/l) are up for grabs if need be. | |
// * See the colemak_template symbols file for more info on local Colemak[eD] variants. | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed" { | |
include "colemak(cmk_ed_letters)" | |
include "colemak(cmk_ed_symbols)" | |
include "level3(ralt_switch)" | |
name[Group1]= "English/Intl (Colemak, edition DreymaR)"; | |
}; | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_letters" { | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD01> { [ q, Q, singlelowquotemark, doublelowquotemark ] }; | |
key <AD02> { [ w, W, leftsinglequotemark, leftdoublequotemark ] }; | |
key <AD03> { [ f, F,rightsinglequotemark,rightdoublequotemark ] }; | |
key <AD04> { [ p, P, Greek_pi, paragraph ] }; | |
key <AD05> { [ g, G, eng, ENG ] }; | |
key <AD06> { [ j, J, 0x100026A, 0x100028F ] }; | |
key <AD07> { [ l, L, schwa, 0x100025C ] }; | |
key <AD08> { [ u, U, 0x1002039, guillemotleft ] }; | |
key <AD09> { [ y, Y, 0x100203A, guillemotright ] }; | |
key <AD10> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
// U2039/203A single guillemets; U026A/028F SmCap-I/Y; U025C turned open e | |
key <AC01> { [ a, A, ae, AE ] }; | |
key <AC02> { [ r, R, registered, trademark ] }; | |
key <AC03> { [ s, S, ssharp, section ] }; | |
key <AC04> { [ t, T, thorn, THORN ] }; | |
key <AC05> { [ d, D, eth, ETH ] }; | |
key <AC06> { [ h, H, 0x1000283, 0x10001A9 ] }; | |
key <AC07> { [ n, N, endash, leftarrow ] }; | |
key <AC08> { [ e, E, downarrow, uparrow ] }; | |
key <AC09> { [ i, I, emdash, rightarrow ] }; | |
key <AC10> { [ o, O, masculine, ordfeminine ] }; | |
// U0283/01A9 esh/ESH | |
key <AB01> { [ z, Z, 0x1000292, 0x10001B7 ] }; | |
key <AB02> { [ x, X, dagger, doubledagger ] }; | |
key <AB03> { [ c, C, copyright, cent ] }; | |
key <AB04> { [ v, V, 0x100028A, division ] }; | |
key <AB05> { [ b, B, Greek_beta, enfilledcircbullet ] }; | |
key <AB06> { [ k, K, 0x1000251, 0x100027E ] }; | |
key <AB07> { [ m, M, mu, multiply ] }; | |
// U0292/01B7 ezh/EZH; U0251 script-a; U028A lat-upsilon; U027E r-flap | |
}; | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_symbols" { | |
// Alphanumeric section (number/symbol keys) | |
key <TLDE> { [ grave, asciitilde, dead_tilde, 0x1002248 ] }; | |
key <AE01> { [ 1, exclam, dead_belowdot, exclamdown ] }; | |
key <AE02> { [ 2, at, dead_hook, integral ] }; | |
key <AE03> { [ 3, numbersign, dead_horn, sterling ] }; | |
key <AE04> { [ 4, dollar, yen, currency ] }; | |
key <AE05> { [ 5, percent, EuroSign, 0x1002030 ] }; | |
key <AE06> { [ 6, asciicircum, dead_circumflex, partialderivative ] }; | |
key <AE07> { [ 7, ampersand, dead_caron, notsign ] }; | |
key <AE08> { [ 8, asterisk, dead_ogonek, infinity ] }; | |
key <AE09> { [ 9, parenleft, dead_breve, periodcentered ] }; | |
key <AE10> { [ 0, parenright, dead_abovering, degree ] }; | |
key <AE11> { [ minus, underscore, dead_macron, plusminus ] }; | |
key <AE12> { [ equal, plus, dead_doubleacute, notequal ] }; | |
// U2248 approx equal; U2030 per mille | |
key <AD11> { [ bracketleft, braceleft, aring, Aring ] }; | |
key <AD12> { [ bracketright, braceright, Greek_theta, Greek_gamma ] }; | |
// | |
key <AC11> { [ apostrophe, quotedbl, dead_acute, 0x1000294 ] }; | |
key <BKSL> { [ backslash, bar, dead_grave, brokenbar ] }; | |
// U0294 glottal stop | |
key <LSGT> { [ oe, OE, oslash, Ooblique ] }; | |
key <AB08> { [ comma, less, dead_cedilla, lessthanequal ] }; | |
key <AB09> { [ period, greater, dead_abovedot, greaterthanequal ] }; | |
key <AB10> { [ slash, question, dead_stroke, questiondown ] }; | |
// | |
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | |
// NOTE: In Linux, the CapsLock may be tweaked in the Keyboard settings; freedom of choice etc. | |
// key <CAPS> { [ BackSpace, BackSpace, Caps_Lock, Caps_Lock ] }; | |
}; | |
// NOTE: | |
// - Missing: U017F long s; chevrons; horizconnector; wynn/yogh; some African | |
// (d-tail; turned Cc/Ee++; latin epsilon/gamma (Berber); italic v) | |
// - Oddly placed?: 'integral'/'notsign'/'division' (placed by shape/association)? IPA. | |
// - Rare/dropped: U25CA lozenge (Mac; rare); kra (deprecated Inuktitut & IPA); function (use hook-f); | |
// numerosign (mostly Cyrillic; use N + masc.); squareroot (unworkable); U1E9E Capital German SS; | |
// U2033/U2032 double-/prime (cheat w/ acute/doubleacute instead?!) | |
// U2639/U263A/U27E8/27E9 sadface/smilingface/brackets (poorly implemented) | |
// TODO: Compose/deadkeys: ligatures (fi/fl/ij); fractions/superior/subscripts; latin/IPA/currencies | |
// Currency: U2044 solidus/shilling; | |
// IPA/Latin: U026A/028F SmCap-I/Y; U0251/0252 script-a/turned-script-a; U028A lat-upsilon; U0283 esh | |
// TODO: Make dead_stroke (for d/g/h/l/i/u) work!? Missing in compose files? | |
// Also, l-tilde, s/c/j/z/schwa hook? | |
// TODO: Unused dead_keys (could enhance them like Colemak user 'ghen' suggests, for keys 3/4/5?): | |
// iota, voiced_sound, semivoiced_sound | |
// TODO: A dead_greek key? (Groups are better?) Latin/IPA/currency? (Upside-down!) Maths/science? | |
// TODO: Add superior/subscript # to dead_acute/grave; fractions to slash/stroke!? Fix dead_stroke! | |
// NB: This happens in the compose files under X11/locale, of which there are legion. :( | |
// Can one get away with changing only the various iso8859-# ones? Possibly en_US.UTF-8 too? | |
// Since this lies outside my patched folder, I might just post the code and where to paste it? | |
// TODO: When the lv3-4 eD mappings are stable, update the Tarmak and Mirrored layouts accordingly! | |
// TODO: Add Greek, Kyrillic and Hebrew Colemak layouts!? (Nice for your Group 'switch' layout!) | |
// TODO: Add ENGLISH (broad) IPA instead of the stunted Greek earlier! | |
// TODO: How about that dead_turned? - could above- or belowdot be augmented? ;) | |
// They may be too busy, in which case maybe dead_abovering and dead_doubleacute are options? | |
// Abovering looks like it "turns"; doubleacute might be OK for currency/symbols? Or reversed?! | |
// Make sure dead_hook has rhotic hooks for schwa and turned epsilon! | |
// Similarly with smallcap letters and their turned counterparts? | |
// ****************************************************** | |
// ***** DreymaR: Tarmak - Transitional Colemak ***** | |
// ****************************************************** | |
// Tarmak symbols for xkb on X.Org Server 7.x | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: Paving the way; 'Tarmak (transitional Colemak)'. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// This section defines the differences between a full Colemak[eD] and a Tarmak layout step. | |
partial alphanumeric_keys | |
xkb_symbols "tarmak1_e" { | |
name[Group1]= "English/Intl (Tarmak1_E - Colemak transitional)"; | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD03> { [ j, J, 0x100026A, 0x100028F ] }; | |
key <AD04> { [ r, R, registered, trademark ] }; | |
key <AD05> { [ t, T, thorn, THORN ] }; | |
key <AD06> { [ y, Y, 0x100203A, guillemotright ] }; | |
key <AD07> { [ u, U, 0x1002039, guillemotleft ] }; | |
key <AC08> { [ i, I, emdash, rightarrow ] }; | |
key <AC09> { [ o, O, masculine, ordfeminine ] }; | |
key <AD10> { [ p, P, Greek_pi, paragraph ] }; | |
// | |
key <AC02> { [ s, S, ssharp, section ] }; | |
key <AC03> { [ d, D, eth, ETH ] }; | |
key <AC04> { [ f, F,rightsinglequotemark,rightdoublequotemark ] }; | |
key <AC05> { [ g, G, eng, ENG ] }; | |
key <AC09> { [ l, L, schwa, 0x100025C ] }; | |
key <AC10> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
}; | |
// Tarmak symbols for xkb on X.Org Server 7.x | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: Paving the way; 'Tarmak (transitional Colemak)'. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// This section defines the differences between a full Colemak[eD] and a Tarmak layout step. | |
partial alphanumeric_keys | |
xkb_symbols "tarmak2_et" { | |
name[Group1]= "English/Intl (Tarmak2_ET - Colemak transitional)"; | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD04> { [ r, R, registered, trademark ] }; | |
key <AD06> { [ y, Y, 0x100203A, guillemotright ] }; | |
key <AD07> { [ u, U, 0x1002039, guillemotleft ] }; | |
key <AC08> { [ i, I, emdash, rightarrow ] }; | |
key <AC09> { [ o, O, masculine, ordfeminine ] }; | |
key <AD10> { [ p, P, Greek_pi, paragraph ] }; | |
// | |
key <AC02> { [ s, S, ssharp, section ] }; | |
key <AC03> { [ d, D, eth, ETH ] }; | |
key <AC05> { [ j, J, 0x100026A, 0x100028F ] }; | |
key <AC09> { [ l, L, schwa, 0x100025C ] }; | |
key <AC10> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
}; | |
// Tarmak symbols for xkb on X.Org Server 7.x | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: Paving the way; 'Tarmak (transitional Colemak)'. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// This section defines the differences between a full Colemak[eD] and a Tarmak layout step. | |
partial alphanumeric_keys | |
xkb_symbols "tarmak3_eto" { | |
name[Group1]= "English/Intl (Tarmak3_ETO - Colemak transitional)"; | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD04> { [ r, R, registered, trademark ] }; | |
key <AD07> { [ u, U, 0x1002039, guillemotleft ] }; | |
key <AC08> { [ i, I, emdash, rightarrow ] }; | |
key <AD10> { [ p, P, Greek_pi, paragraph ] }; | |
// | |
key <AC02> { [ s, S, ssharp, section ] }; | |
key <AC03> { [ d, D, eth, ETH ] }; | |
key <AC05> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
key <AC09> { [ l, L, schwa, 0x100025C ] }; | |
}; | |
// Tarmak symbols for xkb on X.Org Server 7.x | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: Paving the way; 'Tarmak (transitional Colemak)'. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// This section defines the differences between a full Colemak[eD] and a Tarmak layout step. | |
partial alphanumeric_keys | |
xkb_symbols "tarmak4_etoi" { | |
name[Group1]= "English/Intl (Tarmak4_ETOI - Colemak transitional)"; | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD04> { [ r, R, registered, trademark ] }; | |
key <AD10> { [ p, P, Greek_pi, paragraph ] }; | |
// | |
key <AC02> { [ s, S, ssharp, section ] }; | |
key <AC03> { [ d, D, eth, ETH ] }; | |
key <AC05> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
}; | |
// ****************************************************** | |
// ***** DreymaR: Mirrored Colemak (Symbols) ***** | |
// ****************************************************** | |
// Mirrored Colemak[eD] symbols for xkb on X.Org Server 7.x | |
// 2012-03-01 Øystein Bech "DreymaR" Gadmar: Mirrored Colemak layouts for single-handed typing. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// NOTE: Some adventurous souls might want to try the mirrored Colemak as a main layout? | |
// (They say it's more similar to Dvorak that way.) However, it's meant for one-handed typing. | |
// To use it as a standalone layout, you'll want to take out the remapping of special keys. | |
// Ideally, mirrored keyboarding ought to be done in the keyboard setup (Keylayout) component. | |
// That way it'd be independent on the chosen symbols layout, like my Angle/Wide mods. | |
// However, single-handed typing requires the use of a chooser key (like with the Extend mod). | |
// This is ttbomk currently only supported by the Symbols xkb component. | |
// Within this limitation, looks like an Overlay should be the best option? | |
// However (again!), ttbomk this isn't all that well implemented in xkb? | |
// Using a Group setup, just add the mirrored Colemak[eD] as your next layout (usually Group 2). | |
// Then you may choose between a slew of "key(s) to change layout (while pressed)" options! | |
// This does compromise your group options a bit (if you need to use non-latin layouts etc). | |
// If that bothers you, consider using both 'next' and 'last' layout groups with chooser keys. | |
// See for instance the Canadian(Multilingual) layout for an example; they choose with RCtrl. | |
// NOTE: This is made for the AWide-Slash (Wide35) keyboard mod (for bracket key access etc). | |
// Using it with another keyboard will be messy! I couldn't separate mirroring from the rest. | |
// The backslash is provided both on the <LSGT> key and on <ESC> (for ANSI keyboards). | |
// Included are pre-made options for RAlt and LAlt choosing. Use either one or set a key yourself. | |
// The below implementations are silly since they show how to choose AWAY the cmk_ed_mirror! | |
// Use Ubuntu: 'Keyboard Layout'->'Options'->'key(s) to change layout (while pressed)'. | |
// Using the group(switch) map, the right alt key temporarily chooses next group until released. | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_mirror_ralt" { | |
include "colemak(cmk_ed_mirror)" | |
include "group(switch)" //group(lswitch) for LAlt | |
name[Group1]= "English/Intl (Colemak mirrored, edition DreymaR, RAlt escapes)"; | |
}; | |
partial | |
xkb_symbols "cmk_ed_mirror" { | |
include "colemak(cmk_ed_mirror_letters)" | |
include "colemak(cmk_ed_mirror_symbols)" | |
include "colemak(cmk_ed_mirror_special)" | |
name[Group1] = "English/Intl (Colemak[eD], mirrored)"; | |
}; | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_mirror_letters" { | |
// Alphanumeric section (letter keys and semicolon) | |
key <AD10> { [ q, Q, singlelowquotemark, doublelowquotemark ] }; | |
key <AD09> { [ w, W, leftsinglequotemark, leftdoublequotemark ] }; | |
key <AD08> { [ f, F,rightsinglequotemark,rightdoublequotemark ] }; | |
key <AD07> { [ p, P, Greek_pi, paragraph ] }; | |
key <AD06> { [ g, G, eng, ENG ] }; | |
key <AD05> { [ j, J, 0x100026A, 0x100028F ] }; | |
key <AD04> { [ l, L, schwa, 0x100025C ] }; | |
key <AD03> { [ u, U, 0x1002039, guillemotleft ] }; | |
key <AD02> { [ y, Y, 0x100203A, guillemotright ] }; | |
key <AD01> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; | |
key <AC10> { [ a, A, ae, AE ] }; | |
key <AC09> { [ r, R, registered, trademark ] }; | |
key <AC08> { [ s, S, ssharp, section ] }; | |
key <AC07> { [ t, T, thorn, THORN ] }; | |
key <AC06> { [ d, D, eth, ETH ] }; | |
key <AC05> { [ h, H, 0x1000283, 0x10001A9 ] }; | |
key <AC04> { [ n, N, endash, leftarrow ] }; | |
key <AC03> { [ e, E, downarrow, uparrow ] }; | |
key <AC02> { [ i, I, emdash, rightarrow ] }; | |
key <AC01> { [ o, O, masculine, ordfeminine ] }; | |
key <AB10> { [ z, Z, 0x1000292, 0x10001B7 ] }; | |
key <AB09> { [ x, X, dagger, doubledagger ] }; | |
key <AB08> { [ c, C, copyright, cent ] }; | |
key <AB07> { [ v, V, 0x100028A, division ] }; | |
key <AB06> { [ b, B, Greek_beta, enfilledcircbullet ] }; | |
key <AB05> { [ k, K, 0x1000251, 0x100027E ] }; | |
key <AB04> { [ m, M, mu, multiply ] }; | |
}; | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_mirror_symbols" { | |
// Alphanumeric section (number/symbol keys) | |
// TODO: Make the <BSKP> 4-level for this mod; others? | |
key <BKSP> { [ grave, asciitilde, dead_tilde, 0x1002248 ] }; | |
key <AE12> { [ equal, plus, dead_doubleacute, notequal ] }; | |
key <AE11> { [ 1, exclam, dead_belowdot, exclamdown ] }; | |
key <AE10> { [ 2, at, dead_hook, integral ] }; | |
key <AE09> { [ 3, numbersign, dead_horn, sterling ] }; | |
key <AE08> { [ 4, dollar, yen, currency ] }; | |
key <AE07> { [ 5, percent, EuroSign, 0x1002030 ] }; | |
key <AE06> { [ 6, asciicircum, dead_circumflex, partialderivative ] }; | |
key <AE05> { [ 7, ampersand, dead_caron, notsign ] }; | |
key <AE04> { [ 8, asterisk, dead_ogonek, infinity ] }; | |
key <AE03> { [ 9, parenleft, dead_breve, periodcentered ] }; | |
key <AE02> { [ 0, parenright, dead_abovering, degree ] }; | |
key <AE01> { [ minus, underscore, dead_macron, plusminus ] }; | |
// key <AD11> { [ bracketleft, braceleft, aring, Aring ] }; | |
// key <AD12> { [ bracketright, braceright, Greek_theta, Greek_gamma ] }; | |
key <AB03> { [ comma, less, dead_cedilla, lessthanequal ] }; | |
key <AB02> { [ period, greater, dead_abovedot, greaterthanequal ] }; | |
key <AB01> { [ slash, question, dead_stroke, questiondown ] }; | |
key <LSGT> { [ oe, OE, oslash, Ooblique ] }; | |
key <BKSL> { [ backslash, bar, dead_grave, brokenbar ] }; | |
key <ESC> { [ backslash, bar, dead_grave, brokenbar ] }; | |
key <AC11> { [ apostrophe, quotedbl, dead_acute, 0x1000294 ] }; | |
key <CAPS> { [ apostrophe, quotedbl, dead_acute, 0x1000294 ] }; | |
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] }; | |
}; | |
partial | |
xkb_symbols "cmk_ed_mirror_special" { | |
// Tab/Back/Enter/Esc/Alt(?) keys for a mirrored layout (ignoring the duplex Shift and Ctrl) | |
key <TLDE> { [ BackSpace ] }; | |
key <TAB> { [ Return, Return ] }; | |
key <AD11> { [ Escape ] }; // Esc is often mapped to <AD11> (usually with Crtl) | |
key <AD12> { [ Caps_Lock ] }; | |
key <RTRN> { [ Tab, ISO_Left_Tab ] }; | |
// key <ALT> { [ ISO_Right_Alt ] }; //TODO: Check if this works! | |
// key <RALT> { [ Alt_L ] }; //TODO: Check if this works! | |
key <FK01> { [ F12 ] }; | |
key <FK02> { [ F11 ] }; | |
key <FK03> { [ F10 ] }; | |
key <FK04> { [ F9 ] }; | |
key <FK05> { [ F8 ] }; | |
key <FK06> { [ F7 ] }; | |
key <FK07> { [ F6 ] }; | |
key <FK08> { [ F5 ] }; | |
key <FK09> { [ F4 ] }; | |
key <FK10> { [ F3 ] }; | |
key <FK11> { [ F2 ] }; | |
key <FK12> { [ F1 ] }; | |
}; | |
// ****************************************************** | |
// ***** DreymaR: Colemak[eD] - National variants ***** | |
// ***** are in colemak_template - copy to a new ***** | |
// ***** file and find/replace <LANGUAGE>/<LCODE> ***** | |
// ****************************************************** | |
// ***************************************************************************************** | |
// ****** ****** | |
// ***** END of DreymaR's Colemak additions (Cmk[eD], Tarmak1-4, National var.) ***** | |
// ****** ****** | |
// ***************************************************************************************** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// $XKeyboardConfig$ | |
// ***************************************************************************************** | |
// ****** ****** | |
// ***** Colemak layouts - adding locale variants in a consistent fashion ***** | |
// ***** by Øystein Bech "DreymaR" Gadmar, 2012 ***** | |
// ***** (copy this template to a new file then find/replace '<LANGUAGE>'/'<CODE>') ***** | |
// ****** ****** | |
// ***************************************************************************************** | |
// *********************************************** | |
// *** In the symbols file for <LANGUAGE> *** | |
// *** (its filename is '<CODE>') *** | |
// *********************************************** | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar: National Colemak - eD variants for <LANGUAGE>. | |
// (Colemak: 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.) | |
// This variant keeps the national symbol and special letter setup. | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_ks" { | |
include "<CODE>(basic)" | |
include "colemak(cmk_ed_letters)" | |
name[Group1]= "<LANGUAGE> (Colemak[eD], keep local symbols)"; | |
key <AD10> { [ 0, 0, 0, 0 ] };// from <AC10> | |
// key <AD10> { [ semicolon, colon, dead_diaeresis, ellipsis ] };// Colemak[eD] <AD10> | |
}; | |
// This variant uses the US-type symbol key setup (recommended!) as it is nearly an intl. standard. | |
// For <LANGUAGE>, necessary local letters are added to designated flexible spots in the layout. | |
// For "writing" and "coding" subvariants, move the brackets between lv1-2 and lv3-4 as shown. | |
partial alphanumeric_keys | |
xkb_symbols "cmk_ed_us" { | |
include "colemak(cmk_ed_letters)" | |
include "colemak(cmk_ed_symbols)" | |
include "level3(ralt_switch)" | |
name[Group1]= "<LANGUAGE> (Colemak[eD], unified symbols)"; | |
key <LSGT> { [ 0, 0, oe, OE ] };// from <AC10> | |
// key <AD11> { [ bracketleft, braceleft, 0, 0 ] }; | |
// key <AD12> { [ bracketright, braceright, 0, 0 ] }; | |
key <AD11> { [ 0, 0, bracketleft, braceleft ] };// from <AD11> | |
key <AD12> { [ 0, 0, bracketright, braceright ] };// from <AC11> | |
// key <AB06> { [ k, K, 0, 0 ] };// from <A> | |
// key <AD07> { [ l, L, 0, 0 ] };// from <A> | |
// key <AD06> { [ j, J, 0, 0 ] };// from <A> | |
// key <AC06> { [ h, H, 0, 0 ] };// from <A> | |
}; | |
// *********************************************** | |
// *** In the rules/evdev(+base).xml file *** | |
// *** Under the <CODE> layout variantList *** | |
// *********************************************** | |
<variant> | |
<configItem> | |
<name>cmk_ed_ks</name> | |
<description><LANGUAGE> (Colemak[eD], keep local symbols)</description> | |
</configItem> | |
</variant> | |
<variant> | |
<configItem> | |
<name>cmk_ed_us</name> | |
<description><LANGUAGE> (Colemak[eD], unified symbols)</description> | |
</configItem> | |
</variant> | |
// *********************************************** | |
// *** In the rules/evdev(+base).lst file *** | |
// *** Under '! variant' (prefer. <CODE>) *** | |
// *********************************************** | |
cmk_ed_ks <CODE>: <LANGUAGE> (Colemak[eD], keep local symbols) | |
cmk_ed_us <CODE>: <LANGUAGE> (Colemak[eD], unified symbols) | |
// *********************************************** | |
// *** (In the main rules/evdev(+base) file *** | |
// *** I think you get away with no changes.) *** | |
// *********************************************** | |
// ***************************************************************************************** | |
// ****** ****** | |
// ***** END of DreymaR's Colemak additions (Cmk[eD], National var.) ***** | |
// ****** ****** | |
// ***************************************************************************************** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Extend mode symbols for xkb on X.Org Server 7.x | |
// 2012-01-01 Øystein Bech "DreymaR" Gadmar | |
// A modular Extend mapping layer like the one I have in Portable Keyboard Layout for Windows | |
// - I've used the xkb/symbols/typo 'typographic keyboard' partial mappings as a method template | |
// - Key names are from keysymdef.h and XF86keysym.h in /usr/include/X11/ (Removing the XK_ prefix) | |
// - These multimedia F keys are defined (the shifted versions are not implemented in WinPKL): | |
// These keys are modified/transposed by holding down the 'extend key' (CapsLock by default): | |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+ | |
// |Esc + |F1 <> |F2 << |F3 >> |F4 <> |F5 <> |F6 << |F7 >> |F8 <> |F9 <> |F10<> |F11<> |F12<> | | |
// | | Pause| Rew | Fwd | Eject| Sleep| Bri- | Bri+ | Term | Home | Mail | App3 | App4 | | |
// | Caps | Play | Prev | Next | Stop | Mute | Vol- | Vol+ | Media| WWW | Srch | App1 | App2 | | |
// +======+======+======+======+======+======+======+======+======+======+======+======+======+ | |
// |` €€€ |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= | | |
// | Del | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+ | |
// |Tab |Q €€€ |W *** |F <<> |P <>> |G *** |J ### |L ### |U ### |Y ### |; €€€ |[ €€€ |] €€€ | | |
// | | Esc | *WhUp| BrBck| BrFwd| *MUp | PgUp | Home | Up | End | Del | Esc | Ins | | |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+ | |
// |Caps+ |A +++ |R *** |S +++ |T +++ |D *** |H ### |N ### |E ### |I ### |O €€€ |' €€€ |\ ><> | | |
// | ++++ | Alt | *WhDn| Shift| Ctrl | *MDn | PgDn | Left | Down | Right| Back | Menu | BrFav| | |
// +------+------+------+------+------+------+------+------+------+------+------+------+------+ | |
// |Z €€€ |X === |C === |V === |B *** |_ *** |K *** |M *** |, *** |. *** |/ *** |Spc € |Entr€ | | |
// | Undo | Cut | Copy | Paste| *Bt1 | *MOn | *Bt2 | *Bt3 | *MLe | *MRi | *MOn | Enter| Break| | |
// +------+------+------+------+------+------+------+------+------+------+------+-------------+ | |
// Legend: # Movement; + Modifiers; = GUI edit; * Mouse; <> MultiMedia; € Various commands. | |
// | |
// TODO: Pointer/WheelScroll keys don't work even if PointerKeys are enabled. | |
// TODO: The Alt/Ctrl states work with the Extend arrows, but Shift doesn't work?! | |
// TODO: For Shift/Ctrl keys to work, sending the key name isn't enough? Also need a modifier_map line ??? | |
// TODO: What should lv7-8 do? Accelerated keys? Fancy symbols? Greek? IPA? | |
default partial // alphanumeric_keys | |
xkb_symbols "lv5" { | |
// name[Group1]= "Extend layer"; | |
key.type[group1]="EIGHT_LEVEL"; | |
// key <ESC> { [ Escape, Escape, Escape, Escape, Caps_Lock, Caps_Lock ] }; // Problem: Lv1-4 are CapsLock PLUS Esc! | |
key <SCLK> { [ Scroll_Lock, Scroll_Lock, Scroll_Lock, Scroll_Lock, Caps_Lock, Caps_Lock ] }; // Or 4-level? | |
key <FK01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioPlay , XF86AudioPause ] }; | |
key <FK02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioPrev , XF86AudioRewind ] }; | |
key <FK03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioNext , XF86AudioForward ] }; | |
key <FK04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioStop , XF86Eject ] }; | |
key <FK05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioMute , XF86Sleep ] }; | |
key <FK06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioLowerVolume , XF86MonBrightnessDown ] }; | |
key <FK07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioRaiseVolume , XF86MonBrightnessUp ] }; | |
key <FK08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86AudioMedia , XF86Terminal ] }; | |
key <FK09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86WWW , XF86HomePage ] }; | |
key <FK10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Search , XF86Mail ] }; | |
key <FK11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Launch1 , XF86Launch3 ] }; | |
key <FK12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Launch2 , XF86Launch4 ] }; | |
key <TLDE> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Delete ] }; | |
key <AE01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F1 ] }; | |
key <AE02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F2 ] }; | |
key <AE03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F3 ] }; | |
key <AE04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F4 ] }; | |
key <AE05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F5 ] }; | |
key <AE06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F6 ] }; | |
key <AE07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F7 ] }; | |
key <AE08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F8 ] }; | |
key <AE09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F9 ] }; | |
key <AE10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F10 ] }; | |
key <AE11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F11 ] }; | |
key <AE12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, F12 ] }; | |
// | |
key <AD01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Escape ] }; | |
key <AD02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Up, XF86ScrollUp ] }; //'Pointer_' needs enabling!? | |
key <AD03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Back ] }; | |
key <AD04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Forward ] }; | |
key <AD05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Up ] }; //'Pointer_' mousing needs enabling!? | |
key <AD06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Page_Up ] }; | |
key <AD07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Home ] }; | |
key <AD08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Up, Up ] }; | |
key <AD09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, End ] }; | |
key <AD10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Delete ] }; | |
key <AD11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Escape ] }; | |
key <AD12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Insert ] }; | |
key <BKSL> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Favorites ] }; // Browser Favorites | |
// Note: The WheelUp/WheelDn keys (<AD02>/<AC02>) didn't work, so for now I'm scrolling with Up/Dn instead. | |
key <AC01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Alt_L ] }; //The Alt key works!? | |
key <AC02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Down, XF86ScrollDown ] }; //'Pointer_' needs enabling!? | |
key <AC03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Shift_L ] }; //Shift key not working!? | |
key <AC04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Control_L ] }; //Ctrl key not working!? | |
key <AC05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Down ] }; //'Pointer_' mousing needs enabling!? | |
key <AC06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Page_Down ] }; | |
key <AC07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Left, Left ] }; | |
key <AC08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Down, Down ] }; | |
key <AC09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Right, Right ] }; | |
key <AC10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, BackSpace ] }; | |
key <AC11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Menu ] }; | |
// Note: The 6th state gives the symbol (for instance arrows) - but not shifted (arrow select)! | |
key <LSGT> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; //??? | |
key <AB01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Undo ] }; //'Undo' not working!? | |
key <AB02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Cut ] }; //Cut/Copy/Paste OK in Firefox but not Gedit!? | |
key <AB03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Copy ] }; //Cut/Copy/Paste OK in Firefox but not Gedit!? | |
key <AB04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, XF86Paste ] }; //Cut/Copy/Paste OK in Firefox but not Gedit!? | |
key <AB05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Button1 ] }; //Btn1 (L-click) works when enabled! | |
key <AB06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Button2 ] }; //'Pointer_' mousing needs enabling!? | |
key <AB07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Button3 ] }; //Btn3 (R-click) works when enabled! | |
key <AB08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Left ] }; //'Pointer_' mousing needs enabling!? | |
key <AB09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_Right ] }; //'Pointer_' mousing needs enabling!? | |
key <AB10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Pointer_EnableKeys ] }; //(Like the Shift+NumLock option) | |
// | |
key <SPCE> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Return ] }; | |
// key <CAPS> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; | |
// begin modifier mappings | |
modifier_map Shift { Shift_L, Shift_R }; | |
modifier_map Lock { Caps_Lock, ISO_Lock }; | |
modifier_map Control{ Control_L, Control_R }; | |
// key <CAPS> { [ISO_Level5_Shift, BackSpace, Caps_Lock, Caps_Lock, NoSymbol ] }; | |
// modifier_map Mod3 { ISO_Level5_Shift }; | |
// include "level3(ralt_switch)" | |
// include "level5(caps_switch)" | |
// Maybe one could use the capslock(groupshift) functionality instead? | |
// key <CAPS> { [ Mode_switch, BackSpace, Caps_Lock, Caps_Lock, NoSymbol ] }; | |
// // The capslock(groupshift) switch defines the <CAPS> ground state as a Mode_switch key. | |
// But: The 4 groups are meant for different locales/scripts/layouts, and people need that. | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment