624 lines
40 KiB
Plaintext
624 lines
40 KiB
Plaintext
// $XKeyboardConfig$
|
||
|
||
// *****************************************************************************************
|
||
// ****** ******
|
||
// ***** Colemak layouts - additions, locales and learning steps as variants *****
|
||
// ***** by OEystein Bech "DreymaR" Gadmar, 2011-2015 *****
|
||
// ***** (The Colemak layout: Shai Coleman, 2006) *****
|
||
// ****** ******
|
||
// *****************************************************************************************
|
||
|
||
default
|
||
// Colemak symbols for xkb on X.Org Server 7.x
|
||
// 2006-01-01 Shai Coleman, http://colemak.com/
|
||
|
||
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
|
||
// 2006-01-01 Shai Coleman, http://colemak.com/
|
||
// 2012-01-01 OEystein Bech "DreymaR" Gadmar: New shift levels 3-4.
|
||
// See "DreymaR's Big Bag of Keyboard Tricks": http://forum.colemak.com/viewtopic.php?pid=9918
|
||
|
||
// 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!
|
||
// - Modularity allows flexible layout definition using different modifier keys and symbols
|
||
// * The symbol keys and number row may be kept unchanged in 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 letters on LBr/RBr/LSGT may well be replaced; these should also be on dead keys.
|
||
// * Also, 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.
|
||
|
||
// TODO: All mapped keys lose their repeat behavior; this needs to be fixed!
|
||
// It appears to be independent of layout (and extend) mappings though?
|
||
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)";
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_ed_letters" {
|
||
// Alphanumeric section (letter keys and semicolon)
|
||
key <AD01> { [ q, Q, singlelowquotemark, doublelowquotemark ] }; // QWE/Cmk Q
|
||
key <AD02> { [ w, W, leftsinglequotemark, leftdoublequotemark ] }; // QWE/Cmk W
|
||
key <AD03> { [ f, F,rightsinglequotemark,rightdoublequotemark ] }; // QWE E Cmk F
|
||
key <AD04> { [ p, P, Greek_pi, paragraph ] }; // QWE R Cmk P
|
||
key <AD05> { [ g, G, eng, ENG ] }; // QWE T Cmk G
|
||
key <AD06> { [ j, J, U0283, U01A9 ] }; // QWE Y Cmk J
|
||
key <AD07> { [ l, L, lstroke, Lstroke ] }; // QWE U Cmk L
|
||
key <AD08> { [ u, U, U2039, guillemotleft ] }; // QWE I Cmk U
|
||
key <AD09> { [ y, Y, U203A, guillemotright ] }; // QWE O Cmk Y
|
||
key <AD10> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // QWE P Cmk ;:
|
||
// U2039/203A single guillemets; U0283/01A9 esh/ESH
|
||
key <AC01> { [ a, A, ae, AE ] }; // QWE/Cmk A
|
||
key <AC02> { [ r, R, registered, trademark ] }; // QWE S Cmk R
|
||
key <AC03> { [ s, S, ssharp, section ] }; // QWE D Cmk S
|
||
key <AC04> { [ t, T, thorn, THORN ] }; // QWE F Cmk T
|
||
key <AC05> { [ d, D, eth, ETH ] }; // QWE G Cmk D
|
||
key <AC06> { [ h, H, hstroke, Hstroke ] }; // QWE/Cmk H
|
||
key <AC07> { [ n, N, endash, leftarrow ] }; // QWE J Cmk N
|
||
key <AC08> { [ e, E, EuroSign, uparrow ] }; // QWE K Cmk E
|
||
key <AC09> { [ i, I, emdash, rightarrow ] }; // QWE L Cmk I
|
||
key <AC10> { [ o, O, masculine, ordfeminine ] }; // QWE ; Cmk O
|
||
//
|
||
key <AB01> { [ z, Z, U0292, U01B7 ] }; // QWE/Cmk Z
|
||
key <AB02> { [ x, X, dagger, doubledagger ] }; // QWE/Cmk X
|
||
key <AB03> { [ c, C, copyright, cent ] }; // QWE/Cmk C
|
||
key <AB04> { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V
|
||
key <AB05> { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE/Cmk B
|
||
key <AB06> { [ k, K, ccedilla, Ccedilla ] }; // QWE N Cmk K
|
||
key <AB07> { [ m, M, multiply, downarrow ] }; // QWE/Cmk M
|
||
// U0292/01B7 ezh/EZH
|
||
|
||
//// NOTE: Activating the line below will "hard" enable the Curl-Dvbg/Hm mod by Stevep99; see below.
|
||
// include "colemak(cmk_dvbg-hm_ed)"
|
||
//// NOTE: This is my lighter Curl-Dbg/Hk Colemak ergo mod, keeping V and M in place.
|
||
// include "colemak(cmk_dbg-hk_ed)"
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_ed_symbols" {
|
||
// Alphanumeric section (number/symbol keys)
|
||
key <TLDE> { [ grave, asciitilde, dead_tilde, U2248 ] }; // `~
|
||
key <AE01> { [ 1, exclam, dead_belowdot, exclamdown ] }; // 1
|
||
key <AE02> { [ 2, at, dead_hook, twosuperior ] }; // 2
|
||
key <AE03> { [ 3, numbersign, dead_horn, threesuperior ] }; // 3
|
||
key <AE04> { [ 4, dollar, dead_currency, sterling ] }; // 4
|
||
key <AE05> { [ 5, percent, mu, U2030 ] }; // 5
|
||
key <AE06> { [ 6, asciicircum, dead_circumflex, partialderivative ] }; // 6
|
||
key <AE07> { [ 7, ampersand, dead_caron, notsign ] }; // 7
|
||
key <AE08> { [ 8, asterisk, dead_ogonek, infinity ] }; // 8
|
||
key <AE09> { [ 9, parenleft, dead_breve, periodcentered ] }; // 9
|
||
key <AE10> { [ 0, parenright, dead_abovering, degree ] }; // 0
|
||
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, dstroke, Greek_alpha ] }; // ]}
|
||
//
|
||
key <AC11> { [ apostrophe, quotedbl, dead_acute, U2032 ] }; // '"
|
||
key <BKSL> { [ backslash, bar, dead_grave, brokenbar ] }; // \|
|
||
// U2032 prime
|
||
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, CapsLock is tweaked in the Keyboard settings (for 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;
|
||
// - Rare/dropped: U25CA lozenge (Mac; rare); kra (deprecated Inuktitut & IPA);
|
||
// union/intersection/includedin; integral (need a science/math deadkey; use esh in a pinch);
|
||
// numerosign (mostly Cyrillic; use N + masc.); squareroot (unworkable); function (use hook-f);
|
||
// U1E9E Capital German SS (disputed); U2033/U2032 double-/prime (cheat w/ acute/doubleacute?!)
|
||
// U2639/U263A/U27E8/27E9 sadface/smilingface/brackets (poorly implemented)
|
||
// - Oddly placed?: 'notsign'/'division' (placed by shape/association)?
|
||
// TODO: Compose/deadkeys: ligatures (fi/fl/ij); fractions/superior/subscripts; latin/IPA/currencies
|
||
// - For Currency: U2044 solidus/shilling; yen
|
||
// - For IPA/Latin: U026A/028F SmCap-I/Y; U0251/0252 script-a/turned-script-a; U0283 esh
|
||
// U028A lat-upsilon; U027E r-flap; U0294 glottal stop; U025C turned open e
|
||
// 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: iota, voiced_sound, semivoiced_sound
|
||
// (could enhance them like Colemak user 'ghen' suggests, for keys 3/4/5?):
|
||
// TODO: A Maths/science dead key? Latin/IPA? Greek? (Currency exists)
|
||
// TODO: Add superior/subscript # to dead_acute/grave; fractions to slash/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? Or just en_US.UTF-8 ?
|
||
// Since this lies outside the xkb folder, I might just post the code and where to paste it?
|
||
// TODO: For extra dead key mappings, could dead_abovering and dead_doubleacute be augmented?
|
||
// Make sure dead_hook has rhotic hooks for schwa and turned epsilon!
|
||
// Similarly with smallcap letters and their turned counterparts?
|
||
// TODO: Add IPA (broad English?) somewhere. Too few free slots, so it'll have to be by dead_keys.
|
||
// DONE: Add Greek, Kyrillic and Hebrew phonetic Colemak layouts (nice for group 'switch' layout).
|
||
// DONE: Update the Tarmak and Mirrored layouts when Colemak[eD] is changed, using search-replace.
|
||
|
||
|
||
// ******************************************************
|
||
// ***** DreymaR/Stevep99: Curl-DH ergonomic mods *****
|
||
// ******************************************************
|
||
|
||
// Here are the Colemak "Curl-D/H" ergo mods by colemak forum users stevep99 and myself.
|
||
// See http://colemakmods.github.io/mod-dh/ and http://forum.colemak.com/viewtopic.php?id=1942 for more info.
|
||
// • Stevep99's Dvbg left-hand mod gives the D a good bottom-row place (<AB04>) at the cost of V and B.
|
||
// • DreymaR's Dbg left-hand variant is lighter and avoids separating V by replacing B with D directly.
|
||
// Both left-hand mods put the G back in its QWERTY place at the lesser cost of the less frequent B.
|
||
// For the D(v)bg mod to work as intended, an Angle mod (such as the pc105awide-sl model) is necessary!
|
||
// • Stevep99's Hm right-hand mod gives H a good bottom-row position at the cost of M.
|
||
// • DreymaR's Hk right-hand variant avoids moving M, swapping H and K instead.
|
||
// The Dbg/Hk mods are intended for normal-staggered keyboards; Dvbg/Hm works on matrix boards too.
|
||
// The Hk/Hm switches cause lv3-4 trouble with Cmk[eD] locales that remap H (and in rare cases, D(v)bg w/ D/G).
|
||
// In the Hk/Hm mods, any H in symbols/locale 'cmk_ed_us' sections must change from <AC06> to <AB06>/<AB07>.
|
||
// NOTE: The Curl-DH mod are implemented both as US English layouts and as options (e.g., misc:cmk_curl_dbghk).
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_dvbg-hm_ed" {
|
||
// This is the Curl-DvbgHm ergo mod for Colemak, by stevep99.
|
||
include "colemak(cmk_dvbg_ed)"
|
||
include "colemak(cmk_hm_ed)"
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_dbg-hk_ed" {
|
||
// This is the Curl-DbgHk ergo mod for Colemak, by DreymaR, keeping V and M in place.
|
||
include "colemak(cmk_dbg_ed)"
|
||
include "colemak(cmk_hk_ed)"
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_dvbg_ed" {
|
||
// This is the 'Dvbg' loop for the Colemak Curl-D/H ergo mod by stevep99.
|
||
key <AD05> { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE T Cmk G
|
||
key <AC05> { [ g, G, eng, ENG ] }; // QWE G Cmk D
|
||
key <AB04> { [ d, D, eth, ETH ] }; // QWE/Cmk V
|
||
key <AB05> { [ v, V, division, Greek_gamma ] }; // QWE/Cmk B
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_dbg_ed" {
|
||
// This is the 'Dbg' loop for the Colemak Curl-D/H ergo mod, leaving the V in place.
|
||
key <AD05> { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE T Cmk G
|
||
key <AC05> { [ g, G, eng, ENG ] }; // QWE G Cmk D
|
||
key <AB05> { [ d, D, eth, ETH ] }; // QWE/Cmk B
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_hm_ed" {
|
||
// This is the 'Hm' switch for the Colemak Curl-D/H ergo mod by stevep99.
|
||
// N isn't changed in this mod, but the Cmk[eD] arrow symbols are rearranged into a Vim-like line!
|
||
key <AC06> { [ m, M, multiply, leftarrow ] }; // QWE/Cmk H
|
||
key <AC07> { [ n, N, endash, downarrow ] }; // QWE J Cmk N
|
||
key <AB07> { [ h, H, hstroke, Hstroke ] }; // QWE/Cmk M
|
||
};
|
||
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "cmk_hk_ed" {
|
||
// This is the 'Hk' switch for the Colemak Curl-D/H ergo mod, leaving the M in place.
|
||
key <AC06> { [ k, K, ccedilla, Ccedilla ] }; // QWE/Cmk H
|
||
key <AB06> { [ h, H, hstroke, Hstroke ] }; // QWE N Cmk K
|
||
};
|
||
|
||
|
||
// ******************************************************
|
||
// ***** DreymaR: Tarmak - Transitional Colemak *****
|
||
// ******************************************************
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// 2012-01-01 OEystein Bech "DreymaR" Gadmar: Paving the way; 'Tarmak (transitional Colemak)'.
|
||
// See "DreymaR's Big Bag of Keyboard Tricks": http://forum.colemak.com/viewtopic.php?pid=9918
|
||
// 2006-01-01 Shai Coleman, http://colemak.com/
|
||
// This section defines the differences between a full Colemak[eD] and the first Tarmak layout step.
|
||
// The Tarmak1(E) step moves the E>K>N keys to their Colemak positions, leaving the J at QWERTY 'E'.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak1_e" {
|
||
include "colemak(cmk_ed)"
|
||
// To exclude the partial (F)EKNJ loop in this step, include its mask and comment out the F-J line below
|
||
// (This would only be useful if you want to learn the LUI loop as a warmup; if so, comment out that too)
|
||
//include "colemak(tarmak_mask_fekn_to_eknj)"
|
||
include "colemak(tarmak_mask_dgt_to_gtf)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
key <AD03> { [ j, J, U0283, U01A9 ] }; // Cmk F - stray J
|
||
name[Group1]= "English/Intl (Tarmak1_E - Colemak transitional)";
|
||
};
|
||
|
||
// This is the first Tarmak step for those who want to learn the Curl-DbgHk mod; it includes the Curl-Hk mod.
|
||
// There is no step for the Curl-Hm mod, as it doesn't affect the first Tarmak step. It can be learnt independently.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak1k_e" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_dgt_to_gtf)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
include "colemak(cmk_hk_ed)"
|
||
key <AD03> { [ j, J, U0283, U01A9 ] }; // Cmk F - stray J
|
||
// NOTE: Re-enforcing of the V and B keys as below is only necessary when running a DBG/DVBG mod (see above)
|
||
key <AB04> { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V
|
||
key <AB05> { [ b, B, enfilledcircbullet, Greek_beta ] }; // QWE/Cmk B
|
||
name[Group1]= "English/Intl (Tarmak1k_E - Colemak transitional w/ Curl-Hk)";
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step.
|
||
// The Tarmak2(ET) step moves the G>T>F keys to their Colemak positions, leaving the J at QWERTY 'G'.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak2_et" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
key <AC05> { [ j, J, U0283, U01A9 ] }; // Cmk D - stray J
|
||
name[Group1]= "English/Intl (Tarmak2_ET - Colemak transitional)";
|
||
};
|
||
|
||
// The Tarmak2bk(ET) step moves the B>T>F keys to their Colemak-Curl(DbgHk) positions, leaving the J at QWERTY 'B'.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak2bk_et" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
//// NOTE: The below is for DBG/DVBG mods (VJ/JV on <AB04>/<AB05> respectively)
|
||
//// For the Curl-DbgHk mod, both sides are activated at this point forward. (Activate it normally for step 3–4.)
|
||
include "colemak(cmk_dbg-hk_ed)"
|
||
key <AB04> { [ v, V, division, Greek_gamma ] }; // QWE/Cmk V
|
||
key <AB05> { [ j, J, U0283, U01A9 ] }; // QWE/Cmk B - stray J
|
||
name[Group1]= "English/Intl (Tarmak2bk_ET - Colemak transitional w/ Curl-DbgHk)";
|
||
};
|
||
|
||
// The Tarmak2vm(ET) step moves the B>T>F keys to their Colemak-Curl(DvbgHm) positions, leaving the J at QWERTY 'B'.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak2vm_et" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
//// NOTE: The below is for DBG/DVBG mods (VJ/JV on <AB04>/<AB05> respectively)
|
||
//// For the Curl-DvbgHm mod, activating the right-hand HM switch is still optional.
|
||
include "colemak(cmk_dvbg_ed)"
|
||
// include "colemak(cmk_dvbg-hm_ed)"
|
||
key <AB04> { [ j, J, U0283, U01A9 ] }; // QWE/Cmk V - stray J
|
||
key <AB05> { [ v, V, division, Greek_gamma ] }; // QWE/Cmk B
|
||
name[Group1]= "English/Intl (Tarmak2vm_ET - Colemak transitional w/ Curl-DvbgHm)";
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step.
|
||
// The Tarmak3(ETR) step moves the R>S>D keys to their Colemak positions, leaving the J at QWERTY 'R'.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak3_etr" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_jyoc_to_yocp)"
|
||
// To include the standalone LUI loop in this or any step, comment out its mask (below)
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
key <AD04> { [ j, J, U0283, U01A9 ] }; // Cmk P - stray J
|
||
name[Group1]= "English/Intl (Tarmak3_ETR - Colemak transitional)";
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step.
|
||
// The Tarmak4(ETRO) step moves the L>U>I keys to their Colemak positions, finalizing the big loop.
|
||
// This is the 4th step of the Tarmak(ETROI) and (ETORI) variants, leaving only the LUI loop.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak4_etro" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
name[Group1]= "English/Intl (Tarmak4_ETRO - Colemak transitional)";
|
||
};
|
||
|
||
// NOTE: The Tarmak(ETO) and (ETOI) steps below are the old defaults. They won't show up in the menus anymore.
|
||
// A quick way of getting them back would be to edit the xkb_symbols names of steps 3 and 4 here.
|
||
// A more proper way would be to edit the rules/evdev.xml and evdev.lst files,
|
||
// replacing 'tarmak3_etr' with 'tarmak3_eto' and likewise for '4_etro'/'4_etoi',
|
||
// and finally editing the corresponding entries in the 'us' symbols file.
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step.
|
||
// The Tarmak3(ETO) step moves the J>Y>O keys to their Colemak positions, leaving the ; at QWERTY 'G'.
|
||
// This is the 3rd step of the Tarmak(ETOIR) and (ETORI) variants, performing the JYO loop earlier.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak3_eto" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
// To include the standalone LUI loop in this step, comment out its mask below
|
||
include "colemak(tarmak_mask_lui_to_uil)"
|
||
key <AD10> { [ p, P, Greek_pi, paragraph ] }; // Cmk ;:
|
||
key <AC05> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // Cmk D - stray ;:
|
||
name[Group1]= "English/Intl (Tarmak3_ETO - Colemak transitional)";
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for one Tarmak step.
|
||
// The Tarmak4(ETOI) step moves the L>U>I keys to their Colemak positions, stranding the ; at QWERTY 'G'.
|
||
// This is the 4th step of the Tarmak(ETOIR) variant, performing the LUI loop earlier.
|
||
partial alphanumeric_keys
|
||
xkb_symbols "tarmak4_etoi" {
|
||
include "colemak(cmk_ed)"
|
||
include "colemak(tarmak_mask_prs_to_rsd)"
|
||
// The standalone LUI loop is included in this step; if unwanted here, include its mask instead
|
||
key <AD10> { [ p, P, Greek_pi, paragraph ] }; // Cmk ;:
|
||
key <AC05> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // Cmk D - stray ;:
|
||
name[Group1]= "English/Intl (Tarmak4_ETOI - Colemak transitional)";
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for the partial (F)EKNJ loop.
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "tarmak_mask_fekn_to_eknj" {
|
||
key <AD03> { [ e, E, EuroSign, uparrow ] }; // QWE E Cmk F
|
||
key <AC08> { [ k, K, ccedilla, Ccedilla ] }; // QWE K Cmk E
|
||
key <AB06> { [ n, N, endash, leftarrow ] }; // QWE N Cmk K
|
||
key <AC07> { [ j, J, U0283, U01A9 ] }; // QWE J Cmk N
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for the partial (D)GTF loop.
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "tarmak_mask_dgt_to_gtf" {
|
||
key <AC05> { [ g, G, eng, ENG ] }; // QWE G Cmk D
|
||
key <AD05> { [ t, T, thorn, THORN ] }; // QWE T Cmk G
|
||
key <AC04> { [ f, F,rightsinglequotemark,rightdoublequotemark ] }; // QWE F Cmk T
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for the partial (P)RSD loop.
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "tarmak_mask_prs_to_rsd" {
|
||
key <AD04> { [ r, R, registered, trademark ] }; // QWE R Cmk P
|
||
key <AC02> { [ s, S, ssharp, section ] }; // QWE S Cmk R
|
||
key <AC03> { [ d, D, eth, ETH ] }; // QWE D Cmk S
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for the partial (J)YO;P loop.
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "tarmak_mask_jyoc_to_yocp" {
|
||
key <AD06> { [ y, Y, U203A, guillemotright ] }; // QWE Y Cmk J
|
||
key <AD09> { [ o, O, masculine, ordfeminine ] }; // QWE O Cmk Y
|
||
key <AC10> { [ semicolon, colon, dead_diaeresis, ellipsis ] }; // QWE ; Cmk O
|
||
key <AD10> { [ p, P, Greek_pi, paragraph ] }; // QWE P Cmk ;
|
||
};
|
||
|
||
// Tarmak symbols for xkb on X.Org Server 7.x
|
||
// See the first Tarmak layout above for more info. This is a QWERTY mask for the standalone LUI loop.
|
||
hidden partial alphanumeric_keys
|
||
xkb_symbols "tarmak_mask_lui_to_uil" {
|
||
key <AD07> { [ u, U, U2039, guillemotleft ] }; // QWE U Cmk L
|
||
key <AD08> { [ i, I, emdash, rightarrow ] }; // QWE I Cmk U
|
||
key <AC09> { [ l, L, lstroke, Lstroke ] }; // QWE L Cmk I
|
||
};
|
||
|
||
|
||
// ******************************************************
|
||
// ***** DreymaR: Mirrored Colemak (Symbols) *****
|
||
// ******************************************************
|
||
|
||
// Mirrored Colemak[eD] symbols for xkb on X.Org Server 7.x
|
||
// 2012-03-01 OEystein Bech "DreymaR" Gadmar: Mirrored Colemak layouts for single-handed typing.
|
||
// See "DreymaR's Big Bag of Keyboard Tricks": http://forum.colemak.com/viewtopic.php?pid=9918
|
||
// 2006-01-01 Shai Coleman, http://colemak.com/
|
||
// 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)";
|
||
};
|
||
|
||
hidden 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, U0283, U01A9 ] };
|
||
key <AD04> { [ l, L, lstroke, Lstroke ] };
|
||
key <AD03> { [ u, U, U2039, guillemotleft ] };
|
||
key <AD02> { [ y, Y, U203A, 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, hstroke, Hstroke ] };
|
||
key <AC04> { [ n, N, endash, leftarrow ] };
|
||
key <AC03> { [ e, E, EuroSign, uparrow ] };
|
||
key <AC02> { [ i, I, emdash, rightarrow ] };
|
||
key <AC01> { [ o, O, masculine, ordfeminine ] };
|
||
key <AB10> { [ z, Z, U0292, U01B7 ] };
|
||
key <AB09> { [ x, X, dagger, doubledagger ] };
|
||
key <AB08> { [ c, C, copyright, cent ] };
|
||
key <AB07> { [ v, V, division, Greek_gamma ] };
|
||
key <AB06> { [ b, B, enfilledcircbullet, Greek_beta ] };
|
||
key <AB05> { [ k, K, ccedilla, Ccedilla ] };
|
||
key <AB04> { [ m, M, multiply, downarrow ] };
|
||
};
|
||
|
||
hidden 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, U2248 ] };
|
||
key <AE12> { [ equal, plus, dead_doubleacute, notequal ] };
|
||
key <AE11> { [ 1, exclam, dead_belowdot, exclamdown ] };
|
||
key <AE10> { [ 2, at, dead_hook, twosuperior ] };
|
||
key <AE09> { [ 3, numbersign, dead_horn, threesuperior ] };
|
||
key <AE08> { [ 4, dollar, currency, sterling ] };
|
||
key <AE07> { [ 5, percent, mu, U2030 ] };
|
||
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, dstroke, Greek_alpha ] };
|
||
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, U2032 ] };
|
||
key <CAPS> { [ apostrophe, quotedbl, dead_acute, U2032 ] };
|
||
key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
|
||
};
|
||
|
||
hidden 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 ] }; //NOTE: If this doesn't work, add SetMods
|
||
// key <RALT> { [ Alt_L ] }; //NOTE: If this doesn't work, add SetMods
|
||
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>/<LL> *****
|
||
// ******************************************************
|
||
|
||
|
||
// *****************************************************************************************
|
||
// ****** ******
|
||
// ***** END of DreymaR's Colemak additions (Cmk[eD], Tarmak1-4, National var.) *****
|
||
// ****** ******
|
||
// *****************************************************************************************
|