Skip to content

Instantly share code, notes, and snippets.

@pablox-cl
Last active December 11, 2015 09:38
Show Gist options
  • Save pablox-cl/4581290 to your computer and use it in GitHub Desktop.
Save pablox-cl/4581290 to your computer and use it in GitHub Desktop.
Colemak Edition Dreymar Special Symbols
// $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.) *****
// ****** ******
// *****************************************************************************************
// $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.) *****
// ****** ******
// *****************************************************************************************
// 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