Skip to content

Instantly share code, notes, and snippets.

@Tarrasch
Last active July 27, 2021 22:25

Revisions

  1. Tarrasch revised this gist Jun 3, 2019. 1 changed file with 5 additions and 1 deletion.
    6 changes: 5 additions & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -71,4 +71,8 @@ I also tried to get the AltGr to be more "deep down" so more programs respect my

    `xkbcomp` seems to both "reload everything" and compile and use `keymap.xkb`.

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
    ## Note to self when pushing to gist

    I need a personal access token. I just create one for each push as I push so seldom: https://github.com/settings/tokens, I need that instead of entering my pw as stated in GitHub docs.

    [instructions]: http://ubuntuforums.org/showthread.php?t=18876
  2. Tarrasch revised this gist Jun 3, 2019. 1 changed file with 1807 additions and 0 deletions.
    1,807 changes: 1,807 additions & 0 deletions us-backup-work-laptop-from-2017
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1807 @@
    default partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "English (US)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    };

    partial alphanumeric_keys
    xkb_symbols "euro" {

    include "us(basic)"
    name[Group1]= "English (US, euro on 5)";

    include "eurosign(5)"

    include "level3(ralt_switch)"
    };


    partial alphanumeric_keys
    xkb_symbols "ibm238l" {

    include "us(basic)"
    name[Group1]= "English (US, IBM Arabic 238_L)";

    key <AB08> { [ comma, comma ] };
    key <AB09> { [ period, period ] };
    key <BKSL> { [ quoteleft, asciitilde ] };
    key <LSGT> { [ backslash, bar ] };
    key <TLDE> { [ leftcaret, rightcaret ] };
    };

    partial alphanumeric_keys
    xkb_symbols "intl" {

    include "us(basic)"
    name[Group1]= "English (US, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD04> { [ r, R, registered, registered ] };
    key <AD05> { [ t, T, thorn, THORN ] };
    key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, f, F ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ h, H, h, H ] };
    key <AC07> { [ j, J, j, J ] };
    key <AC08> { [ k, K, oe, OE ] };

    key <AC09> { [ l, L, oslash, Ooblique ] };
    key <AC10> { [ semicolon, colon, paragraph, degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ c, C, copyright, cent ] };
    key <AB04> { [ v, V, v, V ] };
    key <AB05> { [ b, B, b, B ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)

    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis

    partial alphanumeric_keys
    xkb_symbols "alt-intl" {

    include "us"
    name[Group1]= "English (US, alt. intl.)";

    key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE05> { [ 5, percent, EuroSign ] };
    key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
    key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };

    key <AD03> { [ e, E, EuroSign, cent ] };

    key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
    key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
    key <AB10> { [ slash, question, dead_hook, dead_hook ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // based on a keyboard map from an 'xkb/symbols/dk' file

    partial alphanumeric_keys
    xkb_symbols "dvorak" {

    name[Group1]= "English (Dvorak)";

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft, dead_grave] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ slash, question ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Dvorak intl., with dead keys
    // Olivier Mehani (shtrom-xorg@ssji.net)
    // Reproduce the per-key mapping of us(intl) for the dvorak layout
    // aka "I just swapped my keys over"
    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
    key <AD02> { [ comma, less, ccedilla, Ccedilla ] };
    key <AD03> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AD04> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
    // key <AD06> { [ f, F ] };
    // key <AD07> { [ g, G ] };
    key <AD08> { [ c, C, copyright, cent ] };
    key <AD09> { [ r, R, registered, registered ] };
    key <AD10> { [ l, L, oslash, Ooblique ] };
    key <AD11> { [ slash, question, questiondown, dead_hook ] };
    // key <AD12> { [ equal, plus, multiply, division ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ o, O, oacute, Oacute ] };
    key <AC03> { [ e, E, eacute, Eacute ] };
    key <AC04> { [ u, U, uacute, Uacute ] };
    key <AC05> { [ i, I, iacute, Iacute ] };
    key <AC06> { [ d, D, eth, ETH ] };
    // key <AC07> { [ h, H ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp, section ] };
    // key <AC11> { [ minus, underscore, yen, dead_belowdot ] };

    key <AB01> { [ semicolon, colon, paragraph, degree ] };
    key <AB02> { [ q, Q, adiaeresis, Adiaeresis ] };
    // key <AB03> { [ j, J ] };
    key <AB04> { [ k, K, oe, OE ] };
    // key <AB05> { [ x, X ] };
    // key <AB06> { [ b, B ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ w, W, aring, Aring ] };
    // key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z, ae, AE ] };

    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Dvorak international without dead keys
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
    // €
    //
    // ' , . p y f g c r l / =
    // ä ê ë ü ç
    //
    // a o e u i d h t n s -
    // à ô é û î ß
    //
    // ; q j k x b m w v z
    // â ö è ù ï

    partial alphanumeric_keys
    xkb_symbols "dvorak-alt-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, alt. intl.)";

    key <AE04> { [ 4, dollar, EuroSign ] };

    key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
    key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
    key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
    key <AD05> { [ y, Y, udiaeresis ] };
    key <AD08> { [ c, C, ccedilla, dead_abovedot ] };

    key <AC01> { [ a, A, agrave ] };
    key <AC02> { [ o, O, ocircumflex ] };
    key <AC03> { [ e, E, eacute ] };
    key <AC04> { [ u, U, ucircumflex ] };
    key <AC05> { [ i, I, icircumflex ] };
    key <AC10> { [ s, S, ssharp ] };

    key <AB01> { [ semicolon, colon, acircumflex ] };
    key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
    key <AB03> { [ j, J, egrave, dead_doubleacute ] };
    key <AB04> { [ k, K, ugrave ] };
    key <AB05> { [ x, X, idiaeresis ] };

    include "level3(ralt_switch)"
    };

    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, left-handed)";

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ bracketright, braceright ] };
    key <AE03> { [ slash, question ] };
    key <AE04> { [ p, P ] };
    key <AE05> { [ f, F ] };
    key <AE06> { [ m, M ] };
    key <AE07> { [ l, L ] };
    key <AE08> { [ j, J ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 3, numbersign ] };
    key <AE11> { [ 2, at ] };
    key <AE12> { [ 1, exclam ] };

    key <AD01> { [ semicolon, colon ] };
    key <AD02> { [ q, Q ] };
    key <AD03> { [ b, B ] };
    key <AD04> { [ y, Y ] };
    key <AD05> { [ u, U ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ o, O ] };
    key <AD09> { [ period, greater ] };
    key <AD10> { [ 6, asciicircum ] };
    key <AD11> { [ 5, percent ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ minus, underscore ] };
    key <AC02> { [ k, K ] };
    key <AC03> { [ c, C ] };
    key <AC04> { [ d, D ] };
    key <AC05> { [ t, T ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ e, E ] };
    key <AC08> { [ a, A ] };
    key <AC09> { [ z, Z ] };
    key <AC10> { [ 8, asterisk ] };
    key <AC11> { [ 7, ampersand ] };

    key <AB01> { [ apostrophe, quotedbl ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ g, G ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ w, W ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ i, I ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ 0, parenright ] };
    key <AB10> { [ 9, parenleft ] };
    };

    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, right-handed)";

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ j, J ] };
    key <AE06> { [ l, L ] };
    key <AE07> { [ m, M ] };
    key <AE08> { [ f, F ] };
    key <AE09> { [ p, P ] };
    key <AE10> { [ slash, question ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright ] };

    key <AD01> { [ 5, percent ] };
    key <AD02> { [ 6, asciicircum ] };
    key <AD03> { [ q, Q ] };
    key <AD04> { [ period, greater ] };
    key <AD05> { [ o, O ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ y, Y ] };
    key <AD10> { [ b, B ] };
    key <AD11> { [ semicolon, colon ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ 7, ampersand ] };
    key <AC02> { [ 8, asterisk ] };
    key <AC03> { [ z, Z ] };
    key <AC04> { [ a, A ] };
    key <AC05> { [ e, E ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ t, T ] };
    key <AC08> { [ d, D ] };
    key <AC09> { [ c, C ] };
    key <AC10> { [ k, K ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ 9, parenleft ] };
    key <AB02> { [ 0, parenright ] };
    key <AB03> { [ x, X ] };
    key <AB04> { [ comma, less ] };
    key <AB05> { [ i, I ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ w, W ] };
    key <AB08> { [ v, V ] };
    key <AB09> { [ g, G ] };
    key <AB10> { [ apostrophe, quotedbl ] };
    };

    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {

    name[Group1]= "English (classic Dvorak)";

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ 7, ampersand ] };
    key <AE03> { [ 5, percent ] };
    key <AE04> { [ 3, numbersign ] };
    key <AE05> { [ 1, exclam ] };
    key <AE06> { [ 9, parenleft, dead_grave] };
    key <AE07> { [ 0, parenright ] };
    key <AE08> { [ 2, at ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE11> { [ 8, asterisk ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ slash, question ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };
    key <BKSL> { [ backslash, bar ] };
    };

    // programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    // Patch suggestions should be sent upstream.
    partial alphanumeric_keys
    xkb_symbols "dvp" {

    include "us(dvorak)"
    name[Group1] = "English (programmer Dvorak)";

    // Unmodified Shift AltGr Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
    key <AE01> { [ ampersand, percent ] };
    key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang
    key <AE12> { [ numbersign, grave, dead_grave ] };
    key <BKSP> { [ BackSpace, BackSpace ] };

    // upper row, left side
    key <AD01> { [ semicolon, colon, dead_diaeresis ] };
    key <AD02> { [ comma, less, guillemotleft, U201C ] };
    key <AD03> { [ period, greater, guillemotright, U201D ] };
    key <AD04> { [ p, P, paragraph, section ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c, C, ccedilla, Ccedilla ] };
    key <AD09> { [ r, R, registered, trademark ] };
    key <AD11> { [ slash, question, questiondown, U203D ] }; // interrobang
    key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ o, O, oslash, Ooblique ] };
    key <AC03> { [ e, E, ae, AE ] };
    key <AC04> { [ u, U, eacute, Eacute ] };

    // home row, right side
    key <AC06> { [ d, D, eth, ETH ] };
    key <AC07> { [ h, H, dead_acute ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp ] };
    key <AC11> { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash, bar ] };

    // lower row, left side
    key <AB01> { [ apostrophe, quotedbl, dead_acute ] };

    // do NOT hardcode this switch; use lv3:ralt_switch option instead!
    //include "level3(ralt_switch)"
    };

    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17

    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.

    partial alphanumeric_keys
    xkb_symbols "rus" {

    include "us(basic)"
    name[Group1]= "Russian (US, phonetic)";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
    key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
    key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
    key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
    key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
    key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
    key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
    key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
    key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
    key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
    key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
    key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
    key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
    key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
    key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
    key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
    key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
    key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
    key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
    key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
    key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
    key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
    key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "mac" {

    include "us(basic)"
    name[Group1]= "English (Macintosh)";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [ section, plusminus, section, plusminus ] };
    key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
    key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
    key <AE02> { [ 2, at, trademark, EuroSign ] };
    key <AE03> { [ 3, numbersign, sterling, U2039 ] };
    key <AE04> { [ 4, dollar, cent, U203A ] };
    key <AE05> { [ 5, percent, infinity, UFB01 ] };
    key <AE06> { [ 6,asciicircum, section, UFB02 ] };
    key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
    key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
    key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
    key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, notequal, plusminus ] };

    key <AD01> { [ q, Q, oe, OE ] };
    key <AD02> { [ w, W, U2211,doublelowquotemark] };
    key <AD03> { [ e, E, dead_acute, acute ] };
    key <AD04> { [ r, R, registered, U2030 ] };
    key <AD05> { [ t, T, dagger, dead_caron ] };
    key <AD06> { [ y, Y, yen, onequarter ] };
    key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
    key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
    key <AD09> { [ o, O, oslash, Ooblique ] };
    key <AD10> { [ p, P, Greek_pi, U220F ] };
    key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };

    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ s, S, ssharp, dead_stroke ] };
    key <AC03> { [ d, D, partialderivative, eth ] };
    key <AC04> { [ f, F, function, dead_hook ] };
    key <AC05> { [ g, G, copyright, dead_doubleacute ] };
    key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
    key <AC07> { [ j, J, U2206, onehalf ] };
    key <AC08> { [ k, K,dead_abovering, UF8FF ] };

    key <AC09> { [ l, L, notsign, THORN ] };
    key <AC10> { [ semicolon, colon, U2026, thorn ] };
    key <AC11> { [apostrophe, quotedbl, ae, AE ] };

    key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
    key <AB02> { [ x, X, U2248, dead_ogonek ] };
    // unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, squareroot, U25CA ] };
    key <AB05> { [ b, B, integral, idotless ] };
    key <AB06> { [ n, N, dead_tilde, U02DC ] };
    key <AB07> { [ m, M, mu, threequarters ] };
    key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
    key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
    key <AB10> { [ slash, question, division, questiondown ] };

    include "level3(ralt_switch)"
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/

    partial alphanumeric_keys
    xkb_symbols "colemak" {

    include "us"
    name[Group1]= "English (Colemak)";

    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)"
    };

    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // does not fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an é (eacute) in two strokes
    // as well? I type ' more often than é (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan

    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {

    include "us(intl)"
    name[Group1]= "English (intl., with AltGr dead keys)";

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
    key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
    key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
    key <AB02> { [ x, X, oe, OE ] };
    key <AB04> { [ v, V, registered, registered ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard does not have AltGr key. The EuroSign is engraved at 5 key.

    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
    include "us(basic)"
    name[Group1]= "English (US)";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "eurosign(5)"
    include "level3(switch)"
    };

    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
    include "us(intl)"
    name[Group1]= "USA - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    onehalf, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    threequarters, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "USA - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KPSU> { [ KP_Subtract, KP_Subtract ] };

    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KPAD> { [ KP_Add, KP_Add,
    dead_ogonek, dead_diaeresis ] };

    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_circumflex ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    dead_hook, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
    include "us(altgr-intl)"
    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    dead_horn, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    dead_ogonek, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP1> { [ KP_End, KP_1,
    idiaeresis, Idiaeresis ] };
    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // OLPC international US English keyboard layout.
    // It's a little different from the usual international layout.
    // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
    key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
    key <AC12> { [ backslash, bar, section, section ] };

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc2" {
    include "us(olpc)"
    name[Group1]= "English (the divide/multiply keys toggle the layout)";
    include "group(olpc)"
    };

    xkb_symbols "olpcm" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // Mechanical (non-membrane) OLPC int'l US English keyboard layout.
    // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    // no AC11 or AC12 on olpcm

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <AA02> { [ backslash, bar, section, section ] };
    key <AA06> { [ equal, plus, 0x1000303, 0x1000303 ] };
    key <AA07> { [ apostrophe, quotedbl, currency, currency ] };

    include "level3(ralt_switch)"
    };

    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm

    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {

    name[Group1]= "Cherokee";
    key.type[group1]="ALPHABETIC";

    key <TLDE> { [ grave, U13CA ] };
    key <AE01> { [ 1, U13B1 ] };
    key <AE02> { [ 2, U13C7 ] };
    key <AE03> { [ 3, U13E7 ] };
    key <AE04> { [ U13D9, U13B0 ] };
    key <AE05> { [ U13E6, U13B9 ] };
    key <AE06> { [ U13DC, U13DD ] };
    key <AE07> { [ U13CB, U13E1 ] };
    key <AE08> { [ U13D6, U13BA ] };
    key <AE09> { [ U13D2, parenleft ] };
    key <AE10> { [ U13C4, parenright ] };
    key <AE11> { [ U13BF, U13BC ] };
    key <AE12> { [ U13F3, U13BD ] };

    key <AD01> { [ U13AA, U13C6 ] };
    key <AD02> { [ U13B3, U13EB ] };
    key <AD03> { [ U13A1, U13E3 ] };
    key <AD04> { [ U13DB, U13CF ] };
    key <AD05> { [ U13D4, U13D8 ] };
    key <AD06> { [ U13EF, U13F2 ] };
    key <AD07> { [ U13A4, U13AD ] };
    key <AD08> { [ U13A2, U13F1 ] };
    key <AD09> { [ U13A3, U13EC ] };
    key <AD10> { [ U13C1, U13EA ] };
    key <AD11> { [ U13D5, U13D1 ] };
    key <AD12> { [ U13B6, U13E4 ] };
    key <BKSL> { [ U13E9, U13EE ] };

    key <AC01> { [ U13A0, U13CC ] };
    key <AC02> { [ U13CD, U13CE ] };
    key <AC03> { [ U13D7, U13D0 ] };
    key <AC04> { [ U13A9, U13C8 ] };
    key <AC05> { [ U13A6, U13E5 ] };
    key <AC06> { [ U13AF, U13B2 ] };
    key <AC07> { [ U13DA, U13AB ] };
    key <AC08> { [ U13B8, U13A7 ] };
    key <AC09> { [ U13B5, U13AE ] };
    key <AC10> { [ U13E8, U13E0 ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ U13AC, U13C3 ] };
    key <AB02> { [ U13F4, U13ED ] };
    key <AB03> { [ U13D3, U13DF ] };
    key <AB04> { [ U13A5, U13DE ] };
    key <AB05> { [ U13A8, U13F0 ] };
    key <AB06> { [ U13BE, U13BB ] };
    key <AB07> { [ U13C5, U13B7 ] };
    key <AB08> { [ comma, U13E2 ] };
    key <AB09> { [ period, U13B4 ] };
    key <AB10> { [ U13C2, U13C9 ] };
    };

    // Serbian charecters added as third level symbols to US keyboard layout.

    partial alphanumeric_keys
    xkb_symbols "hbs" {

    include "us"
    name[Group1]= "Serbo-Croatian (US)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
    key <AE08> { [ 8, asterisk, multiply, division ] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AC09> { [ l, L, U1C9, U1C8 ] };
    key <AB06> { [ n, N, U1CC, U1CB ] };
    key <AB01> { [ z, Z, U1C6, U1C5 ] };
    key <AD03> { [ e, E, EuroSign, cent ] };
    key <AC03> { [ d, D, dstroke, Dstroke ] };
    key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
    key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
    key <AB08> { [ comma, less, U3003, guillemotright ] };
    key <AB09> { [ period, greater, ellipsis, guillemotleft ] };

    include "level3(ralt_switch)"
    };

    //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
    partial alphanumeric_keys
    xkb_symbols "htcdream" {
    include "inet(htcdream)"
    name[Group1]= "English (US)";

    //second row
    key <AD01> { [ q, Q, Tab, Tab ] };
    key <AD02> { [ w, W, grave, grave ] };
    key <AD03> { [ e, E, underscore, underscore ] };
    key <AD04> { [ r, R, sterling, sterling ] };
    key <AD05> { [ t, T, EuroSign, EuroSign ] };
    key <AD06> { [ y, Y, division, division ] };
    key <AD07> { [ u, U, multiply, multiply ] };
    key <AD08> { [ i, I, minus, minus ] };
    key <AD09> { [ o, O, plus, plus ] };
    key <AD10> { [ p, P, equal, equal ] };

    //third row
    key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
    key <AC02> { [ s, S, bar, bar ] };
    key <AC03> { [ d ,D, backslash, backslash ] };
    key <AC04> { [ f, F, braceleft, braceleft ] };
    key <AC05> { [ g, G, braceright, braceright ] };
    key <AC06> { [ h, H, colon, colon ] };
    key <AC07> { [ j, J, semicolon, semicolon ] };
    key <AC08> { [ k, K, quotedbl, quotedbl ] };
    key <AC09> { [ l, L, apostrophe, apostrophe ] };

    //forth row
    key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
    key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
    key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
    key <AB04> { [ v, V, bracketleft, bracketleft ] };
    key <AB05> { [ b, B, bracketright, bracketright ] };
    key <AB06> { [ n, N, less, less ] };
    key <AB07> { [ m, M, greater, greater ] };
    key <AB08> { [ comma, comma, question, question ] };

    //fifth row
    key <FK15> { [ at, at, asciitilde, asciitilde ] };

    include "level3(alt_switch)"
    };

    // Workman Keyboard Layout symbols for xkb on X.Org Server 7.x
    // 09-06-2010 OJ Bucao. http://www.workmanlayout.com

    partial alphanumeric_keys
    xkb_symbols "workman" {

    include "us(basic)"
    name[Group1]= "English (Workman)";

    key <AD01> { [ q, Q ] };
    key <AD02> { [ d, D ] };
    key <AD03> { [ r, R ] };
    key <AD04> { [ w, W ] };
    key <AD05> { [ b, B ] };
    key <AD06> { [ j, J ] };
    key <AD07> { [ f, F ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ p, P ] };
    key <AD10> { [ semicolon, colon ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ h, H ] };
    key <AC04> { [ t, T ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ y, Y ] };
    key <AC07> { [ n, N ] };
    key <AC08> { [ e, E ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ i, I ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ m, M ] };
    key <AB04> { [ c, C ] };
    key <AB05> { [ v, V ] };
    key <AB06> { [ k, K ] };
    key <AB07> { [ l, L ] };

    key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "workman-intl" {

    include "us(intl)"
    name[Group1]= "English (Workman, intl., with dead keys)";

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ d, D, eth, ETH ] };
    key <AD03> { [ r, R, registered, registered ] };
    key <AD04> { [ w, W, aring, Aring ] };
    key <AD05> { [ b, B, b, B ] };
    key <AD06> { [ j, J, j, J ] };
    key <AD07> { [ f, F, f, F ] };
    key <AD08> { [ u, U, uacute, Uacute ] };
    key <AD09> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD10> { [ semicolon, colon, paragraph, degree ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ h, H, h, H ] };
    key <AC04> { [ t, T, thorn, THORN ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AC07> { [ n, N, ntilde, Ntilde ] };
    key <AC08> { [ e, E, eacute, Eacute ] };
    key <AC09> { [ o, O, oacute, Oacute ] };
    key <AC10> { [ i, I, iacute, Iacute ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ m, M, mu, mu ] };
    key <AB04> { [ c, C, copyright, cent ] };
    key <AB05> { [ v, V, v, V ] };
    key <AB06> { [ k, K, oe, OE ] };
    key <AB07> { [ l, L, oslash, Ooblique ] };

    key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };

    include "level3(ralt_switch)"
    };

    // Norman keyboard layout symbols for xkb on X.Org Server 7.x
    // Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info
    // To the extent possible under law, the author(s) have dedicated all
    // copyright and related and neighboring rights to this software to the
    // public domain worldwide. This software is distributed without any warranty.

    partial alphanumeric_keys
    xkb_symbols "norman" {

    include "us(basic)"
    name[Group1]= "English (Norman)";

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ d, D ] };
    key <AD04> { [ f, F ] };
    key <AD05> { [ k, K ] };
    key <AD06> { [ j, J ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ r, R ] };
    key <AD09> { [ l, L ] };
    key <AD10> { [ semicolon, colon ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ t, T ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ y, Y ] };
    key <AC07> { [ n, N ] };
    key <AC08> { [ i, I ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ h, H ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ p, P ] };
    key <AB07> { [ m, M ] };

    key <CAPS> { [ BackSpace ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/

    partial alphanumeric_keys
    xkb_symbols "carpalx" {

    name[Group1]= "English (Carpalx)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ g, G ] };
    key <AD03> { [ m, M ] };
    key <AD04> { [ l, L ] };
    key <AD05> { [ w, W ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ f, F ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ b, B ] };
    key <AD10> { [ semicolon, colon ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ d, D ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ t, T ] };
    key <AC04> { [ n, N ] };
    key <AC05> { [ r, R ] };
    key <AC06> { [ i, I ] };
    key <AC07> { [ a, A ] };
    key <AC08> { [ e, E ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ h, H ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ j, J ] };
    key <AB06> { [ k, K ] };
    key <AB07> { [ p, P ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-intl" {

    include "us(carpalx)"
    name[Group1]= "English (Carpalx, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, degree, paragraph ] };
    key <AD02> { [ g, G, U011F, U011E ] };
    key <AD03> { [ m, M, mu, mu ] };
    key <AD04> { [ l, L, copyright, cent ] };
    key <AD05> { [ w, W, w, W ] };
    key <AD06> { [ y, Y, idiaeresis, Idiaeresis ] };
    key <AD07> { [ f, F, adiaeresis, Adiaeresis ] };
    key <AD08> { [ u, U, udiaeresis, Udiaeresis ] };
    key <AD09> { [ b, B, odiaeresis, Odiaeresis ] };
    key <AD10> { [ semicolon, colon, oslash, Ooblique ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ d, D, eth, ETH ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ t, T, thorn, THORN ] };
    key <AC04> { [ n, N, ntilde, Ntilde ] };
    key <AC05> { [ r, R, registered, registered ] };
    key <AC06> { [ i, I, iacute, Iacute ] };
    key <AC07> { [ a, A, aacute, Aacute ] };
    key <AC08> { [ e, E, eacute, Eacute ] };
    key <AC09> { [ o, O, oacute, Oacute ] };
    key <AC10> { [ h, H, uacute, Uacute ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, z, Z ] };
    key <AB02> { [ x, X, U015F, U015E ] };
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, ae, AE ] };
    key <AB05> { [ j, J, oe, OE ] };
    key <AB06> { [ k, K, U0131, U0130 ] };
    key <AB07> { [ p, P, aring, Aring ] };
    key <AB08> { [ comma, less, ediaeresis, Ediaeresis ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and us(altgr-intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-altgr-intl" {

    include "us(carpalx-intl)"
    name[Group1]= "English (Carpalx, intl., with AltGr dead keys)";

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/

    partial alphanumeric_keys
    xkb_symbols "carpalx-full" {

    include "us(carpalx)"
    name[Group1]= "English (Carpalx, full optimization)";

    key <AD06> { [ b, B ] };
    key <AD07> { [ y, Y ] };
    key <AD09> { [ v, V ] };

    key <AB04> { [ f, F ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-full-intl" {

    include "us(carpalx-intl)"
    name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)";

    key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
    key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
    key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };

    key <AB04> { [ f, F, ae, AE ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and us(altgr-intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-full-altgr-intl" {

    include "us(carpalx-altgr-intl)"
    name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)";

    key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
    key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
    key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };

    key <AB04> { [ f, F, ae, AE ] };
    };

    // EXTRAS:

    // Czech, Slovak and German charecters added as third level symbols to US keyboard layout.
    partial alphanumeric_keys
    xkb_symbols "cz_sk_de" {

    include "us"
    name[Group1]="Czech Slovak and German (US)";

    key <TLDE> { [grave, asciitilde, uring, Uring ] };
    key <AE01> { [ 1, exclam, uacute, Uacute ] };
    key <AE02> { [ 2, at, ecaron, Ecaron ] };
    key <AE03> { [ 3, numbersign, scaron, Scaron ] };
    key <AE04> { [ 4, dollar, ccaron, Ccaron ] };
    key <AE05> { [ 5, percent, rcaron, Rcaron ] };
    key <AE06> { [ 6, asciicircum, zcaron, Zcaron ] };
    key <AE07> { [ 7, ampersand, yacute, Yacute ] };
    key <AE08> { [ 8, asterisk, aacute, Aacute ] };
    key <AE09> { [ 9, parenleft, iacute, Iacute ] };
    key <AE10> { [ 0, parenright, eacute, Eacute ] };
    key <AE11> { [minus, underscore, ssharp, 0x1001E9E ] };
    key <AE12> { [equal, plus, dead_acute, dead_caron ] };

    key <AD03> { [ e, E, EuroSign, Eacute ] };

    key <AD11> { [bracketleft, braceleft, udiaeresis, Udiaeresis ] };
    key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
    key <AC11> { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD06> { [ y, Y, yacute, Yacute ] };
    key <AD07> { [ u, U, uring, Uring ] };

    key <AC02> { [ s, S, scaron, Scaron ] };
    key <AB01> { [ z, Z, zcaron, Zcaron ] };
    key <AB03> { [ c, C, ccaron, Ccaron ] };
    key <AD04> { [ r, R, rcaron, Rcaron ] };
    key <AD05> { [ t, T, tcaron, Tcaron ] };
    key <AC03> { [ d, D, dcaron, Dcaron ] };
    key <AB06> { [ n, N, ncaron, Ncaron ] };
    key <AC09> { [ l, L, lcaron, Lcaron ] };
    key <AD10> { [ p, P,ocircumflex, Ocircumflex ] };

    key <SPCE> { [ space, space, nobreakspace, nobreakspace] };

    include "level3(ralt_switch)"
    };

    // 03 December 2017 - Added us(scn), please refer to
    // Cadèmia Siciliana <l10n@cademiasiciliana.org>
    partial alphanumeric_keys
    xkb_symbols "scn" {

    include "us(intl)"
    name[Group1]="Sicilian (US keyboard)";

    key <AD03> { [ e, E, U0259, U018F ] };
    key <AC03> { [ d, D, U1E0D, U1E0C ] };
    key <AC04> { [ f, F, U0111, U0110 ] };
    key <AC06> { [ h, H, U1E25, U1E24 ] };
    key <AB02> { [ x, X, U03C7, U03A7 ] };
    key <AB09> { [ period, greater, U1D58, dead_caron ] };

    include "level3(ralt_switch)"
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does not deviate from the lame MS-style
    // US-intl layout; but it uses AltGr for combining, like altgr-intl.
    //
    // This might break your font layout layout systems (because they
    // suck), caveat emptor. Also, most of today's software will count
    // individual combining marks for selection, deletion, character
    // counting &c., and won't be smart enough to do canonical equivalence
    // when searching, &c.
    //
    // With Unicode combining you use "handwriting order", not
    // "typewriting order" as with deadkeys. That is, you first type the
    // base character, then the diacritics/accents/modifiers. This has
    // the advantage of avoiding hidden states --- each keypress changes
    // something on screen.
    //
    // TODO: as of now, this duplicates all us(intl) functionality with
    // combining. With care, perhaps we could add more combining marks
    // not present in intl, and support all major languages.
    partial alphanumeric_keys
    xkb_symbols "intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining)";

    include "us(intl)"
    include "level3(ralt_switch)"

    // grave, tilde
    key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
    // double acute
    key <AE02> { [ 2, at, twosuperior, U030B ] };
    // macron
    key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
    // circumflex
    key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
    // horn
    key <AE07> { [ 7, ampersand, onehalf, U031B ] };
    // ogonek
    key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
    // breve
    key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
    // abovering
    key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };

    // belowdot
    key <AE11> { [ minus, underscore, yen, U0323 ] };
    // acute, diaeresis
    key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
    // abovedot, caron
    key <AB09> { [ period, greater, U0307, U030C ] };
    // hook
    key <AB10> { [ slash, question, questiondown, U0309 ] };

    // alt-intl compatibility
    // cedilla, caron
    key <AB08> { [ comma, less, U0327, U030C ] };
    // ogonek, diaeresis
    key <AC10> { [ semicolon, colon, U0328, U0308 ] };
    // doubleacute, horn
    key <AE12> { [ equal, plus, U030B, U031B ] };

    // we don't do combining latin letters and combining enclosures
    // because support for those is very rare.
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does break compatibility with us-intl,
    // whenever I thought it would be more mnemonic or Unicodeish.
    partial alphanumeric_keys
    xkb_symbols "alt-intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining, alternative)";

    include "us(intl-unicode)"

    // easier macron; em-dash.
    // em-dash is available via compose, but I added here since it's such
    // an important typographic character.
    key <AE11> { [ minus, underscore, U0304, U2014 ] };

    // belowdot, abovedot (caron at coma/less key, per above)
    key <AB09> { [ period, greater, U0323, U0307 ] };

    };

    partial alphanumeric_keys
    xkb_symbols "ats" {

    include "us"
    name[Group1]= "Atsina";

    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
    //q, l, t, s, m, g, k, p, w, y, r
    //XCompose key is used for the other accute and grave.

    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD11> { [ bracketleft, braceleft, U03B8 ] };
    key <AD12> { [ bracketright, braceright, U010D, U010C ] };
    //U+010C (uppercase Č) and U+010D (lowercase č).

    key <AC01> { [ a, A, aacute, Aacute ] };

    //Small letter Open use compose to key get acute accent
    key <AB03> { [ c, C, U0254, U0186 ] };
    key <AB08> { [ comma, less, U0313 ] };
    key <AB10> { [ slash, question, U0294 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };

    partial alphanumeric_keys
    xkb_symbols "crd" {

    include "us"
    name[Group1]= "Coeur d'Alene Salish";

    key <AD02> { [ w, W, U02B7, U02B7 ] };
    key <AE07> { [ 7, ampersand, U0294 ] };
    key <AD01> { [ q, Q, U221A ] };
    key <AB04> { [ v, V, U0259 ] };
    key <BKSL> { [ backslash, bar, U026B ] };
    key <AD03> { [ e, E, U025B ] };
    key <AD08> { [ i, I, U026A ] };
    key <AC07> { [ j, J, U01F0 ] };
    key <AE06> { [ 6, asciicircum, U0295 ] };
    key <AC02> { [ s, S, U0161 ] };
    key <AB03> { [ c, C, U010D ] };
    key <AD09> { [ o, O, U0254 ] };
    key <AB09> { [ period, greater, U0323 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };


    partial alphanumeric_keys
    xkb_symbols "sun_type6" {
    include "sun_vndr/us(sun_type6)"
    };
  3. Tarrasch revised this gist Jun 3, 2019. 2 changed files with 1828 additions and 3 deletions.
    18 changes: 15 additions & 3 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,8 @@ which are independent of the language.

    Paste this in your terminal

    TODO: use the dated "us.xkb" file????

    GISTDIR='https://gist.githubusercontent.com/Tarrasch/1293692/raw'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us.xkb" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null
    @@ -54,9 +56,19 @@ and then just reselecting your keyboard layout (hint taken from [here](https://h

    ## Debugging

    `xkbcomp` seems to both "reload everything" and compile and use `keymap.xkb` in
    the following command.
    There's been a recent article
    [here](https://medium.com/@damko/a-simple-humble-but-comprehensive-guide-to-xkb-for-linux-6f1ad5e13450)
    (it's from 2016, I wrote this in 2019). Not everything applies but it's a
    worthwhile refresher since it's so recent and written in a humble way.

    To run a manually updated file:

    sudo cp us-2019-06-03.xkb /usr/share/X11/xkb/symbols/us && setxkbmap -layout us -variant colemak

    I also tried to get the AltGr to be more "deep down" so more programs respect my arrow keys (see commits 1-2 years ago). To work on that one can run:

    sudo cp us-2019-06-03.xkb /usr/share/X11/xkb/symbols/us && xkbcomp keymap.xkb :0

    sudo cp us.xkb /usr/share/X11/xkb/symbols/us && xkbcomp keymap.xkb :0
    `xkbcomp` seems to both "reload everything" and compile and use `keymap.xkb`.

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
    1,813 changes: 1,813 additions & 0 deletions us-2019-06-03.xkb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1813 @@
    default partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "English (US)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    };

    partial alphanumeric_keys
    xkb_symbols "euro" {

    include "us(basic)"
    name[Group1]= "English (US, euro on 5)";

    include "eurosign(5)"

    include "level3(ralt_switch)"
    };


    partial alphanumeric_keys
    xkb_symbols "ibm238l" {

    include "us(basic)"
    name[Group1]= "English (US, IBM Arabic 238_L)";

    key <AB08> { [ comma, comma ] };
    key <AB09> { [ period, period ] };
    key <BKSL> { [ quoteleft, asciitilde ] };
    key <LSGT> { [ backslash, bar ] };
    key <TLDE> { [ leftcaret, rightcaret ] };
    };

    partial alphanumeric_keys
    xkb_symbols "intl" {

    include "us(basic)"
    name[Group1]= "English (US, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD04> { [ r, R, registered, registered ] };
    key <AD05> { [ t, T, thorn, THORN ] };
    key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, f, F ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ h, H, h, H ] };
    key <AC07> { [ j, J, j, J ] };
    key <AC08> { [ k, K, oe, OE ] };

    key <AC09> { [ l, L, oslash, Ooblique ] };
    key <AC10> { [ semicolon, colon, paragraph, degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ c, C, copyright, cent ] };
    key <AB04> { [ v, V, v, V ] };
    key <AB05> { [ b, B, b, B ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)

    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis

    partial alphanumeric_keys
    xkb_symbols "alt-intl" {

    include "us"
    name[Group1]= "English (US, alt. intl.)";

    key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE05> { [ 5, percent, EuroSign ] };
    key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
    key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };

    key <AD03> { [ e, E, EuroSign, cent ] };

    key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
    key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
    key <AB10> { [ slash, question, dead_hook, dead_hook ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // based on a keyboard map from an 'xkb/symbols/dk' file

    partial alphanumeric_keys
    xkb_symbols "dvorak" {

    name[Group1]= "English (Dvorak)";

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft, dead_grave] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ slash, question ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Dvorak intl., with dead keys
    // Olivier Mehani (shtrom-xorg@ssji.net)
    // Reproduce the per-key mapping of us(intl) for the dvorak layout
    // aka "I just swapped my keys over"
    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
    key <AD02> { [ comma, less, ccedilla, Ccedilla ] };
    key <AD03> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AD04> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
    // key <AD06> { [ f, F ] };
    // key <AD07> { [ g, G ] };
    key <AD08> { [ c, C, copyright, cent ] };
    key <AD09> { [ r, R, registered, registered ] };
    key <AD10> { [ l, L, oslash, Ooblique ] };
    key <AD11> { [ slash, question, questiondown, dead_hook ] };
    // key <AD12> { [ equal, plus, multiply, division ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ o, O, oacute, Oacute ] };
    key <AC03> { [ e, E, eacute, Eacute ] };
    key <AC04> { [ u, U, uacute, Uacute ] };
    key <AC05> { [ i, I, iacute, Iacute ] };
    key <AC06> { [ d, D, eth, ETH ] };
    // key <AC07> { [ h, H ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp, section ] };
    // key <AC11> { [ minus, underscore, yen, dead_belowdot ] };

    key <AB01> { [ semicolon, colon, paragraph, degree ] };
    key <AB02> { [ q, Q, adiaeresis, Adiaeresis ] };
    // key <AB03> { [ j, J ] };
    key <AB04> { [ k, K, oe, OE ] };
    // key <AB05> { [ x, X ] };
    // key <AB06> { [ b, B ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ w, W, aring, Aring ] };
    // key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z, ae, AE ] };

    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Dvorak international without dead keys
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
    // €
    //
    // ' , . p y f g c r l / =
    // ä ê ë ü ç
    //
    // a o e u i d h t n s -
    // à ô é û î ß
    //
    // ; q j k x b m w v z
    // â ö è ù ï

    partial alphanumeric_keys
    xkb_symbols "dvorak-alt-intl" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, alt. intl.)";

    key <AE04> { [ 4, dollar, EuroSign ] };

    key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
    key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
    key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
    key <AD05> { [ y, Y, udiaeresis ] };
    key <AD08> { [ c, C, ccedilla, dead_abovedot ] };

    key <AC01> { [ a, A, agrave ] };
    key <AC02> { [ o, O, ocircumflex ] };
    key <AC03> { [ e, E, eacute ] };
    key <AC04> { [ u, U, ucircumflex ] };
    key <AC05> { [ i, I, icircumflex ] };
    key <AC10> { [ s, S, ssharp ] };

    key <AB01> { [ semicolon, colon, acircumflex ] };
    key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
    key <AB03> { [ j, J, egrave, dead_doubleacute ] };
    key <AB04> { [ k, K, ugrave ] };
    key <AB05> { [ x, X, idiaeresis ] };

    include "level3(ralt_switch)"
    };

    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, left-handed)";

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ bracketright, braceright ] };
    key <AE03> { [ slash, question ] };
    key <AE04> { [ p, P ] };
    key <AE05> { [ f, F ] };
    key <AE06> { [ m, M ] };
    key <AE07> { [ l, L ] };
    key <AE08> { [ j, J ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 3, numbersign ] };
    key <AE11> { [ 2, at ] };
    key <AE12> { [ 1, exclam ] };

    key <AD01> { [ semicolon, colon ] };
    key <AD02> { [ q, Q ] };
    key <AD03> { [ b, B ] };
    key <AD04> { [ y, Y ] };
    key <AD05> { [ u, U ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ o, O ] };
    key <AD09> { [ period, greater ] };
    key <AD10> { [ 6, asciicircum ] };
    key <AD11> { [ 5, percent ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ minus, underscore ] };
    key <AC02> { [ k, K ] };
    key <AC03> { [ c, C ] };
    key <AC04> { [ d, D ] };
    key <AC05> { [ t, T ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ e, E ] };
    key <AC08> { [ a, A ] };
    key <AC09> { [ z, Z ] };
    key <AC10> { [ 8, asterisk ] };
    key <AC11> { [ 7, ampersand ] };

    key <AB01> { [ apostrophe, quotedbl ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ g, G ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ w, W ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ i, I ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ 0, parenright ] };
    key <AB10> { [ 9, parenleft ] };
    };

    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {

    include "us(dvorak)"
    name[Group1]= "English (Dvorak, right-handed)";

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ j, J ] };
    key <AE06> { [ l, L ] };
    key <AE07> { [ m, M ] };
    key <AE08> { [ f, F ] };
    key <AE09> { [ p, P ] };
    key <AE10> { [ slash, question ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright ] };

    key <AD01> { [ 5, percent ] };
    key <AD02> { [ 6, asciicircum ] };
    key <AD03> { [ q, Q ] };
    key <AD04> { [ period, greater ] };
    key <AD05> { [ o, O ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ y, Y ] };
    key <AD10> { [ b, B ] };
    key <AD11> { [ semicolon, colon ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ 7, ampersand ] };
    key <AC02> { [ 8, asterisk ] };
    key <AC03> { [ z, Z ] };
    key <AC04> { [ a, A ] };
    key <AC05> { [ e, E ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ t, T ] };
    key <AC08> { [ d, D ] };
    key <AC09> { [ c, C ] };
    key <AC10> { [ k, K ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ 9, parenleft ] };
    key <AB02> { [ 0, parenright ] };
    key <AB03> { [ x, X ] };
    key <AB04> { [ comma, less ] };
    key <AB05> { [ i, I ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ w, W ] };
    key <AB08> { [ v, V ] };
    key <AB09> { [ g, G ] };
    key <AB10> { [ apostrophe, quotedbl ] };
    };

    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {

    name[Group1]= "English (classic Dvorak)";

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ 7, ampersand ] };
    key <AE03> { [ 5, percent ] };
    key <AE04> { [ 3, numbersign ] };
    key <AE05> { [ 1, exclam ] };
    key <AE06> { [ 9, parenleft, dead_grave] };
    key <AE07> { [ 0, parenright ] };
    key <AE08> { [ 2, at ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE11> { [ 8, asterisk ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ slash, question ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };
    key <BKSL> { [ backslash, bar ] };
    };

    // programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    // Patch suggestions should be sent upstream.
    partial alphanumeric_keys
    xkb_symbols "dvp" {

    include "us(dvorak)"
    name[Group1] = "English (programmer Dvorak)";

    // Unmodified Shift AltGr Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
    key <AE01> { [ ampersand, percent ] };
    key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang
    key <AE12> { [ numbersign, grave, dead_grave ] };
    key <BKSP> { [ BackSpace, BackSpace ] };

    // upper row, left side
    key <AD01> { [ semicolon, colon, dead_diaeresis ] };
    key <AD02> { [ comma, less, guillemotleft, U201C ] };
    key <AD03> { [ period, greater, guillemotright, U201D ] };
    key <AD04> { [ p, P, paragraph, section ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c, C, ccedilla, Ccedilla ] };
    key <AD09> { [ r, R, registered, trademark ] };
    key <AD11> { [ slash, question, questiondown, U203D ] }; // interrobang
    key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ o, O, oslash, Ooblique ] };
    key <AC03> { [ e, E, ae, AE ] };
    key <AC04> { [ u, U, eacute, Eacute ] };

    // home row, right side
    key <AC06> { [ d, D, eth, ETH ] };
    key <AC07> { [ h, H, dead_acute ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp ] };
    key <AC11> { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash, bar ] };

    // lower row, left side
    key <AB01> { [ apostrophe, quotedbl, dead_acute ] };

    // do NOT hardcode this switch; use lv3:ralt_switch option instead!
    //include "level3(ralt_switch)"
    };

    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17

    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.

    partial alphanumeric_keys
    xkb_symbols "rus" {

    include "us(basic)"
    name[Group1]= "Russian (US, phonetic)";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
    key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
    key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
    key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
    key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
    key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
    key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
    key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
    key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
    key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
    key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
    key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
    key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
    key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
    key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
    key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
    key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
    key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
    key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
    key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
    key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
    key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
    key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "mac" {

    include "us(basic)"
    name[Group1]= "English (Macintosh)";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [ section, plusminus, section, plusminus ] };
    key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
    key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
    key <AE02> { [ 2, at, trademark, EuroSign ] };
    key <AE03> { [ 3, numbersign, sterling, U2039 ] };
    key <AE04> { [ 4, dollar, cent, U203A ] };
    key <AE05> { [ 5, percent, infinity, UFB01 ] };
    key <AE06> { [ 6,asciicircum, section, UFB02 ] };
    key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
    key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
    key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
    key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, notequal, plusminus ] };

    key <AD01> { [ q, Q, oe, OE ] };
    key <AD02> { [ w, W, U2211,doublelowquotemark] };
    key <AD03> { [ e, E, dead_acute, acute ] };
    key <AD04> { [ r, R, registered, U2030 ] };
    key <AD05> { [ t, T, dagger, dead_caron ] };
    key <AD06> { [ y, Y, yen, onequarter ] };
    key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
    key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
    key <AD09> { [ o, O, oslash, Ooblique ] };
    key <AD10> { [ p, P, Greek_pi, U220F ] };
    key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };

    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ s, S, ssharp, dead_stroke ] };
    key <AC03> { [ d, D, partialderivative, eth ] };
    key <AC04> { [ f, F, function, dead_hook ] };
    key <AC05> { [ g, G, copyright, dead_doubleacute ] };
    key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
    key <AC07> { [ j, J, U2206, onehalf ] };
    key <AC08> { [ k, K,dead_abovering, UF8FF ] };

    key <AC09> { [ l, L, notsign, THORN ] };
    key <AC10> { [ semicolon, colon, U2026, thorn ] };
    key <AC11> { [apostrophe, quotedbl, ae, AE ] };

    key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
    key <AB02> { [ x, X, U2248, dead_ogonek ] };
    // unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, squareroot, U25CA ] };
    key <AB05> { [ b, B, integral, idotless ] };
    key <AB06> { [ n, N, dead_tilde, U02DC ] };
    key <AB07> { [ m, M, mu, threequarters ] };
    key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
    key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
    key <AB10> { [ slash, question, division, questiondown ] };

    include "level3(ralt_switch)"
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/

    // Swedish version by Arash Rouhani (03 June 2019)
    // This is a reattempt after things got broken and I needed to do things fresh
    // again to relearn. At some point last month hell broke loose when my laptop
    // wouldn't boot.
    //
    partial alphanumeric_keys
    xkb_symbols "colemak" {

    include "us"
    name[Group1]= "English (Colemak)";

    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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    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, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis ] };
    key <AC02> { [ r, R, Escape, Escape ] };
    key <AC03> { [ s, S, Left, Left ] };
    key <AC04> { [ t, T, Right, Right ] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down ] };
    key <AC08> { [ e, E, Up, Up ] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    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)"
    };

    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // does not fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an é (eacute) in two strokes
    // as well? I type ' more often than é (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan

    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {

    include "us(intl)"
    name[Group1]= "English (intl., with AltGr dead keys)";

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
    key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
    key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
    key <AB02> { [ x, X, oe, OE ] };
    key <AB04> { [ v, V, registered, registered ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard does not have AltGr key. The EuroSign is engraved at 5 key.

    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
    include "us(basic)"
    name[Group1]= "English (US)";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "eurosign(5)"
    include "level3(switch)"
    };

    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
    include "us(intl)"
    name[Group1]= "USA - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    onehalf, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    threequarters, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "USA - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KPSU> { [ KP_Subtract, KP_Subtract ] };

    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KPAD> { [ KP_Add, KP_Add,
    dead_ogonek, dead_diaeresis ] };

    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_circumflex ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    dead_hook, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
    include "us(altgr-intl)"
    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    dead_horn, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    dead_ogonek, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP1> { [ KP_End, KP_1,
    idiaeresis, Idiaeresis ] };
    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // OLPC international US English keyboard layout.
    // It's a little different from the usual international layout.
    // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
    key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
    key <AC12> { [ backslash, bar, section, section ] };

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc2" {
    include "us(olpc)"
    name[Group1]= "English (the divide/multiply keys toggle the layout)";
    include "group(olpc)"
    };

    xkb_symbols "olpcm" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // Mechanical (non-membrane) OLPC int'l US English keyboard layout.
    // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    // no AC11 or AC12 on olpcm

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <AA02> { [ backslash, bar, section, section ] };
    key <AA06> { [ equal, plus, 0x1000303, 0x1000303 ] };
    key <AA07> { [ apostrophe, quotedbl, currency, currency ] };

    include "level3(ralt_switch)"
    };

    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm

    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {

    name[Group1]= "Cherokee";
    key.type[group1]="ALPHABETIC";

    key <TLDE> { [ grave, U13CA ] };
    key <AE01> { [ 1, U13B1 ] };
    key <AE02> { [ 2, U13C7 ] };
    key <AE03> { [ 3, U13E7 ] };
    key <AE04> { [ U13D9, U13B0 ] };
    key <AE05> { [ U13E6, U13B9 ] };
    key <AE06> { [ U13DC, U13DD ] };
    key <AE07> { [ U13CB, U13E1 ] };
    key <AE08> { [ U13D6, U13BA ] };
    key <AE09> { [ U13D2, parenleft ] };
    key <AE10> { [ U13C4, parenright ] };
    key <AE11> { [ U13BF, U13BC ] };
    key <AE12> { [ U13F3, U13BD ] };

    key <AD01> { [ U13AA, U13C6 ] };
    key <AD02> { [ U13B3, U13EB ] };
    key <AD03> { [ U13A1, U13E3 ] };
    key <AD04> { [ U13DB, U13CF ] };
    key <AD05> { [ U13D4, U13D8 ] };
    key <AD06> { [ U13EF, U13F2 ] };
    key <AD07> { [ U13A4, U13AD ] };
    key <AD08> { [ U13A2, U13F1 ] };
    key <AD09> { [ U13A3, U13EC ] };
    key <AD10> { [ U13C1, U13EA ] };
    key <AD11> { [ U13D5, U13D1 ] };
    key <AD12> { [ U13B6, U13E4 ] };
    key <BKSL> { [ U13E9, U13EE ] };

    key <AC01> { [ U13A0, U13CC ] };
    key <AC02> { [ U13CD, U13CE ] };
    key <AC03> { [ U13D7, U13D0 ] };
    key <AC04> { [ U13A9, U13C8 ] };
    key <AC05> { [ U13A6, U13E5 ] };
    key <AC06> { [ U13AF, U13B2 ] };
    key <AC07> { [ U13DA, U13AB ] };
    key <AC08> { [ U13B8, U13A7 ] };
    key <AC09> { [ U13B5, U13AE ] };
    key <AC10> { [ U13E8, U13E0 ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ U13AC, U13C3 ] };
    key <AB02> { [ U13F4, U13ED ] };
    key <AB03> { [ U13D3, U13DF ] };
    key <AB04> { [ U13A5, U13DE ] };
    key <AB05> { [ U13A8, U13F0 ] };
    key <AB06> { [ U13BE, U13BB ] };
    key <AB07> { [ U13C5, U13B7 ] };
    key <AB08> { [ comma, U13E2 ] };
    key <AB09> { [ period, U13B4 ] };
    key <AB10> { [ U13C2, U13C9 ] };
    };

    // Serbian charecters added as third level symbols to US keyboard layout.

    partial alphanumeric_keys
    xkb_symbols "hbs" {

    include "us"
    name[Group1]= "Serbo-Croatian (US)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
    key <AE08> { [ 8, asterisk, multiply, division ] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AC09> { [ l, L, U1C9, U1C8 ] };
    key <AB06> { [ n, N, U1CC, U1CB ] };
    key <AB01> { [ z, Z, U1C6, U1C5 ] };
    key <AD03> { [ e, E, EuroSign, cent ] };
    key <AC03> { [ d, D, dstroke, Dstroke ] };
    key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
    key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
    key <AB08> { [ comma, less, U3003, guillemotright ] };
    key <AB09> { [ period, greater, ellipsis, guillemotleft ] };

    include "level3(ralt_switch)"
    };

    //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
    partial alphanumeric_keys
    xkb_symbols "htcdream" {
    include "inet(htcdream)"
    name[Group1]= "English (US)";

    //second row
    key <AD01> { [ q, Q, Tab, Tab ] };
    key <AD02> { [ w, W, grave, grave ] };
    key <AD03> { [ e, E, underscore, underscore ] };
    key <AD04> { [ r, R, sterling, sterling ] };
    key <AD05> { [ t, T, EuroSign, EuroSign ] };
    key <AD06> { [ y, Y, division, division ] };
    key <AD07> { [ u, U, multiply, multiply ] };
    key <AD08> { [ i, I, minus, minus ] };
    key <AD09> { [ o, O, plus, plus ] };
    key <AD10> { [ p, P, equal, equal ] };

    //third row
    key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
    key <AC02> { [ s, S, bar, bar ] };
    key <AC03> { [ d ,D, backslash, backslash ] };
    key <AC04> { [ f, F, braceleft, braceleft ] };
    key <AC05> { [ g, G, braceright, braceright ] };
    key <AC06> { [ h, H, colon, colon ] };
    key <AC07> { [ j, J, semicolon, semicolon ] };
    key <AC08> { [ k, K, quotedbl, quotedbl ] };
    key <AC09> { [ l, L, apostrophe, apostrophe ] };

    //forth row
    key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
    key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
    key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
    key <AB04> { [ v, V, bracketleft, bracketleft ] };
    key <AB05> { [ b, B, bracketright, bracketright ] };
    key <AB06> { [ n, N, less, less ] };
    key <AB07> { [ m, M, greater, greater ] };
    key <AB08> { [ comma, comma, question, question ] };

    //fifth row
    key <FK15> { [ at, at, asciitilde, asciitilde ] };

    include "level3(alt_switch)"
    };

    // Workman Keyboard Layout symbols for xkb on X.Org Server 7.x
    // 09-06-2010 OJ Bucao. http://www.workmanlayout.com

    partial alphanumeric_keys
    xkb_symbols "workman" {

    include "us(basic)"
    name[Group1]= "English (Workman)";

    key <AD01> { [ q, Q ] };
    key <AD02> { [ d, D ] };
    key <AD03> { [ r, R ] };
    key <AD04> { [ w, W ] };
    key <AD05> { [ b, B ] };
    key <AD06> { [ j, J ] };
    key <AD07> { [ f, F ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ p, P ] };
    key <AD10> { [ semicolon, colon ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ h, H ] };
    key <AC04> { [ t, T ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ y, Y ] };
    key <AC07> { [ n, N ] };
    key <AC08> { [ e, E ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ i, I ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ m, M ] };
    key <AB04> { [ c, C ] };
    key <AB05> { [ v, V ] };
    key <AB06> { [ k, K ] };
    key <AB07> { [ l, L ] };

    key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "workman-intl" {

    include "us(intl)"
    name[Group1]= "English (Workman, intl., with dead keys)";

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ d, D, eth, ETH ] };
    key <AD03> { [ r, R, registered, registered ] };
    key <AD04> { [ w, W, aring, Aring ] };
    key <AD05> { [ b, B, b, B ] };
    key <AD06> { [ j, J, j, J ] };
    key <AD07> { [ f, F, f, F ] };
    key <AD08> { [ u, U, uacute, Uacute ] };
    key <AD09> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD10> { [ semicolon, colon, paragraph, degree ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ h, H, h, H ] };
    key <AC04> { [ t, T, thorn, THORN ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AC07> { [ n, N, ntilde, Ntilde ] };
    key <AC08> { [ e, E, eacute, Eacute ] };
    key <AC09> { [ o, O, oacute, Oacute ] };
    key <AC10> { [ i, I, iacute, Iacute ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ m, M, mu, mu ] };
    key <AB04> { [ c, C, copyright, cent ] };
    key <AB05> { [ v, V, v, V ] };
    key <AB06> { [ k, K, oe, OE ] };
    key <AB07> { [ l, L, oslash, Ooblique ] };

    key <CAPS> { [ BackSpace, Escape, BackSpace, BackSpace ] };

    include "level3(ralt_switch)"
    };

    // Norman keyboard layout symbols for xkb on X.Org Server 7.x
    // Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info
    // To the extent possible under law, the author(s) have dedicated all
    // copyright and related and neighboring rights to this software to the
    // public domain worldwide. This software is distributed without any warranty.

    partial alphanumeric_keys
    xkb_symbols "norman" {

    include "us(basic)"
    name[Group1]= "English (Norman)";

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ d, D ] };
    key <AD04> { [ f, F ] };
    key <AD05> { [ k, K ] };
    key <AD06> { [ j, J ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ r, R ] };
    key <AD09> { [ l, L ] };
    key <AD10> { [ semicolon, colon ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ t, T ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ y, Y ] };
    key <AC07> { [ n, N ] };
    key <AC08> { [ i, I ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ h, H ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ p, P ] };
    key <AB07> { [ m, M ] };

    key <CAPS> { [ BackSpace ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/

    partial alphanumeric_keys
    xkb_symbols "carpalx" {

    name[Group1]= "English (Carpalx)";

    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ g, G ] };
    key <AD03> { [ m, M ] };
    key <AD04> { [ l, L ] };
    key <AD05> { [ w, W ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ f, F ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ b, B ] };
    key <AD10> { [ semicolon, colon ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ d, D ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ t, T ] };
    key <AC04> { [ n, N ] };
    key <AC05> { [ r, R ] };
    key <AC06> { [ i, I ] };
    key <AC07> { [ a, A ] };
    key <AC08> { [ e, E ] };
    key <AC09> { [ o, O ] };
    key <AC10> { [ h, H ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ j, J ] };
    key <AB06> { [ k, K ] };
    key <AB07> { [ p, P ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-intl" {

    include "us(carpalx)"
    name[Group1]= "English (Carpalx, intl., with dead keys)";

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, degree, paragraph ] };
    key <AD02> { [ g, G, U011F, U011E ] };
    key <AD03> { [ m, M, mu, mu ] };
    key <AD04> { [ l, L, copyright, cent ] };
    key <AD05> { [ w, W, w, W ] };
    key <AD06> { [ y, Y, idiaeresis, Idiaeresis ] };
    key <AD07> { [ f, F, adiaeresis, Adiaeresis ] };
    key <AD08> { [ u, U, udiaeresis, Udiaeresis ] };
    key <AD09> { [ b, B, odiaeresis, Odiaeresis ] };
    key <AD10> { [ semicolon, colon, oslash, Ooblique ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ d, D, eth, ETH ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ t, T, thorn, THORN ] };
    key <AC04> { [ n, N, ntilde, Ntilde ] };
    key <AC05> { [ r, R, registered, registered ] };
    key <AC06> { [ i, I, iacute, Iacute ] };
    key <AC07> { [ a, A, aacute, Aacute ] };
    key <AC08> { [ e, E, eacute, Eacute ] };
    key <AC09> { [ o, O, oacute, Oacute ] };
    key <AC10> { [ h, H, uacute, Uacute ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, z, Z ] };
    key <AB02> { [ x, X, U015F, U015E ] };
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, ae, AE ] };
    key <AB05> { [ j, J, oe, OE ] };
    key <AB06> { [ k, K, U0131, U0130 ] };
    key <AB07> { [ p, P, aring, Aring ] };
    key <AB08> { [ comma, less, ediaeresis, Ediaeresis ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and us(altgr-intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-altgr-intl" {

    include "us(carpalx-intl)"
    name[Group1]= "English (Carpalx, intl., with AltGr dead keys)";

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/

    partial alphanumeric_keys
    xkb_symbols "carpalx-full" {

    include "us(carpalx)"
    name[Group1]= "English (Carpalx, full optimization)";

    key <AD06> { [ b, B ] };
    key <AD07> { [ y, Y ] };
    key <AD09> { [ v, V ] };

    key <AB04> { [ f, F ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-full-intl" {

    include "us(carpalx-intl)"
    name[Group1]= "English (Carpalx, full optimization, intl., with dead keys)";

    key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
    key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
    key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };

    key <AB04> { [ f, F, ae, AE ] };
    };

    // Carpalx layout created by Martin Krzywinski
    // Full optimization variant without fixed QWERTY-like ZXCV keys
    // http://mkweb.bcgsc.ca/carpalx/
    // Merged with us(intl) and us(altgr-intl) and modified to move
    // accented vowels closer to the plain vowels

    partial alphanumeric_keys
    xkb_symbols "carpalx-full-altgr-intl" {

    include "us(carpalx-altgr-intl)"
    name[Group1]= "English (Carpalx, full optimization, intl., with AltGr dead keys)";

    key <AD06> { [ b, B, idiaeresis, Idiaeresis ] };
    key <AD07> { [ y, Y, adiaeresis, Adiaeresis ] };
    key <AD09> { [ v, V, odiaeresis, Odiaeresis ] };

    key <AB04> { [ f, F, ae, AE ] };
    };

    // EXTRAS:

    // Czech, Slovak and German charecters added as third level symbols to US keyboard layout.
    partial alphanumeric_keys
    xkb_symbols "cz_sk_de" {

    include "us"
    name[Group1]="Czech Slovak and German (US)";

    key <TLDE> { [grave, asciitilde, uring, Uring ] };
    key <AE01> { [ 1, exclam, uacute, Uacute ] };
    key <AE02> { [ 2, at, ecaron, Ecaron ] };
    key <AE03> { [ 3, numbersign, scaron, Scaron ] };
    key <AE04> { [ 4, dollar, ccaron, Ccaron ] };
    key <AE05> { [ 5, percent, rcaron, Rcaron ] };
    key <AE06> { [ 6, asciicircum, zcaron, Zcaron ] };
    key <AE07> { [ 7, ampersand, yacute, Yacute ] };
    key <AE08> { [ 8, asterisk, aacute, Aacute ] };
    key <AE09> { [ 9, parenleft, iacute, Iacute ] };
    key <AE10> { [ 0, parenright, eacute, Eacute ] };
    key <AE11> { [minus, underscore, ssharp, 0x1001E9E ] };
    key <AE12> { [equal, plus, dead_acute, dead_caron ] };

    key <AD03> { [ e, E, EuroSign, Eacute ] };

    key <AD11> { [bracketleft, braceleft, udiaeresis, Udiaeresis ] };
    key <AC10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
    key <AC11> { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD06> { [ y, Y, yacute, Yacute ] };
    key <AD07> { [ u, U, uring, Uring ] };

    key <AC02> { [ s, S, scaron, Scaron ] };
    key <AB01> { [ z, Z, zcaron, Zcaron ] };
    key <AB03> { [ c, C, ccaron, Ccaron ] };
    key <AD04> { [ r, R, rcaron, Rcaron ] };
    key <AD05> { [ t, T, tcaron, Tcaron ] };
    key <AC03> { [ d, D, dcaron, Dcaron ] };
    key <AB06> { [ n, N, ncaron, Ncaron ] };
    key <AC09> { [ l, L, lcaron, Lcaron ] };
    key <AD10> { [ p, P,ocircumflex, Ocircumflex ] };

    key <SPCE> { [ space, space, nobreakspace, nobreakspace] };

    include "level3(ralt_switch)"
    };

    // 03 December 2017 - Added us(scn), please refer to
    // Cadèmia Siciliana <l10n@cademiasiciliana.org>
    partial alphanumeric_keys
    xkb_symbols "scn" {

    include "us(intl)"
    name[Group1]="Sicilian (US keyboard)";

    key <AD03> { [ e, E, U0259, U018F ] };
    key <AC03> { [ d, D, U1E0D, U1E0C ] };
    key <AC04> { [ f, F, U0111, U0110 ] };
    key <AC06> { [ h, H, U1E25, U1E24 ] };
    key <AB02> { [ x, X, U03C7, U03A7 ] };
    key <AB09> { [ period, greater, U1D58, dead_caron ] };

    include "level3(ralt_switch)"
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does not deviate from the lame MS-style
    // US-intl layout; but it uses AltGr for combining, like altgr-intl.
    //
    // This might break your font layout layout systems (because they
    // suck), caveat emptor. Also, most of today's software will count
    // individual combining marks for selection, deletion, character
    // counting &c., and won't be smart enough to do canonical equivalence
    // when searching, &c.
    //
    // With Unicode combining you use "handwriting order", not
    // "typewriting order" as with deadkeys. That is, you first type the
    // base character, then the diacritics/accents/modifiers. This has
    // the advantage of avoiding hidden states --- each keypress changes
    // something on screen.
    //
    // TODO: as of now, this duplicates all us(intl) functionality with
    // combining. With care, perhaps we could add more combining marks
    // not present in intl, and support all major languages.
    partial alphanumeric_keys
    xkb_symbols "intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining)";

    include "us(intl)"
    include "level3(ralt_switch)"

    // grave, tilde
    key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
    // double acute
    key <AE02> { [ 2, at, twosuperior, U030B ] };
    // macron
    key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
    // circumflex
    key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
    // horn
    key <AE07> { [ 7, ampersand, onehalf, U031B ] };
    // ogonek
    key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
    // breve
    key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
    // abovering
    key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };

    // belowdot
    key <AE11> { [ minus, underscore, yen, U0323 ] };
    // acute, diaeresis
    key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
    // abovedot, caron
    key <AB09> { [ period, greater, U0307, U030C ] };
    // hook
    key <AB10> { [ slash, question, questiondown, U0309 ] };

    // alt-intl compatibility
    // cedilla, caron
    key <AB08> { [ comma, less, U0327, U030C ] };
    // ogonek, diaeresis
    key <AC10> { [ semicolon, colon, U0328, U0308 ] };
    // doubleacute, horn
    key <AE12> { [ equal, plus, U030B, U031B ] };

    // we don't do combining latin letters and combining enclosures
    // because support for those is very rare.
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does break compatibility with us-intl,
    // whenever I thought it would be more mnemonic or Unicodeish.
    partial alphanumeric_keys
    xkb_symbols "alt-intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining, alternative)";

    include "us(intl-unicode)"

    // easier macron; em-dash.
    // em-dash is available via compose, but I added here since it's such
    // an important typographic character.
    key <AE11> { [ minus, underscore, U0304, U2014 ] };

    // belowdot, abovedot (caron at coma/less key, per above)
    key <AB09> { [ period, greater, U0323, U0307 ] };

    };

    partial alphanumeric_keys
    xkb_symbols "ats" {

    include "us"
    name[Group1]= "Atsina";

    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
    //q, l, t, s, m, g, k, p, w, y, r
    //XCompose key is used for the other accute and grave.

    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD11> { [ bracketleft, braceleft, U03B8 ] };
    key <AD12> { [ bracketright, braceright, U010D, U010C ] };
    //U+010C (uppercase Č) and U+010D (lowercase č).

    key <AC01> { [ a, A, aacute, Aacute ] };

    //Small letter Open use compose to key get acute accent
    key <AB03> { [ c, C, U0254, U0186 ] };
    key <AB08> { [ comma, less, U0313 ] };
    key <AB10> { [ slash, question, U0294 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };

    partial alphanumeric_keys
    xkb_symbols "crd" {

    include "us"
    name[Group1]= "Coeur d'Alene Salish";

    key <AD02> { [ w, W, U02B7, U02B7 ] };
    key <AE07> { [ 7, ampersand, U0294 ] };
    key <AD01> { [ q, Q, U221A ] };
    key <AB04> { [ v, V, U0259 ] };
    key <BKSL> { [ backslash, bar, U026B ] };
    key <AD03> { [ e, E, U025B ] };
    key <AD08> { [ i, I, U026A ] };
    key <AC07> { [ j, J, U01F0 ] };
    key <AE06> { [ 6, asciicircum, U0295 ] };
    key <AC02> { [ s, S, U0161 ] };
    key <AB03> { [ c, C, U010D ] };
    key <AD09> { [ o, O, U0254 ] };
    key <AB09> { [ period, greater, U0323 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };


    partial alphanumeric_keys
    xkb_symbols "sun_type6" {
    include "sun_vndr/us(sun_type6)"
    };

  4. Tarrasch revised this gist Feb 7, 2018. 1 changed file with 1 addition and 6 deletions.
    7 changes: 1 addition & 6 deletions keymap.xkb
    Original file line number Diff line number Diff line change
    @@ -3,17 +3,12 @@ xkb_keymap {
    xkb_types { include "complete" };
    xkb_compatibility {
    include "complete"

    interpret Overlay1_Enable {
    action = SetControls(controls=overlay1);
    };
    };
    xkb_symbols {
    include "pc+us(colemak)+inet(evdev)"

    key <RALT> {
    type[Group1] = "ONE_LEVEL",
    symbols[Group1] = [ Overlay1_Enable ]
    actions[Group1] = [ SetControls(controls=overlay1) ]
    };

    key <AD02> { overlay1 = <HOME> };
  5. Tarrasch revised this gist Feb 7, 2018. 1 changed file with 7 additions and 0 deletions.
    7 changes: 7 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -52,4 +52,11 @@ I found that the issue might be fixed by doing

    and then just reselecting your keyboard layout (hint taken from [here](https://help.ubuntu.com/community/Custom%20keyboard%20layout%20definitions))

    ## Debugging

    `xkbcomp` seems to both "reload everything" and compile and use `keymap.xkb` in
    the following command.

    sudo cp us.xkb /usr/share/X11/xkb/symbols/us && xkbcomp keymap.xkb :0

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
  6. Tarrasch revised this gist Jan 10, 2018. 2 changed files with 3 additions and 3 deletions.
    2 changes: 1 addition & 1 deletion keymap.xkb
    Original file line number Diff line number Diff line change
    @@ -18,7 +18,6 @@ xkb_keymap {

    key <AD02> { overlay1 = <HOME> };
    key <AD03> { overlay1 = <END> };
    key <AD04> { overlay1 = <ESC> };
    key <AD08> { overlay1 = <PGDN> };
    key <AD09> { overlay1 = <PGUP> };

    @@ -27,6 +26,7 @@ xkb_keymap {
    key <AC07> { overlay1 = <DOWN> };
    key <AC08> { overlay1 = <UP> };

    key <AC02> { overlay1 = <ESC> };
    };
    xkb_geometry { include "pc(pc104)" };
    };
    4 changes: 2 additions & 2 deletions us.xkb
    Original file line number Diff line number Diff line change
    @@ -87,7 +87,7 @@ xkb_symbols "colemak" {
    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, Escape, Return] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    @@ -99,7 +99,7 @@ xkb_symbols "colemak" {
    key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };

    key <AC01> { [ a, A, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R ] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
  7. Tarrasch revised this gist Dec 15, 2017. 2 changed files with 3 additions and 3 deletions.
    2 changes: 1 addition & 1 deletion keymap.xkb
    Original file line number Diff line number Diff line change
    @@ -18,6 +18,7 @@ xkb_keymap {

    key <AD02> { overlay1 = <HOME> };
    key <AD03> { overlay1 = <END> };
    key <AD04> { overlay1 = <ESC> };
    key <AD08> { overlay1 = <PGDN> };
    key <AD09> { overlay1 = <PGUP> };

    @@ -26,7 +27,6 @@ xkb_keymap {
    key <AC07> { overlay1 = <DOWN> };
    key <AC08> { overlay1 = <UP> };

    key <AC02> { overlay1 = <ESC> };
    };
    xkb_geometry { include "pc(pc104)" };
    };
    4 changes: 2 additions & 2 deletions us.xkb
    Original file line number Diff line number Diff line change
    @@ -87,7 +87,7 @@ xkb_symbols "colemak" {
    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD04> { [ p, P, Escape, Return] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    @@ -99,7 +99,7 @@ xkb_symbols "colemak" {
    key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };

    key <AC01> { [ a, A, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC02> { [ r, R ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
  8. Tarrasch revised this gist Dec 15, 2017. 2 changed files with 1 addition and 80 deletions.
    67 changes: 0 additions & 67 deletions manual-installation.txt
    Original file line number Diff line number Diff line change
    @@ -1,67 +0,0 @@
    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    // Swedish version by Arash Rouhani
    partial alphanumeric_keys
    xkb_symbols "colemak" {
    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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, XF86AudioStop, AE ] };
    key <AB02> { [ x, X, XF86AudioPlay, asciitilde ] };
    key <AB03> { [ c, C, XF86AudioPrev, Ccedilla ] };
    key <AB04> { [ v, V, XF86AudioNext, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, XF86AudioLowerVolume, asciitilde ] };
    key <AB08> { [ comma, less, XF86AudioRaiseVolume, asciitilde ] };
    key <AB09> { [ period, greater, XF86AudioMute, 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)"
    };
    14 changes: 1 addition & 13 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@ optimized for English and not Swedish.
    Additionally I've squeezed a lot of other fancy stuff through `AltGr`,
    which are independent of the language.

    ## Lazy (paste in terminal) installation for Ubuntu
    ## Installation (most linux systems)

    Paste this in your terminal

    @@ -19,18 +19,6 @@ Paste this in your terminal

    Now log in and out and select the `English (Colemak)` layout from the GUI menus.

    ## Manual installation instructions for Ubuntu

    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    sudo vi /usr/share/X11/xkb/symbols/us % or whatever editor you use

    Now, simply REPLACE the english colemak with the code. For the changes
    to take affect, just log in and out. If you want to avoid the replace,
    you can do it the proper way by following these [instructions].

    BUT DON'T!! I've done that and it's just a waste of time. If you really
    don't want to replace en colemak, replace something else!

    ## About this layout:

    AltGr+a --> ä
  9. Tarrasch revised this gist Dec 15, 2017. 3 changed files with 130 additions and 1340 deletions.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ Paste this in your terminal

    GISTDIR='https://gist.githubusercontent.com/Tarrasch/1293692/raw'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null
    curl "$GISTDIR/us.xkb" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null
    cd /var/lib/xkb/
    sudo rm *.xkm

    1,339 changes: 0 additions & 1,339 deletions us
    Original file line number Diff line number Diff line change
    @@ -1,1339 +0,0 @@
    default
    partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "English (US)";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    // End alphanumeric section
    };

    partial alphanumeric_keys
    xkb_symbols "euro" {

    name[Group1]= "English (US, with euro on 5)";

    include "us(basic)"

    include "eurosign(5)"

    include "level3(ralt_switch)"
    };


    partial alphanumeric_keys
    xkb_symbols "intl" {

    name[Group1]= "English (US, international with dead keys)";

    include "us(basic)"

    // Alphanumeric section
    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD04> { [ r, R, registered, registered ] };
    key <AD05> { [ t, T, thorn, THORN ] };
    key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, f, F ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ h, H, h, H ] };
    key <AC07> { [ j, J, j, J ] };
    key <AC08> { [ k, K, oe, OE ] };

    key <AC09> { [ l, L, oslash, Ooblique ] };
    key <AC10> { [ semicolon, colon, paragraph, degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ c, C, copyright, cent ] };
    key <AB04> { [ v, V, v, V ] };
    key <AB05> { [ b, B, b, B ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)

    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis

    partial alphanumeric_keys
    xkb_symbols "alt-intl" {

    name[Group1]= "English (US, alternative international)";

    include "us"

    key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE05> { [ 5, percent, EuroSign ] };
    key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
    key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };

    key <AD03> { [ e, E, EuroSign, cent ] };

    key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
    key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
    key <AB10> { [ slash, question, dead_hook, dead_hook ] };

    include "level3(ralt_switch)"
    };

    // based on a keyboard map from an 'xkb/symbols/dk' file

    partial alphanumeric_keys
    xkb_symbols "dvorak" {

    name[Group1]= "English (Dvorak)";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft, dead_grave] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ slash, question ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Dvorak international with dead keys
    // Olivier Mehani (shtrom-xorg@ssji.net)
    // Reproduce the per-key mapping of us(intl) for the dvorak layout
    // aka "I just swapped my keys over"
    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {

    name[Group1]= "English (Dvorak international with dead keys)";

    include "us(dvorak)"

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
    key <AD02> { [ comma, less, ccedilla, Ccedilla ] };
    key <AD03> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AD04> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
    // key <AD06> { [ f, F ] };
    // key <AD07> { [ g, G ] };
    key <AD08> { [ c, C, copyright, cent ] };
    key <AD09> { [ r, R, registered, registered ] };
    key <AD10> { [ l, L, oslash, Ooblique ] };
    key <AD11> { [ slash, question, questiondown, dead_hook ] };
    // key <AD12> { [ equal, plus, multiply, division ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ o, O, oacute, Oacute ] };
    key <AC03> { [ e, E, eacute, Eacute ] };
    key <AC04> { [ u, U, uacute, Uacute ] };
    key <AC05> { [ i, I, iacute, Iacute ] };
    key <AC06> { [ d, D, eth, ETH ] };
    // key <AC07> { [ h, H ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp, section ] };
    // key <AC11> { [ minus, underscore, yen, dead_belowdot ] };

    key <AB01> { [ semicolon, colon, paragraph, degree ] };
    key <AB02> { [ q, Q, adiaeresis, Adiaeresis ] };
    // key <AB03> { [ j, J ] };
    key <AB04> { [ k, K, oe, OE ] };
    // key <AB05> { [ x, X ] };
    // key <AB06> { [ b, B ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ w, W, aring, Aring ] };
    // key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z, ae, AE ] };

    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Dvorak international without dead keys
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
    // €
    //
    // ' , . p y f g c r l / =
    // ä ê ë ü ç
    //
    // a o e u i d h t n s -
    // à ô é û î ß
    //
    // ; q j k x b m w v z
    // â ö è ù ï

    partial alphanumeric_keys
    xkb_symbols "dvorak-alt-intl" {

    name[Group1]= "English (Dvorak alternative international no dead keys)";

    include "us(dvorak)"

    key <AE04> { [ 4, dollar, EuroSign ] };

    key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
    key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
    key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
    key <AD05> { [ y, Y, udiaeresis ] };
    key <AD08> { [ c, C, ccedilla, dead_abovedot ] };

    key <AC01> { [ a, A, agrave ] };
    key <AC02> { [ o, O, ocircumflex ] };
    key <AC03> { [ e, E, eacute ] };
    key <AC04> { [ u, U, ucircumflex ] };
    key <AC05> { [ i, I, icircumflex ] };
    key <AC10> { [ s, S, ssharp ] };

    key <AB01> { [ semicolon, colon, acircumflex ] };
    key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
    key <AB03> { [ j, J, egrave, dead_doubleacute ] };
    key <AB04> { [ k, K, ugrave ] };
    key <AB05> { [ x, X, idiaeresis ] };

    include "level3(ralt_switch)"
    };

    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {

    include "us(dvorak)"
    name[Group1]= "English (left handed Dvorak)";

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ bracketright, braceright ] };
    key <AE03> { [ slash, question ] };
    key <AE04> { [ p, P ] };
    key <AE05> { [ f, F ] };
    key <AE06> { [ m, M ] };
    key <AE07> { [ l, L ] };
    key <AE08> { [ j, J ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 3, numbersign ] };
    key <AE11> { [ 2, at ] };
    key <AE12> { [ 1, exclam ] };

    key <AD01> { [ semicolon, colon ] };
    key <AD02> { [ q, Q ] };
    key <AD03> { [ b, B ] };
    key <AD04> { [ y, Y ] };
    key <AD05> { [ u, U ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ o, O ] };
    key <AD09> { [ period, greater ] };
    key <AD10> { [ 6, asciicircum ] };
    key <AD11> { [ 5, percent ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ minus, underscore ] };
    key <AC02> { [ k, K ] };
    key <AC03> { [ c, C ] };
    key <AC04> { [ d, D ] };
    key <AC05> { [ t, T ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ e, E ] };
    key <AC08> { [ a, A ] };
    key <AC09> { [ z, Z ] };
    key <AC10> { [ 8, asterisk ] };
    key <AC11> { [ 7, ampersand ] };

    key <AB01> { [ apostrophe, quotedbl ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ g, G ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ w, W ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ i, I ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ 0, parenright ] };
    key <AB10> { [ 9, parenleft ] };
    };

    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {

    include "us(dvorak)"
    name[Group1]= "English (right handed Dvorak)";

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ j, J ] };
    key <AE06> { [ l, L ] };
    key <AE07> { [ m, M ] };
    key <AE08> { [ f, F ] };
    key <AE09> { [ p, P ] };
    key <AE10> { [ slash, question ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright ] };

    key <AD01> { [ 5, percent ] };
    key <AD02> { [ 6, asciicircum ] };
    key <AD03> { [ q, Q ] };
    key <AD04> { [ period, greater ] };
    key <AD05> { [ o, O ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ y, Y ] };
    key <AD10> { [ b, B ] };
    key <AD11> { [ semicolon, colon ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ 7, ampersand ] };
    key <AC02> { [ 8, asterisk ] };
    key <AC03> { [ z, Z ] };
    key <AC04> { [ a, A ] };
    key <AC05> { [ e, E ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ t, T ] };
    key <AC08> { [ d, D ] };
    key <AC09> { [ c, C ] };
    key <AC10> { [ k, K ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ 9, parenleft ] };
    key <AB02> { [ 0, parenright ] };
    key <AB03> { [ x, X ] };
    key <AB04> { [ comma, less ] };
    key <AB05> { [ i, I ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ w, W ] };
    key <AB08> { [ v, V ] };
    key <AB09> { [ g, G ] };
    key <AB10> { [ apostrophe, quotedbl ] };
    };

    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {

    name[Group1]= "English (classic Dvorak)";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ 7, ampersand ] };
    key <AE03> { [ 5, percent ] };
    key <AE04> { [ 3, numbersign ] };
    key <AE05> { [ 1, exclam ] };
    key <AE06> { [ 9, parenleft, dead_grave] };
    key <AE07> { [ 0, parenright ] };
    key <AE08> { [ 2, at ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE11> { [ 8, asterisk ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ slash, question ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };
    key <BKSL> { [ backslash, bar ] };
    };

    // Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    partial alphanumeric_keys
    xkb_symbols "dvp" {
    include "us(dvorak)"

    name[Group1] = "English (programmer Dvorak)";

    // Unmodified Shift AltGr Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
    key <AE01> { [ ampersand, percent ] };
    key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE12> { [ numbersign, grave, dead_grave ] };
    key <BKSP> { [ BackSpace, BackSpace ] };

    // upper row, left side
    key <AD01> { [ semicolon, colon, dead_diaeresis ] };
    key <AD02> { [ comma, less, guillemotleft ] };
    key <AD03> { [ period, greater, guillemotright ] };
    key <AD04> { [ p, P, paragraph, section ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c, C, ccedilla, Ccedilla ] };
    key <AD09> { [ r, R, registered, trademark ] };
    key <AD11> { [ slash, question, questiondown ] };
    key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ o, O, oslash, Ooblique ] };
    key <AC03> { [ e, E, ae, AE ] };
    key <AC04> { [ u, U, eacute, Eacute ] };

    // home row, right side
    key <AC06> { [ d, D, eth, ETH ] };
    key <AC07> { [ h, H, dead_acute ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp ] };
    key <AC11> { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash, bar ] };

    // lower row, left side
    key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
    };

    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17

    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.

    partial alphanumeric_keys
    xkb_symbols "rus" {

    name[Group1]= "Russian (US, phonetic)";

    include "us(basic)"

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
    key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
    key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
    key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
    key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
    key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
    key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
    key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
    key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
    key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
    key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
    key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
    key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
    key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
    key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
    key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
    key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
    key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
    key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
    key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
    key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
    key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
    key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "mac" {

    include "us(basic)"
    name[Group1]= "English (Macintosh)";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [ section, plusminus, section, plusminus ] };
    key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
    key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
    key <AE02> { [ 2, at, trademark, EuroSign ] };
    key <AE03> { [ 3, numbersign, sterling, U2039 ] };
    key <AE04> { [ 4, dollar, cent, U203A ] };
    key <AE05> { [ 5, percent, infinity, UFB01 ] };
    key <AE06> { [ 6,asciicircum, section, UFB02 ] };
    key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
    key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
    key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
    key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, notequal, plusminus ] };

    key <AD01> { [ q, Q, oe, OE ] };
    key <AD02> { [ w, W, U2211,doublelowquotemark] };
    key <AD03> { [ e, E, dead_acute, acute ] };
    key <AD04> { [ r, R, registered, U2030 ] };
    key <AD05> { [ t, T, dagger, dead_caron ] };
    key <AD06> { [ y, Y, yen, onequarter ] };
    key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
    key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
    key <AD09> { [ o, O, oslash, Ooblique ] };
    key <AD10> { [ p, P, Greek_pi, U220F ] };
    key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };

    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ s, S, ssharp, dead_stroke ] };
    key <AC03> { [ d, D, partialderivative, eth ] };
    key <AC04> { [ f, F, function, dead_hook ] };
    key <AC05> { [ g, G, copyright, dead_doubleacute ] };
    key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
    key <AC07> { [ j, J, U2206, onehalf ] };
    key <AC08> { [ k, K,dead_abovering, UF8FF ] };

    key <AC09> { [ l, L, notsign, THORN ] };
    key <AC10> { [ semicolon, colon, U2026, thorn ] };
    key <AC11> { [apostrophe, quotedbl, ae, AE ] };

    key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
    key <AB02> { [ x, X, U2248, dead_ogonek ] };
    // unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, squareroot, U25CA ] };
    key <AB05> { [ b, B, integral, idotless ] };
    key <AB06> { [ n, N, dead_tilde, U02DC ] };
    key <AB07> { [ m, M, mu, threequarters ] };
    key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
    key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
    key <AB10> { [ slash, question, division, questiondown ] };

    include "level3(ralt_switch)"
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    // Swedish version by Arash Rouhani
    partial alphanumeric_keys
    xkb_symbols "colemak" {
    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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, XF86AudioStop, AE ] };
    key <AB02> { [ x, X, XF86AudioPlay, asciitilde ] };
    key <AB03> { [ c, C, XF86AudioPrev, Ccedilla ] };
    key <AB04> { [ v, V, XF86AudioNext, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, XF86AudioLowerVolume, asciitilde ] };
    key <AB08> { [ comma, less, XF86AudioRaiseVolume, asciitilde ] };
    key <AB09> { [ period, greater, XF86AudioMute, 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)"
    };


    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an é (eacute) in two strokes
    // as well? I type ' more often than é (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan

    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {

    name[Group1]= "English (international AltGr dead keys)";

    include "us(intl)"

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
    key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
    key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
    key <AB02> { [ x, X, oe, OE ] };
    key <AB04> { [ v, V, registered, registered ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.

    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
    include "us(basic)"
    name[Group1]= "USA - ClassmatePC";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "eurosign(5)"
    include "level3(switch)"
    };

    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
    include "us(intl)"
    name[Group1]= "USA - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    onehalf, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    threequarters, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "USA - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KPSU> { [ KP_Subtract, KP_Subtract ] };

    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KPAD> { [ KP_Add, KP_Add,
    dead_ogonek, dead_diaeresis ] };

    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_circumflex ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    dead_hook, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
    include "us(altgr-intl)"
    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    dead_horn, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    dead_ogonek, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP1> { [ KP_End, KP_1,
    idiaeresis, Idiaeresis ] };
    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // OLPC international US English keyboard layout.
    // It's a little different from the usual international layout.
    // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
    key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
    key <BKSL> { [ backslash, bar, section, section ] };

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc2" {
    include "us(olpc)"
    name[Group1]= "English (layout toggle on multiply/divide key)";
    include "group(olpc)"
    };

    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm

    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {

    name[Group1]= "Cherokee";
    key.type[group1]="ALPHABETIC";

    // Alphanumeric section
    key <TLDE> { [ grave, U13CA ] };
    key <AE01> { [ 1, U13B1 ] };
    key <AE02> { [ 2, U13C7 ] };
    key <AE03> { [ 3, U13E7 ] };
    key <AE04> { [ U13D9, U13B0 ] };
    key <AE05> { [ U13E6, U13B9 ] };
    key <AE06> { [ U13DC, U13DD ] };
    key <AE07> { [ U13CB, U13E1 ] };
    key <AE08> { [ U13D6, U13BA ] };
    key <AE09> { [ U13D2, parenleft ] };
    key <AE10> { [ U13C4, parenright ] };
    key <AE11> { [ U13BF, U13BC ] };
    key <AE12> { [ U13F3, U13BD ] };

    key <AD01> { [ U13AA, U13C6 ] };
    key <AD02> { [ U13B3, U13EB ] };
    key <AD03> { [ U13A1, U13E3 ] };
    key <AD04> { [ U13DB, U13CF ] };
    key <AD05> { [ U13D4, U13D8 ] };
    key <AD06> { [ U13EF, U13F2 ] };
    key <AD07> { [ U13A4, U13AD ] };
    key <AD08> { [ U13A2, U13F1 ] };
    key <AD09> { [ U13A3, U13EC ] };
    key <AD10> { [ U13C1, U13EA ] };
    key <AD11> { [ U13D5, U13D1 ] };
    key <AD12> { [ U13B6, U13E4 ] };
    key <BKSL> { [ U13E9, U13EE ] };

    key <AC01> { [ U13A0, U13CC ] };
    key <AC02> { [ U13CD, U13CE ] };
    key <AC03> { [ U13D7, U13D0 ] };
    key <AC04> { [ U13A9, U13C8 ] };
    key <AC05> { [ U13A6, U13E5 ] };
    key <AC06> { [ U13AF, U13B2 ] };
    key <AC07> { [ U13DA, U13AB ] };
    key <AC08> { [ U13B8, U13A7 ] };
    key <AC09> { [ U13B5, U13AE ] };
    key <AC10> { [ U13E8, U13E0 ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ U13AC, U13C3 ] };
    key <AB02> { [ U13F4, U13ED ] };
    key <AB03> { [ U13D3, U13DF ] };
    key <AB04> { [ U13A5, U13DE ] };
    key <AB05> { [ U13A8, U13F0 ] };
    key <AB06> { [ U13BE, U13BB ] };
    key <AB07> { [ U13C5, U13B7 ] };
    key <AB08> { [ comma, U13E2 ] };
    key <AB09> { [ period, U13B4 ] };
    key <AB10> { [ U13C2, U13C9 ] };

    // End alphanumeric section
    };

    // Serbian charecters added as third level symbols to US keyboard layout.

    partial alphanumeric_keys
    xkb_symbols "hbs" {

    name[Group1]= "Serbo-Croatian (US)";

    include "us"

    key <TLDE> { [ grave, asciitilde ] };
    key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
    key <AC09> { [ l, L, U1C9, U1C8 ] };
    key <AB06> { [ n, N, U1CC, U1CB ] };
    key <AB01> { [ z, Z, U1C6, U1C5 ] };
    key <AD03> { [ e, E, EuroSign, cent ] };
    key <AC03> { [ d, D, dstroke, Dstroke ] };
    key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
    key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
    key <AB08> { [ comma, less, NoSymbol, guillemotright ] };
    key <AB09> { [ period, greater, NoSymbol, guillemotleft ] };

    include "level3(ralt_switch)"
    };

    //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
    partial alphanumeric_keys
    xkb_symbols "htcdream" {
    include "inet(htcdream)"
    name[Group1]= "English (US)";

    //second row
    key <AD01> { [ q, Q, Tab, Tab ] };
    key <AD02> { [ w, W, grave, grave ] };
    key <AD03> { [ e, E, underscore, underscore ] };
    key <AD04> { [ r, R, sterling, sterling ] };
    key <AD05> { [ t, T, EuroSign, EuroSign ] };
    key <AD06> { [ y, Y, division, division ] };
    key <AD07> { [ u, U, multiply, multiply ] };
    key <AD08> { [ i, I, minus, minus ] };
    key <AD09> { [ o, O, plus, plus ] };
    key <AD10> { [ p, P, equal, equal ] };

    //third row
    key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
    key <AC02> { [ s, S, bar, bar ] };
    key <AC03> { [ d ,D, backslash, backslash ] };
    key <AC04> { [ f, F, braceleft, braceleft ] };
    key <AC05> { [ g, G, braceright, braceright ] };
    key <AC06> { [ h, H, colon, colon ] };
    key <AC07> { [ j, J, semicolon, semicolon ] };
    key <AC08> { [ k, K, quotedbl, quotedbl ] };
    key <AC09> { [ l, L, apostrophe, apostrophe ] };

    //forth row
    key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
    key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
    key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
    key <AB04> { [ v, V, bracketleft, bracketleft ] };
    key <AB05> { [ b, B, bracketright, bracketright ] };
    key <AB06> { [ n, N, less, less ] };
    key <AB07> { [ m, M, greater, greater ] };
    key <AB08> { [ comma, comma, question, question ] };

    //fifth row
    key <FK15> { [ at, at, asciitilde, asciitilde ] };

    include "level3(alt_switch)"
    };

    // EXTRAS:

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does not deviate from the lame MS-style
    // US-intl layout; but it uses AltGr for combining, like altgr-intl.
    //
    // This might break your font layout layout systems (because they
    // suck), caveat emptor. Also, most of today's software will count
    // individual combining marks for selection, deletion, character
    // counting &c., and won't be smart enough to do canonical equivalence
    // when searching, &c.
    //
    // With Unicode combining you use "handwriting order", not
    // "typewriting order" as with deadkeys. That is, you first type the
    // base character, then the diacritics/accents/modifiers. This has
    // the advantage of avoiding hidden states --- each keypress changes
    // something on screen.
    //
    // TODO: as of now, this duplicates all us(intl) functionality with
    // combining. With care, perhaps we could add more combining marks
    // not present in intl, and support all major languages.
    partial alphanumeric_keys
    xkb_symbols "intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining)";

    include "us(intl)"
    include "level3(ralt_switch)"

    // grave, tilde
    key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
    // double acute
    key <AE02> { [ 2, at, twosuperior, U030B ] };
    // macron
    key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
    // circumflex
    key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
    // horn
    key <AE07> { [ 7, ampersand, onehalf, U031B ] };
    // ogonek
    key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
    // breve
    key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
    // abovering
    key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };

    // belowdot
    key <AE11> { [ minus, underscore, yen, U0323 ] };
    // acute, diaeresis
    key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
    // abovedot, caron
    key <AB09> { [ period, greater, U0307, U030C ] };
    // hook
    key <AB10> { [ slash, question, questiondown, 0309 ] };

    // alt-intl compatibility
    // cedilla, caron
    key <AB08> { [ comma, less, U0327, U030C ] };
    // ogonek, diaeresis
    key <AC10> { [ semicolon, colon, U0328, U0308 ] };
    // doubleacute, horn
    key <AE12> { [ equal, plus, U030B, U031B ] };

    // we don't do combining latin letters and combining enclosures
    // because support for those is very rare.
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does break compatibility with us-intl,
    // whenever I thought it would be more mnemonic or Unicodeish.
    partial alphanumeric_keys
    xkb_symbols "alt-intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining, alternative)";

    include "extras/us(intl-unicode)"
    include "level3(ralt_switch)"

    // easier macron; em-dash.
    // em-dash is available via compose, but I added here since it's such
    // an important typographic character.
    key <AE11> { [ minus, underscore, U0304, U2014 ] };

    // belowdot, abovedot (caron at coma/less key, per above)
    key <AB09> { [ period, greater, U0323, U0307 ] };

    };

    partial alphanumeric_keys
    xkb_symbols "ats" {

    include "us"

    name[Group1]= "Atsina";

    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
    //q, l, t, s, m, g, k, p, w, y, r
    //XCompose key is used for the other accute and grave.

    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD11> { [ bracketleft, braceleft, U03B8 ] };
    key <AD12> { [ bracketright, braceright, U010D, U010C ] };
    //U+010C (uppercase Č) and U+010D (lowercase č).

    key <AC01> { [ a, A, aacute, Aacute ] };


    //Small letter Open use compose to key get acute accent
    key <AB03> { [ c, C, U0254, U0186 ] };
    key <AB08> { [ comma, less, U0313 ] };
    key <AB10> { [ slash, question, U0294 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };

    partial alphanumeric_keys
    xkb_symbols "crd" {

    include "us"

    name[Group1]= "Couer D'alene Salish";

    // Alphanumeric section
    key <AD02> { [ w, W, U02B7, U02B7 ] };
    key <AE07> { [ 7, ampersand, U0294 ] };
    key <AD01> { [ q, Q, U221A ] };
    key <AB04> { [ v, V, U0259 ] };
    key <BKSL> { [ backslash, bar, U026B ] };
    key <AD03> { [ e, E, U025B ] };
    key <AD08> { [ i, I, U026A ] };
    key <AC07> { [ j, J, U01F0 ] };
    key <AE06> { [ 6, asciicircum, U0295 ] };
    key <AC02> { [ s, S, U0161 ] };
    key <AB03> { [ c, C, U010D ] };
    key <AD09> { [ o, O, U0254 ] };
    key <AB09> { [ period, greater, U0323 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"

    // End alphanumeric section
    };
    129 changes: 129 additions & 0 deletions us.xkb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,129 @@
    partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "English (US)";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    // End alphanumeric section
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    // Swedish version by Arash Rouhani (undated)
    // A reattempt using Overlays (Nov 2017)
    default
    partial alphanumeric_keys
    xkb_symbols "colemak" {
    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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, XF86AudioStop, AE ] };
    key <AB02> { [ x, X, XF86AudioPlay, asciitilde ] };
    key <AB03> { [ c, C, XF86AudioPrev, Ccedilla ] };
    key <AB04> { [ v, V, XF86AudioNext, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, XF86AudioLowerVolume, asciitilde ] };
    key <AB08> { [ comma, less, XF86AudioRaiseVolume, asciitilde ] };
    key <AB09> { [ period, greater, XF86AudioMute, 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)"
    };
  10. Tarrasch revised this gist Dec 15, 2017. 1 changed file with 32 additions and 0 deletions.
    32 changes: 32 additions & 0 deletions keymap.xkb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    xkb_keymap {
    xkb_keycodes { include "evdev+aliases(qwerty)" };
    xkb_types { include "complete" };
    xkb_compatibility {
    include "complete"

    interpret Overlay1_Enable {
    action = SetControls(controls=overlay1);
    };
    };
    xkb_symbols {
    include "pc+us(colemak)+inet(evdev)"

    key <RALT> {
    type[Group1] = "ONE_LEVEL",
    symbols[Group1] = [ Overlay1_Enable ]
    };

    key <AD02> { overlay1 = <HOME> };
    key <AD03> { overlay1 = <END> };
    key <AD08> { overlay1 = <PGDN> };
    key <AD09> { overlay1 = <PGUP> };

    key <AC03> { overlay1 = <LEFT> };
    key <AC04> { overlay1 = <RGHT> };
    key <AC07> { overlay1 = <DOWN> };
    key <AC08> { overlay1 = <UP> };

    key <AC02> { overlay1 = <ESC> };
    };
    xkb_geometry { include "pc(pc104)" };
    };
  11. Tarrasch revised this gist Feb 12, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -62,6 +62,6 @@ I found that the issue might be fixed by doing
    cd /var/lib/xkb/
    sudo rm *.xkm

    and then just reselecting your keyboard layout
    and then just reselecting your keyboard layout (hint taken from [here](https://help.ubuntu.com/community/Custom%20keyboard%20layout%20definitions))

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
  12. Tarrasch revised this gist Feb 12, 2015. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -14,6 +14,8 @@ Paste this in your terminal
    GISTDIR='https://gist.githubusercontent.com/Tarrasch/1293692/raw'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null
    cd /var/lib/xkb/
    sudo rm *.xkm

    Now log in and out and select the `English (Colemak)` layout from the GUI menus.

    @@ -55,4 +57,11 @@ I would love to discuss this, feel free to comment on this gist!

    I just noticed that to get the arrow keys to also work. You just need to "play around" choosing another layout then switching back to the colemak one.

    I found that the issue might be fixed by doing

    cd /var/lib/xkb/
    sudo rm *.xkm

    and then just reselecting your keyboard layout

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
  13. Tarrasch revised this gist Apr 15, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ which are independent of the language.

    Paste this in your terminal

    GISTDIR='https://gist.github.com/Tarrasch/1293692/raw'
    GISTDIR='https://gist.githubusercontent.com/Tarrasch/1293692/raw'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null

  14. Tarrasch revised this gist Nov 30, 2013. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -51,4 +51,8 @@ those not wanting a Swedish layout or are using QWERTY.

    I would love to discuss this, feel free to comment on this gist!

    ## Typical errors

    I just noticed that to get the arrow keys to also work. You just need to "play around" choosing another layout then switching back to the colemak one.

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
  15. Tarrasch revised this gist Nov 8, 2013. 1 changed file with 0 additions and 248 deletions.
    248 changes: 0 additions & 248 deletions xmodmap-this-file-if-u-use-thinkpad
    Original file line number Diff line number Diff line change
    @@ -1,248 +0,0 @@
    keycode 8 =
    keycode 9 = Escape NoSymbol Escape
    keycode 10 = 1 exclam 1 exclam exclamdown onesuperior onesuperior exclamdown
    keycode 11 = 2 at 2 quotedbl masculine twosuperior twosuperior oneeighth
    keycode 12 = 3 numbersign 3 sterling ordfeminine threesuperior threesuperior sterling
    keycode 13 = 4 dollar 4 dollar cent sterling EuroSign onequarter
    keycode 14 = 5 percent 5 percent EuroSign yen onehalf threeeighths
    keycode 15 = 6 asciicircum 6 asciicircum hstroke Hstroke threequarters fiveeighths
    keycode 16 = 7 ampersand 7 ampersand eth ETH braceleft seveneighths
    keycode 17 = 8 asterisk 8 asterisk thorn THORN bracketleft trademark
    keycode 18 = 9 parenleft 9 parenleft leftsinglequotemark leftdoublequotemark bracketright plusminus
    keycode 19 = 0 parenright 0 parenright rightsinglequotemark rightdoublequotemark braceright degree
    keycode 20 = minus underscore minus underscore endash emdash backslash questiondown
    keycode 21 = equal plus equal plus multiply division dead_cedilla dead_ogonek
    keycode 22 = BackSpace BackSpace BackSpace BackSpace
    keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
    keycode 24 = q Q q Q adiaeresis Adiaeresis at Greek_OMEGA
    keycode 25 = w W w W Home Home lstroke Lstroke
    keycode 26 = f F e E End End e E
    keycode 27 = p P r R End End paragraph registered
    keycode 28 = g G t T dead_ogonek asciitilde tslash Tslash
    keycode 29 = j J y Y dstroke Dstroke leftarrow yen
    keycode 30 = l L u U Next Next downarrow uparrow
    keycode 31 = u U i I Next Next rightarrow idotless
    keycode 32 = y Y o O Prior Prior oslash Oslash
    keycode 33 = semicolon colon p P odiaeresis Odiaeresis thorn THORN
    keycode 34 = bracketleft braceleft bracketleft braceleft guillemotleft U2039 dead_diaeresis dead_abovering
    keycode 35 = bracketright braceright bracketright braceright guillemotright U203A dead_tilde dead_macron
    keycode 36 = Return NoSymbol Return
    keycode 37 = Control_L NoSymbol Control_L
    keycode 38 = a A a A adiaeresis Adiaeresis ae AE
    keycode 39 = r R s S Escape Return ssharp section
    keycode 40 = s S d D Left Left eth ETH
    keycode 41 = t T f F Right Right dstroke ordfeminine
    keycode 42 = d D g G dead_diaeresis asciitilde eng ENG
    keycode 43 = h H h H dead_caron asciitilde hstroke Hstroke
    keycode 44 = n N j J Down Down dead_hook dead_horn
    keycode 45 = e E k K Up Up kra ampersand
    keycode 46 = i I l L aring Aring lstroke Lstroke
    keycode 47 = o O semicolon colon odiaeresis Odiaeresis dead_acute dead_doubleacute
    keycode 48 = apostrophe quotedbl apostrophe at otilde Otilde dead_circumflex dead_caron
    keycode 49 = grave asciitilde grave notsign dead_tilde asciitilde bar bar
    keycode 50 = Shift_L NoSymbol Shift_L
    keycode 51 = backslash bar numbersign asciitilde asciitilde asciitilde dead_grave dead_breve
    keycode 52 = z Z z Z XF86AudioStop AE guillemotleft less
    keycode 53 = x X x X XF86AudioPlay asciitilde guillemotright greater
    keycode 54 = c C c C XF86AudioPrev Ccedilla cent copyright
    keycode 55 = v V v V XF86AudioNext OE leftdoublequotemark leftsinglequotemark
    keycode 56 = b B b B dead_breve asciitilde rightdoublequotemark rightsinglequotemark
    keycode 57 = k K n N dead_abovering asciitilde n N
    keycode 58 = m M m M XF86AudioLowerVolume asciitilde mu masculine
    keycode 59 = comma less comma less XF86AudioRaiseVolume asciitilde horizconnector multiply
    keycode 60 = period greater period greater XF86AudioMute asciitilde periodcentered division
    keycode 61 = slash question slash question questiondown asciitilde dead_belowdot dead_abovedot
    keycode 62 = Shift_R NoSymbol Shift_R
    keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab
    keycode 64 = Alt_L Meta_L Alt_L Meta_L
    keycode 65 = space space space space space nobreakspace space nobreakspace
    keycode 66 = BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace
    keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1
    keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2
    keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3
    keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4
    keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5
    keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6
    keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7
    keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8
    keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9
    keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10
    keycode 77 = Num_Lock NoSymbol Num_Lock
    keycode 78 = ISO_Next_Group NoSymbol ISO_Next_Group
    keycode 79 = KP_Home KP_7 KP_Home KP_7
    keycode 80 = KP_Up KP_8 KP_Up KP_8
    keycode 81 = KP_Prior KP_9 KP_Prior KP_9
    keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode
    keycode 83 = KP_Left KP_4 KP_Left KP_4
    keycode 84 = KP_Begin KP_5 KP_Begin KP_5
    keycode 85 = KP_Right KP_6 KP_Right KP_6
    keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode
    keycode 87 = KP_End KP_1 KP_End KP_1
    keycode 88 = KP_Down KP_2 KP_Down KP_2
    keycode 89 = KP_Next KP_3 KP_Next KP_3
    keycode 90 = KP_Insert KP_0 KP_Insert KP_0
    keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
    keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
    keycode 93 =
    keycode 94 = minus underscore backslash bar endash emdash bar brokenbar
    keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11
    keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12
    keycode 97 =
    keycode 98 = Katakana NoSymbol Katakana
    keycode 99 = Hiragana NoSymbol Hiragana
    keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
    keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
    keycode 102 = Muhenkan NoSymbol Muhenkan
    keycode 103 =
    keycode 104 = KP_Enter NoSymbol KP_Enter
    keycode 105 = Control_R NoSymbol Control_R
    keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab
    keycode 107 = Print Sys_Req Print Sys_Req
    keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift Multi_key
    keycode 109 = Linefeed NoSymbol Linefeed
    keycode 110 = Home NoSymbol Home
    keycode 111 = Up NoSymbol Up
    keycode 112 = Prior NoSymbol Prior
    keycode 113 = Left NoSymbol Left
    keycode 114 = Right NoSymbol Right
    keycode 115 = End NoSymbol End
    keycode 116 = Down NoSymbol Down
    keycode 117 = Next NoSymbol Next
    keycode 118 = Insert NoSymbol Insert
    keycode 119 = Delete NoSymbol Delete
    keycode 120 =
    keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
    keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
    keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
    keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
    keycode 125 = KP_Equal NoSymbol KP_Equal
    keycode 126 = plusminus NoSymbol plusminus
    keycode 127 = Pause Break Pause Break
    keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
    keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
    keycode 130 = Hangul NoSymbol Hangul
    keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
    keycode 132 =
    keycode 133 = Super_L NoSymbol Super_L
    keycode 134 = Super_R NoSymbol Super_R
    keycode 135 = Menu NoSymbol Menu
    keycode 136 = Cancel NoSymbol Cancel
    keycode 137 = Redo NoSymbol Redo
    keycode 138 = SunProps NoSymbol SunProps
    keycode 139 = Undo NoSymbol Undo
    keycode 140 = SunFront NoSymbol SunFront
    keycode 141 = XF86Copy NoSymbol XF86Copy
    keycode 142 = SunOpen NoSymbol SunOpen
    keycode 143 = XF86Paste NoSymbol XF86Paste
    keycode 144 = Find NoSymbol Find
    keycode 145 = XF86Cut NoSymbol XF86Cut
    keycode 146 = Help NoSymbol Help
    keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
    keycode 148 = XF86Calculator NoSymbol XF86Calculator
    keycode 149 =
    keycode 150 = XF86Sleep NoSymbol XF86Sleep
    keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
    keycode 152 = XF86Explorer NoSymbol XF86Explorer
    keycode 153 = XF86Send NoSymbol XF86Send
    keycode 154 =
    keycode 155 = XF86Xfer NoSymbol XF86Xfer
    keycode 156 = XF86Launch1 NoSymbol XF86Launch1
    keycode 157 = XF86Launch2 NoSymbol XF86Launch2
    keycode 158 = XF86WWW NoSymbol XF86WWW
    keycode 159 = XF86DOS NoSymbol XF86DOS
    keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
    keycode 161 =
    keycode 162 = XF86RotateWindows NoSymbol XF86RotateWindows
    keycode 163 = XF86Mail NoSymbol XF86Mail
    keycode 164 = XF86Favorites NoSymbol XF86Favorites
    keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
    keycode 166 = XF86Back NoSymbol XF86Back
    keycode 167 = XF86Forward NoSymbol XF86Forward
    keycode 168 =
    keycode 169 = XF86Eject NoSymbol XF86Eject
    keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
    keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
    keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
    keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
    keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
    keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
    keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
    keycode 177 = XF86Phone NoSymbol XF86Phone
    keycode 178 =
    keycode 179 = XF86Tools NoSymbol XF86Tools
    keycode 180 = XF86HomePage NoSymbol XF86HomePage
    keycode 181 = XF86Reload NoSymbol XF86Reload
    keycode 182 = XF86Close NoSymbol XF86Close
    keycode 183 =
    keycode 184 =
    keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
    keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
    keycode 187 = parenleft NoSymbol parenleft
    keycode 188 = parenright NoSymbol parenright
    keycode 189 = XF86New NoSymbol XF86New
    keycode 190 = Redo NoSymbol Redo
    keycode 191 = XF86Tools NoSymbol XF86Tools
    keycode 192 = XF86Launch5 NoSymbol XF86Launch5
    keycode 193 = XF86Launch6 NoSymbol XF86Launch6
    keycode 194 = XF86Launch7 NoSymbol XF86Launch7
    keycode 195 = XF86Launch8 NoSymbol XF86Launch8
    keycode 196 = XF86Launch9 NoSymbol XF86Launch9
    keycode 197 =
    keycode 198 =
    keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
    keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
    keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
    keycode 202 =
    keycode 203 = Mode_switch NoSymbol Mode_switch
    keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
    keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
    keycode 206 = NoSymbol Super_L NoSymbol Super_L
    keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
    keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
    keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
    keycode 210 = XF86Launch3 NoSymbol XF86Launch3
    keycode 211 = XF86Launch4 NoSymbol XF86Launch4
    keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
    keycode 213 = XF86Suspend NoSymbol XF86Suspend
    keycode 214 = XF86Close NoSymbol XF86Close
    keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
    keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
    keycode 217 =
    keycode 218 = Print NoSymbol Print
    keycode 219 =
    keycode 220 = XF86WebCam NoSymbol XF86WebCam
    keycode 221 =
    keycode 222 =
    keycode 223 = XF86Mail NoSymbol XF86Mail
    keycode 224 = XF86Messenger NoSymbol XF86Messenger
    keycode 225 = XF86Search NoSymbol XF86Search
    keycode 226 = XF86Go NoSymbol XF86Go
    keycode 227 = XF86Finance NoSymbol XF86Finance
    keycode 228 = XF86Game NoSymbol XF86Game
    keycode 229 = XF86Shop NoSymbol XF86Shop
    keycode 230 =
    keycode 231 = Cancel NoSymbol Cancel
    keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
    keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
    keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
    keycode 235 = XF86Display NoSymbol XF86Display
    keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
    keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
    keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
    keycode 239 = XF86Send NoSymbol XF86Send
    keycode 240 = XF86Reply NoSymbol XF86Reply
    keycode 241 = XF86MailForward NoSymbol XF86MailForward
    keycode 242 = XF86Save NoSymbol XF86Save
    keycode 243 = XF86Documents NoSymbol XF86Documents
    keycode 244 = XF86Battery NoSymbol XF86Battery
    keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
    keycode 246 = XF86WLAN NoSymbol XF86WLAN
    keycode 247 =
    keycode 248 =
    keycode 249 =
    keycode 250 =
    keycode 251 =
    keycode 252 =
    keycode 253 =
    keycode 254 =
    keycode 255 =
  16. Tarrasch revised this gist Sep 18, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ which are independent of the language.

    Paste this in your terminal

    GISTDIR='https://raw.github.com/gist/1293692'
    GISTDIR='https://gist.github.com/Tarrasch/1293692/raw'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null

  17. Tarrasch revised this gist Jan 8, 2013. 1 changed file with 248 additions and 0 deletions.
    248 changes: 248 additions & 0 deletions xmodmap-this-file-if-u-use-thinkpad
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,248 @@
    keycode 8 =
    keycode 9 = Escape NoSymbol Escape
    keycode 10 = 1 exclam 1 exclam exclamdown onesuperior onesuperior exclamdown
    keycode 11 = 2 at 2 quotedbl masculine twosuperior twosuperior oneeighth
    keycode 12 = 3 numbersign 3 sterling ordfeminine threesuperior threesuperior sterling
    keycode 13 = 4 dollar 4 dollar cent sterling EuroSign onequarter
    keycode 14 = 5 percent 5 percent EuroSign yen onehalf threeeighths
    keycode 15 = 6 asciicircum 6 asciicircum hstroke Hstroke threequarters fiveeighths
    keycode 16 = 7 ampersand 7 ampersand eth ETH braceleft seveneighths
    keycode 17 = 8 asterisk 8 asterisk thorn THORN bracketleft trademark
    keycode 18 = 9 parenleft 9 parenleft leftsinglequotemark leftdoublequotemark bracketright plusminus
    keycode 19 = 0 parenright 0 parenright rightsinglequotemark rightdoublequotemark braceright degree
    keycode 20 = minus underscore minus underscore endash emdash backslash questiondown
    keycode 21 = equal plus equal plus multiply division dead_cedilla dead_ogonek
    keycode 22 = BackSpace BackSpace BackSpace BackSpace
    keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
    keycode 24 = q Q q Q adiaeresis Adiaeresis at Greek_OMEGA
    keycode 25 = w W w W Home Home lstroke Lstroke
    keycode 26 = f F e E End End e E
    keycode 27 = p P r R End End paragraph registered
    keycode 28 = g G t T dead_ogonek asciitilde tslash Tslash
    keycode 29 = j J y Y dstroke Dstroke leftarrow yen
    keycode 30 = l L u U Next Next downarrow uparrow
    keycode 31 = u U i I Next Next rightarrow idotless
    keycode 32 = y Y o O Prior Prior oslash Oslash
    keycode 33 = semicolon colon p P odiaeresis Odiaeresis thorn THORN
    keycode 34 = bracketleft braceleft bracketleft braceleft guillemotleft U2039 dead_diaeresis dead_abovering
    keycode 35 = bracketright braceright bracketright braceright guillemotright U203A dead_tilde dead_macron
    keycode 36 = Return NoSymbol Return
    keycode 37 = Control_L NoSymbol Control_L
    keycode 38 = a A a A adiaeresis Adiaeresis ae AE
    keycode 39 = r R s S Escape Return ssharp section
    keycode 40 = s S d D Left Left eth ETH
    keycode 41 = t T f F Right Right dstroke ordfeminine
    keycode 42 = d D g G dead_diaeresis asciitilde eng ENG
    keycode 43 = h H h H dead_caron asciitilde hstroke Hstroke
    keycode 44 = n N j J Down Down dead_hook dead_horn
    keycode 45 = e E k K Up Up kra ampersand
    keycode 46 = i I l L aring Aring lstroke Lstroke
    keycode 47 = o O semicolon colon odiaeresis Odiaeresis dead_acute dead_doubleacute
    keycode 48 = apostrophe quotedbl apostrophe at otilde Otilde dead_circumflex dead_caron
    keycode 49 = grave asciitilde grave notsign dead_tilde asciitilde bar bar
    keycode 50 = Shift_L NoSymbol Shift_L
    keycode 51 = backslash bar numbersign asciitilde asciitilde asciitilde dead_grave dead_breve
    keycode 52 = z Z z Z XF86AudioStop AE guillemotleft less
    keycode 53 = x X x X XF86AudioPlay asciitilde guillemotright greater
    keycode 54 = c C c C XF86AudioPrev Ccedilla cent copyright
    keycode 55 = v V v V XF86AudioNext OE leftdoublequotemark leftsinglequotemark
    keycode 56 = b B b B dead_breve asciitilde rightdoublequotemark rightsinglequotemark
    keycode 57 = k K n N dead_abovering asciitilde n N
    keycode 58 = m M m M XF86AudioLowerVolume asciitilde mu masculine
    keycode 59 = comma less comma less XF86AudioRaiseVolume asciitilde horizconnector multiply
    keycode 60 = period greater period greater XF86AudioMute asciitilde periodcentered division
    keycode 61 = slash question slash question questiondown asciitilde dead_belowdot dead_abovedot
    keycode 62 = Shift_R NoSymbol Shift_R
    keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab KP_Multiply KP_Multiply XF86ClearGrab
    keycode 64 = Alt_L Meta_L Alt_L Meta_L
    keycode 65 = space space space space space nobreakspace space nobreakspace
    keycode 66 = BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace BackSpace
    keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1 F1 F1 XF86Switch_VT_1
    keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2 F2 F2 XF86Switch_VT_2
    keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3 F3 F3 XF86Switch_VT_3
    keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4 F4 F4 XF86Switch_VT_4
    keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5 F5 F5 XF86Switch_VT_5
    keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6 F6 F6 XF86Switch_VT_6
    keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7 F7 F7 XF86Switch_VT_7
    keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8 F8 F8 XF86Switch_VT_8
    keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9 F9 F9 XF86Switch_VT_9
    keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10 F10 F10 XF86Switch_VT_10
    keycode 77 = Num_Lock NoSymbol Num_Lock
    keycode 78 = ISO_Next_Group NoSymbol ISO_Next_Group
    keycode 79 = KP_Home KP_7 KP_Home KP_7
    keycode 80 = KP_Up KP_8 KP_Up KP_8
    keycode 81 = KP_Prior KP_9 KP_Prior KP_9
    keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode KP_Subtract KP_Subtract XF86Prev_VMode
    keycode 83 = KP_Left KP_4 KP_Left KP_4
    keycode 84 = KP_Begin KP_5 KP_Begin KP_5
    keycode 85 = KP_Right KP_6 KP_Right KP_6
    keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode KP_Add KP_Add XF86Next_VMode
    keycode 87 = KP_End KP_1 KP_End KP_1
    keycode 88 = KP_Down KP_2 KP_Down KP_2
    keycode 89 = KP_Next KP_3 KP_Next KP_3
    keycode 90 = KP_Insert KP_0 KP_Insert KP_0
    keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
    keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
    keycode 93 =
    keycode 94 = minus underscore backslash bar endash emdash bar brokenbar
    keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11 F11 F11 XF86Switch_VT_11
    keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12 F12 F12 XF86Switch_VT_12
    keycode 97 =
    keycode 98 = Katakana NoSymbol Katakana
    keycode 99 = Hiragana NoSymbol Hiragana
    keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
    keycode 101 = Hiragana_Katakana NoSymbol Hiragana_Katakana
    keycode 102 = Muhenkan NoSymbol Muhenkan
    keycode 103 =
    keycode 104 = KP_Enter NoSymbol KP_Enter
    keycode 105 = Control_R NoSymbol Control_R
    keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab KP_Divide KP_Divide XF86Ungrab
    keycode 107 = Print Sys_Req Print Sys_Req
    keycode 108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift Multi_key
    keycode 109 = Linefeed NoSymbol Linefeed
    keycode 110 = Home NoSymbol Home
    keycode 111 = Up NoSymbol Up
    keycode 112 = Prior NoSymbol Prior
    keycode 113 = Left NoSymbol Left
    keycode 114 = Right NoSymbol Right
    keycode 115 = End NoSymbol End
    keycode 116 = Down NoSymbol Down
    keycode 117 = Next NoSymbol Next
    keycode 118 = Insert NoSymbol Insert
    keycode 119 = Delete NoSymbol Delete
    keycode 120 =
    keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
    keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
    keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
    keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
    keycode 125 = KP_Equal NoSymbol KP_Equal
    keycode 126 = plusminus NoSymbol plusminus
    keycode 127 = Pause Break Pause Break
    keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
    keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
    keycode 130 = Hangul NoSymbol Hangul
    keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
    keycode 132 =
    keycode 133 = Super_L NoSymbol Super_L
    keycode 134 = Super_R NoSymbol Super_R
    keycode 135 = Menu NoSymbol Menu
    keycode 136 = Cancel NoSymbol Cancel
    keycode 137 = Redo NoSymbol Redo
    keycode 138 = SunProps NoSymbol SunProps
    keycode 139 = Undo NoSymbol Undo
    keycode 140 = SunFront NoSymbol SunFront
    keycode 141 = XF86Copy NoSymbol XF86Copy
    keycode 142 = SunOpen NoSymbol SunOpen
    keycode 143 = XF86Paste NoSymbol XF86Paste
    keycode 144 = Find NoSymbol Find
    keycode 145 = XF86Cut NoSymbol XF86Cut
    keycode 146 = Help NoSymbol Help
    keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
    keycode 148 = XF86Calculator NoSymbol XF86Calculator
    keycode 149 =
    keycode 150 = XF86Sleep NoSymbol XF86Sleep
    keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
    keycode 152 = XF86Explorer NoSymbol XF86Explorer
    keycode 153 = XF86Send NoSymbol XF86Send
    keycode 154 =
    keycode 155 = XF86Xfer NoSymbol XF86Xfer
    keycode 156 = XF86Launch1 NoSymbol XF86Launch1
    keycode 157 = XF86Launch2 NoSymbol XF86Launch2
    keycode 158 = XF86WWW NoSymbol XF86WWW
    keycode 159 = XF86DOS NoSymbol XF86DOS
    keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
    keycode 161 =
    keycode 162 = XF86RotateWindows NoSymbol XF86RotateWindows
    keycode 163 = XF86Mail NoSymbol XF86Mail
    keycode 164 = XF86Favorites NoSymbol XF86Favorites
    keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
    keycode 166 = XF86Back NoSymbol XF86Back
    keycode 167 = XF86Forward NoSymbol XF86Forward
    keycode 168 =
    keycode 169 = XF86Eject NoSymbol XF86Eject
    keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
    keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
    keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
    keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
    keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
    keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
    keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
    keycode 177 = XF86Phone NoSymbol XF86Phone
    keycode 178 =
    keycode 179 = XF86Tools NoSymbol XF86Tools
    keycode 180 = XF86HomePage NoSymbol XF86HomePage
    keycode 181 = XF86Reload NoSymbol XF86Reload
    keycode 182 = XF86Close NoSymbol XF86Close
    keycode 183 =
    keycode 184 =
    keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
    keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
    keycode 187 = parenleft NoSymbol parenleft
    keycode 188 = parenright NoSymbol parenright
    keycode 189 = XF86New NoSymbol XF86New
    keycode 190 = Redo NoSymbol Redo
    keycode 191 = XF86Tools NoSymbol XF86Tools
    keycode 192 = XF86Launch5 NoSymbol XF86Launch5
    keycode 193 = XF86Launch6 NoSymbol XF86Launch6
    keycode 194 = XF86Launch7 NoSymbol XF86Launch7
    keycode 195 = XF86Launch8 NoSymbol XF86Launch8
    keycode 196 = XF86Launch9 NoSymbol XF86Launch9
    keycode 197 =
    keycode 198 =
    keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
    keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
    keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
    keycode 202 =
    keycode 203 = Mode_switch NoSymbol Mode_switch
    keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
    keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
    keycode 206 = NoSymbol Super_L NoSymbol Super_L
    keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
    keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
    keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
    keycode 210 = XF86Launch3 NoSymbol XF86Launch3
    keycode 211 = XF86Launch4 NoSymbol XF86Launch4
    keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
    keycode 213 = XF86Suspend NoSymbol XF86Suspend
    keycode 214 = XF86Close NoSymbol XF86Close
    keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
    keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
    keycode 217 =
    keycode 218 = Print NoSymbol Print
    keycode 219 =
    keycode 220 = XF86WebCam NoSymbol XF86WebCam
    keycode 221 =
    keycode 222 =
    keycode 223 = XF86Mail NoSymbol XF86Mail
    keycode 224 = XF86Messenger NoSymbol XF86Messenger
    keycode 225 = XF86Search NoSymbol XF86Search
    keycode 226 = XF86Go NoSymbol XF86Go
    keycode 227 = XF86Finance NoSymbol XF86Finance
    keycode 228 = XF86Game NoSymbol XF86Game
    keycode 229 = XF86Shop NoSymbol XF86Shop
    keycode 230 =
    keycode 231 = Cancel NoSymbol Cancel
    keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
    keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
    keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
    keycode 235 = XF86Display NoSymbol XF86Display
    keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
    keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
    keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
    keycode 239 = XF86Send NoSymbol XF86Send
    keycode 240 = XF86Reply NoSymbol XF86Reply
    keycode 241 = XF86MailForward NoSymbol XF86MailForward
    keycode 242 = XF86Save NoSymbol XF86Save
    keycode 243 = XF86Documents NoSymbol XF86Documents
    keycode 244 = XF86Battery NoSymbol XF86Battery
    keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
    keycode 246 = XF86WLAN NoSymbol XF86WLAN
    keycode 247 =
    keycode 248 =
    keycode 249 =
    keycode 250 =
    keycode 251 =
    keycode 252 =
    keycode 253 =
    keycode 254 =
    keycode 255 =
  18. Tarrasch revised this gist Jul 23, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -35,7 +35,7 @@ don't want to replace en colemak, replace something else!
    AltGr+l --> å
    AltGr+ö --> ö

    where a, k, ö are the physical positions for qwerty.
    where a, l, ö are the physical positions on qwerty.

    Note it's just a movedown of the colemak keys except for `å` since it's
    a vowel and should not be placed at the same key as the non-vowel `r`!
  19. Tarrasch revised this gist Jul 23, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@ Paste this in your terminal

    GISTDIR='https://raw.github.com/gist/1293692'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us > /dev/null

    Now log in and out and select the `English (Colemak)` layout from the GUI menus.

  20. Tarrasch revised this gist Jul 23, 2012. 3 changed files with 1350 additions and 1 deletion.
    File renamed without changes.
    12 changes: 11 additions & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,17 @@ optimized for English and not Swedish.
    Additionally I've squeezed a lot of other fancy stuff through `AltGr`,
    which are independent of the language.

    ## Installation instructions for Ubuntu
    ## Lazy (paste in terminal) installation for Ubuntu

    Paste this in your terminal

    GISTDIR='https://raw.github.com/gist/1293692'
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    curl "$GISTDIR/us" | sudo tee /usr/share/X11/xkb/symbols/us

    Now log in and out and select the `English (Colemak)` layout from the GUI menus.

    ## Manual installation instructions for Ubuntu

    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    sudo vi /usr/share/X11/xkb/symbols/us % or whatever editor you use
    1,339 changes: 1,339 additions & 0 deletions us
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1339 @@
    default
    partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {

    name[Group1]= "English (US)";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde ] };
    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft ] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ minus, underscore ] };
    key <AE12> { [ equal, plus ] };

    key <AD01> { [ q, Q ] };
    key <AD02> { [ w, W ] };
    key <AD03> { [ e, E ] };
    key <AD04> { [ r, R ] };
    key <AD05> { [ t, T ] };
    key <AD06> { [ y, Y ] };
    key <AD07> { [ u, U ] };
    key <AD08> { [ i, I ] };
    key <AD09> { [ o, O ] };
    key <AD10> { [ p, P ] };
    key <AD11> { [ bracketleft, braceleft ] };
    key <AD12> { [ bracketright, braceright ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ s, S ] };
    key <AC03> { [ d, D ] };
    key <AC04> { [ f, F ] };
    key <AC05> { [ g, G ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ j, J ] };
    key <AC08> { [ k, K ] };
    key <AC09> { [ l, L ] };
    key <AC10> { [ semicolon, colon ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ z, Z ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ c, C ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ b, B ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ period, greater ] };
    key <AB10> { [ slash, question ] };

    key <BKSL> { [ backslash, bar ] };
    // End alphanumeric section
    };

    partial alphanumeric_keys
    xkb_symbols "euro" {

    name[Group1]= "English (US, with euro on 5)";

    include "us(basic)"

    include "eurosign(5)"

    include "level3(ralt_switch)"
    };


    partial alphanumeric_keys
    xkb_symbols "intl" {

    name[Group1]= "English (US, international with dead keys)";

    include "us(basic)"

    // Alphanumeric section
    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, yen, dead_belowdot ] };
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD04> { [ r, R, registered, registered ] };
    key <AD05> { [ t, T, thorn, THORN ] };
    key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD10> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AD12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ s, S, ssharp, section ] };
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, f, F ] };
    key <AC05> { [ g, G, g, G ] };
    key <AC06> { [ h, H, h, H ] };
    key <AC07> { [ j, J, j, J ] };
    key <AC08> { [ k, K, oe, OE ] };

    key <AC09> { [ l, L, oslash, Ooblique ] };
    key <AC10> { [ semicolon, colon, paragraph, degree ] };
    key <AC11> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, x, X ] };
    key <AB03> { [ c, C, copyright, cent ] };
    key <AB04> { [ v, V, v, V ] };
    key <AB05> { [ b, B, b, B ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, ccedilla, Ccedilla ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AB10> { [ slash, question, questiondown, dead_hook ] };
    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Based on symbols/us_intl keyboard map:
    // Dead-keys definition for a very simple US/ASCII layout.
    // by Conectiva (http://www.conectiva.com.br)
    // modified by Ricardo Y. Igarashi (iga@that.com.br)

    // Added the following deadkeys, to make it truly international:
    //
    // dead_macron: on AltGr-minus
    // dead_breve: on AltGr-parenleft
    // dead_abovedot: on AltGr-period
    // dead_abovering: on AltGr-0
    // dead_doubleacute: on AltGr-equal (as quotedbl is already used)
    // dead_caron: on AltGr-less (AltGr-shift-comma)
    // dead_cedilla: on AltGr-comma
    // dead_ogonek: on AltGr-semicolon
    // dead_belowdot: on AltGr-underscore (AltGr-shift-minus)
    // dead_hook: on AltGr-question
    // dead_horn: on AltGr-plus (AltGr-shift-equal)
    // dead_diaeresis: on AltGr-colon (Alt-shift-semicolon)
    //
    // those were already there:
    // dead_grave
    // dead_acute
    // dead_circumflex
    // dead_tilde
    // dead_diaeresis

    partial alphanumeric_keys
    xkb_symbols "alt-intl" {

    name[Group1]= "English (US, alternative international)";

    include "us"

    key <TLDE> { [ dead_grave, dead_tilde, grave, asciitilde ] };
    key <AE05> { [ 5, percent, EuroSign ] };
    key <AE06> { [ 6, dead_circumflex, asciicircum, asciicircum ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ minus, underscore, dead_macron, dead_belowdot ] };
    key <AE12> { [ equal, plus, dead_doubleacute, dead_horn ] };

    key <AD03> { [ e, E, EuroSign, cent ] };

    key <AC10> { [ semicolon, colon, dead_ogonek, dead_diaeresis ] };
    key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] };

    key <AB08> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AB09> { [ period, greater, dead_abovedot, dead_circumflex ] };
    key <AB10> { [ slash, question, dead_hook, dead_hook ] };

    include "level3(ralt_switch)"
    };

    // based on a keyboard map from an 'xkb/symbols/dk' file

    partial alphanumeric_keys
    xkb_symbols "dvorak" {

    name[Group1]= "English (Dvorak)";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE07> { [ 7, ampersand ] };
    key <AE08> { [ 8, asterisk ] };
    key <AE09> { [ 9, parenleft, dead_grave] };
    key <AE10> { [ 0, parenright ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ slash, question ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };

    key <BKSL> { [ backslash, bar ] };
    };

    // Dvorak international with dead keys
    // Olivier Mehani (shtrom-xorg@ssji.net)
    // Reproduce the per-key mapping of us(intl) for the dvorak layout
    // aka "I just swapped my keys over"
    partial alphanumeric_keys
    xkb_symbols "dvorak-intl" {

    name[Group1]= "English (Dvorak international with dead keys)";

    include "us(dvorak)"

    key <TLDE> { [dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> { [ 1, exclam, exclamdown, onesuperior ] };
    key <AE02> { [ 2, at, twosuperior, dead_doubleacute ] };
    key <AE03> { [ 3, numbersign, threesuperior, dead_macron ] };
    key <AE04> { [ 4, dollar, currency, sterling ] };
    key <AE05> { [ 5, percent, EuroSign, dead_cedilla ] };
    key <AE06> { [ 6, dead_circumflex, onequarter, asciicircum ] };
    key <AE07> { [ 7, ampersand, onehalf, dead_horn ] };
    key <AE08> { [ 8, asterisk, threequarters, dead_ogonek ] };
    key <AE09> { [ 9, parenleft, leftsinglequotemark, dead_breve ] };
    key <AE10> { [ 0, parenright, rightsinglequotemark, dead_abovering ] };
    key <AE11> { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] };
    key <AE12> { [bracketright, braceright, guillemotright, rightdoublequotemark ] };

    key <AD01> { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] };
    key <AD02> { [ comma, less, ccedilla, Ccedilla ] };
    key <AD03> { [ period, greater, dead_abovedot, dead_caron ] };
    key <AD04> { [ p, P, odiaeresis, Odiaeresis ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };
    // key <AD06> { [ f, F ] };
    // key <AD07> { [ g, G ] };
    key <AD08> { [ c, C, copyright, cent ] };
    key <AD09> { [ r, R, registered, registered ] };
    key <AD10> { [ l, L, oslash, Ooblique ] };
    key <AD11> { [ slash, question, questiondown, dead_hook ] };
    // key <AD12> { [ equal, plus, multiply, division ] };

    key <AC01> { [ a, A, aacute, Aacute ] };
    key <AC02> { [ o, O, oacute, Oacute ] };
    key <AC03> { [ e, E, eacute, Eacute ] };
    key <AC04> { [ u, U, uacute, Uacute ] };
    key <AC05> { [ i, I, iacute, Iacute ] };
    key <AC06> { [ d, D, eth, ETH ] };
    // key <AC07> { [ h, H ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp, section ] };
    // key <AC11> { [ minus, underscore, yen, dead_belowdot ] };

    key <AB01> { [ semicolon, colon, paragraph, degree ] };
    key <AB02> { [ q, Q, adiaeresis, Adiaeresis ] };
    // key <AB03> { [ j, J ] };
    key <AB04> { [ k, K, oe, OE ] };
    // key <AB05> { [ x, X ] };
    // key <AB06> { [ b, B ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ w, W, aring, Aring ] };
    // key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z, ae, AE ] };

    key <BKSL> { [ backslash, bar, notsign, brokenbar ] };

    include "level3(ralt_switch)"
    };

    // Dvorak international without dead keys
    // Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net)
    // Based on information from http://www.poupinou.org/dvorak/index.html
    //
    // ` 1 2 3 4 5 6 7 8 9 0 [ ] \
    // €
    //
    // ' , . p y f g c r l / =
    // ä ê ë ü ç
    //
    // a o e u i d h t n s -
    // à ô é û î ß
    //
    // ; q j k x b m w v z
    // â ö è ù ï

    partial alphanumeric_keys
    xkb_symbols "dvorak-alt-intl" {

    name[Group1]= "English (Dvorak alternative international no dead keys)";

    include "us(dvorak)"

    key <AE04> { [ 4, dollar, EuroSign ] };

    key <AD02> { [ comma, less, adiaeresis, dead_caron ] };
    key <AD03> { [ period, greater, ecircumflex, periodcentered ] };
    key <AD04> { [ p, P, ediaeresis, dead_cedilla ] };
    key <AD05> { [ y, Y, udiaeresis ] };
    key <AD08> { [ c, C, ccedilla, dead_abovedot ] };

    key <AC01> { [ a, A, agrave ] };
    key <AC02> { [ o, O, ocircumflex ] };
    key <AC03> { [ e, E, eacute ] };
    key <AC04> { [ u, U, ucircumflex ] };
    key <AC05> { [ i, I, icircumflex ] };
    key <AC10> { [ s, S, ssharp ] };

    key <AB01> { [ semicolon, colon, acircumflex ] };
    key <AB02> { [ q, Q, odiaeresis, dead_ogonek ] };
    key <AB03> { [ j, J, egrave, dead_doubleacute ] };
    key <AB04> { [ k, K, ugrave ] };
    key <AB05> { [ x, X, idiaeresis ] };

    include "level3(ralt_switch)"
    };

    // Left and right handed dvorak layouts
    // by sqweek <sqweek@gmail.com> 2006-01-30
    // Based on the corresponding layouts in the console-tools package.
    partial alphanumeric_keys
    xkb_symbols "dvorak-l" {

    include "us(dvorak)"
    name[Group1]= "English (left handed Dvorak)";

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ bracketright, braceright ] };
    key <AE03> { [ slash, question ] };
    key <AE04> { [ p, P ] };
    key <AE05> { [ f, F ] };
    key <AE06> { [ m, M ] };
    key <AE07> { [ l, L ] };
    key <AE08> { [ j, J ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 3, numbersign ] };
    key <AE11> { [ 2, at ] };
    key <AE12> { [ 1, exclam ] };

    key <AD01> { [ semicolon, colon ] };
    key <AD02> { [ q, Q ] };
    key <AD03> { [ b, B ] };
    key <AD04> { [ y, Y ] };
    key <AD05> { [ u, U ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ o, O ] };
    key <AD09> { [ period, greater ] };
    key <AD10> { [ 6, asciicircum ] };
    key <AD11> { [ 5, percent ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ minus, underscore ] };
    key <AC02> { [ k, K ] };
    key <AC03> { [ c, C ] };
    key <AC04> { [ d, D ] };
    key <AC05> { [ t, T ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ e, E ] };
    key <AC08> { [ a, A ] };
    key <AC09> { [ z, Z ] };
    key <AC10> { [ 8, asterisk ] };
    key <AC11> { [ 7, ampersand ] };

    key <AB01> { [ apostrophe, quotedbl ] };
    key <AB02> { [ x, X ] };
    key <AB03> { [ g, G ] };
    key <AB04> { [ v, V ] };
    key <AB05> { [ w, W ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ i, I ] };
    key <AB08> { [ comma, less ] };
    key <AB09> { [ 0, parenright ] };
    key <AB10> { [ 9, parenleft ] };
    };

    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {

    include "us(dvorak)"
    name[Group1]= "English (right handed Dvorak)";

    key <AE01> { [ 1, exclam ] };
    key <AE02> { [ 2, at ] };
    key <AE03> { [ 3, numbersign ] };
    key <AE04> { [ 4, dollar ] };
    key <AE05> { [ j, J ] };
    key <AE06> { [ l, L ] };
    key <AE07> { [ m, M ] };
    key <AE08> { [ f, F ] };
    key <AE09> { [ p, P ] };
    key <AE10> { [ slash, question ] };
    key <AE11> { [ bracketleft, braceleft ] };
    key <AE12> { [ bracketright, braceright ] };

    key <AD01> { [ 5, percent ] };
    key <AD02> { [ 6, asciicircum ] };
    key <AD03> { [ q, Q ] };
    key <AD04> { [ period, greater ] };
    key <AD05> { [ o, O ] };
    key <AD06> { [ r, R ] };
    key <AD07> { [ s, S ] };
    key <AD08> { [ u, U ] };
    key <AD09> { [ y, Y ] };
    key <AD10> { [ b, B ] };
    key <AD11> { [ semicolon, colon ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ 7, ampersand ] };
    key <AC02> { [ 8, asterisk ] };
    key <AC03> { [ z, Z ] };
    key <AC04> { [ a, A ] };
    key <AC05> { [ e, E ] };
    key <AC06> { [ h, H ] };
    key <AC07> { [ t, T ] };
    key <AC08> { [ d, D ] };
    key <AC09> { [ c, C ] };
    key <AC10> { [ k, K ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ 9, parenleft ] };
    key <AB02> { [ 0, parenright ] };
    key <AB03> { [ x, X ] };
    key <AB04> { [ comma, less ] };
    key <AB05> { [ i, I ] };
    key <AB06> { [ n, N ] };
    key <AB07> { [ w, W ] };
    key <AB08> { [ v, V ] };
    key <AB09> { [ g, G ] };
    key <AB10> { [ apostrophe, quotedbl ] };
    };

    // Classic dvorak layout
    // by Piter Punk <piterpk@terra.com.br> - 2006-07-06
    // Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net
    // on xorg list.
    partial alphanumeric_keys
    xkb_symbols "dvorak-classic" {

    name[Group1]= "English (classic Dvorak)";

    // Alphanumeric section

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };

    key <AE01> { [ bracketleft, braceleft ] };
    key <AE02> { [ 7, ampersand ] };
    key <AE03> { [ 5, percent ] };
    key <AE04> { [ 3, numbersign ] };
    key <AE05> { [ 1, exclam ] };
    key <AE06> { [ 9, parenleft, dead_grave] };
    key <AE07> { [ 0, parenright ] };
    key <AE08> { [ 2, at ] };
    key <AE09> { [ 4, dollar ] };
    key <AE10> { [ 6, asciicircum, dead_circumflex, dead_circumflex ] };
    key <AE11> { [ 8, asterisk ] };
    key <AE12> { [ bracketright, braceright, dead_tilde] };

    key <AD01> { [ slash, question ] };
    key <AD02> { [ comma, less, dead_cedilla, dead_caron ] };
    key <AD03> { [ period, greater, dead_abovedot, periodcentered ] };
    key <AD04> { [ p, P ] };
    key <AD05> { [ y, Y ] };
    key <AD06> { [ f, F ] };
    key <AD07> { [ g, G ] };
    key <AD08> { [ c, C ] };
    key <AD09> { [ r, R ] };
    key <AD10> { [ l, L ] };
    key <AD11> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] };
    key <AD12> { [ equal, plus ] };

    key <AC01> { [ a, A ] };
    key <AC02> { [ o, O ] };
    key <AC03> { [ e, E ] };
    key <AC04> { [ u, U ] };
    key <AC05> { [ i, I ] };
    key <AC06> { [ d, D ] };
    key <AC07> { [ h, H ] };
    key <AC08> { [ t, T ] };
    key <AC09> { [ n, N ] };
    key <AC10> { [ s, S ] };
    key <AC11> { [ minus, underscore ] };

    key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
    key <AB02> { [ q, Q ] };
    key <AB03> { [ j, J ] };
    key <AB04> { [ k, K ] };
    key <AB05> { [ x, X ] };
    key <AB06> { [ b, B ] };
    key <AB07> { [ m, M ] };
    key <AB08> { [ w, W ] };
    key <AB09> { [ v, V ] };
    key <AB10> { [ z, Z ] };
    key <BKSL> { [ backslash, bar ] };
    };

    // Programmer Dvorak, by Roland Kaufmann <rlndkfmn at gmail dot com>
    // License: BSD, available at <http://www.kaufmann.no/roland/dvorak/license.html>
    // Main features: Numbers are in shift position (like French), symbols have been
    // placed in locations that give good hand-alternation and finger rolling with
    // symbols that usually follows, accented characters are possible for I18N.
    partial alphanumeric_keys
    xkb_symbols "dvp" {
    include "us(dvorak)"

    name[Group1] = "English (programmer Dvorak)";

    // Unmodified Shift AltGr Shift+AltGr
    // symbols row, left side
    key <TLDE> { [ dollar, asciitilde, dead_tilde ] };
    key <AE01> { [ ampersand, percent ] };
    key <AE02> { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE03> { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE04> { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE05> { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE06> { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };

    // symbols row, right side
    key <AE07> { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE08> { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE09> { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE10> { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE11> { [ exclam, 8, exclamdown ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <AE12> { [ numbersign, grave, dead_grave ] };
    key <BKSP> { [ BackSpace, BackSpace ] };

    // upper row, left side
    key <AD01> { [ semicolon, colon, dead_diaeresis ] };
    key <AD02> { [ comma, less, guillemotleft ] };
    key <AD03> { [ period, greater, guillemotright ] };
    key <AD04> { [ p, P, paragraph, section ] };
    key <AD05> { [ y, Y, udiaeresis, Udiaeresis ] };

    // upper row, right side
    key <AD08> { [ c, C, ccedilla, Ccedilla ] };
    key <AD09> { [ r, R, registered, trademark ] };
    key <AD11> { [ slash, question, questiondown ] };
    key <AD12> { [ at, asciicircum, dead_circumflex, dead_caron ] };

    // home row, left side
    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ o, O, oslash, Ooblique ] };
    key <AC03> { [ e, E, ae, AE ] };
    key <AC04> { [ u, U, eacute, Eacute ] };

    // home row, right side
    key <AC06> { [ d, D, eth, ETH ] };
    key <AC07> { [ h, H, dead_acute ] };
    key <AC08> { [ t, T, thorn, THORN ] };
    key <AC09> { [ n, N, ntilde, Ntilde ] };
    key <AC10> { [ s, S, ssharp ] };
    key <AC11> { [ minus, underscore, hyphen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" };
    key <BKSL> { [ backslash, bar ] };

    // lower row, left side
    key <AB01> { [ apostrophe, quotedbl, dead_acute ] };
    };

    // phonetic layout for Russian letters on an US keyboard
    // by Ivan Popov <pin@konvalo.org> 2005-07-17

    // level3 modifier is a shortcut to the "us" meaning of the keys where
    // we place cyrillic letters, handy for accessing the corresponding
    // punctuation marks.
    // It is important to have access to punctuation marks, and the rest of
    // alphabetical keys are added for being consequent so that the users
    // can expect the level3 modifier to give what the key label shows.

    partial alphanumeric_keys
    xkb_symbols "rus" {

    name[Group1]= "Russian (US, phonetic)";

    include "us(basic)"

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
    key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
    key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
    key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
    key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
    key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
    key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] };
    key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
    key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
    key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
    key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
    key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
    key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
    key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
    key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
    key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
    key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
    key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
    key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
    key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
    key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
    key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
    key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
    key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
    key <AC10> { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] };
    key <AD11> { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] };
    key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] };
    key <AE12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] };
    key <LatY> { [ Cyrillic_yeru, Cyrillic_YERU ] };
    key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
    key <BKSL> { [ Cyrillic_e, Cyrillic_E, backslash, bar ] };
    key <AC11> { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] };
    key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "mac" {

    include "us(basic)"
    name[Group1]= "English (Macintosh)";
    key.type[group1]="FOUR_LEVEL";

    // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg
    key <LSGT> { [ section, plusminus, section, plusminus ] };
    key <TLDE> { [ grave, asciitilde, dead_grave, dead_horn ] };
    key <AE01> { [ 1, exclam, exclamdown, U2044 ] };
    key <AE02> { [ 2, at, trademark, EuroSign ] };
    key <AE03> { [ 3, numbersign, sterling, U2039 ] };
    key <AE04> { [ 4, dollar, cent, U203A ] };
    key <AE05> { [ 5, percent, infinity, UFB01 ] };
    key <AE06> { [ 6,asciicircum, section, UFB02 ] };
    key <AE07> { [ 7, ampersand, paragraph, doubledagger ] };
    key <AE08> { [ 8, asterisk, enfilledcircbullet, degree ] };
    key <AE09> { [ 9, parenleft, ordfeminine, periodcentered ] };
    key <AE10> { [ 0, parenright, masculine,singlelowquotemark] };
    key <AE11> { [ minus, underscore, endash, emdash ] };
    key <AE12> { [ equal, plus, notequal, plusminus ] };

    key <AD01> { [ q, Q, oe, OE ] };
    key <AD02> { [ w, W, U2211,doublelowquotemark] };
    key <AD03> { [ e, E, dead_acute, acute ] };
    key <AD04> { [ r, R, registered, U2030 ] };
    key <AD05> { [ t, T, dagger, dead_caron ] };
    key <AD06> { [ y, Y, yen, onequarter ] };
    key <AD07> { [ u, U, dead_diaeresis, diaeresis ] };
    key <AD08> { [ i, I, dead_circumflex, U02C6 ] };
    key <AD09> { [ o, O, oslash, Ooblique ] };
    key <AD10> { [ p, P, Greek_pi, U220F ] };
    key <AD11> { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] };
    key <AD12> { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] };
    key <BKSL> { [ backslash, bar, guillemotleft, guillemotright ] };

    key <AC01> { [ a, A, aring, Aring ] };
    key <AC02> { [ s, S, ssharp, dead_stroke ] };
    key <AC03> { [ d, D, partialderivative, eth ] };
    key <AC04> { [ f, F, function, dead_hook ] };
    key <AC05> { [ g, G, copyright, dead_doubleacute ] };
    key <AC06> { [ h, H, dead_abovedot, dead_belowdot ] };
    key <AC07> { [ j, J, U2206, onehalf ] };
    key <AC08> { [ k, K,dead_abovering, UF8FF ] };

    key <AC09> { [ l, L, notsign, THORN ] };
    key <AC10> { [ semicolon, colon, U2026, thorn ] };
    key <AC11> { [apostrophe, quotedbl, ae, AE ] };

    key <AB01> { [ z, Z, Greek_OMEGA, dead_cedilla ] };
    key <AB02> { [ x, X, U2248, dead_ogonek ] };
    // unclear whether "approxeq" is 2248 or 2245
    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB04> { [ v, V, squareroot, U25CA ] };
    key <AB05> { [ b, B, integral, idotless ] };
    key <AB06> { [ n, N, dead_tilde, U02DC ] };
    key <AB07> { [ m, M, mu, threequarters ] };
    key <AB08> { [ comma, less, lessthanequal, dead_macron ] };
    key <AB09> { [ period, greater, greaterthanequal, dead_breve ] };
    key <AB10> { [ slash, question, division, questiondown ] };

    include "level3(ralt_switch)"
    };

    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    // Swedish version by Arash Rouhani
    partial alphanumeric_keys
    xkb_symbols "colemak" {
    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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, XF86AudioStop, AE ] };
    key <AB02> { [ x, X, XF86AudioPlay, asciitilde ] };
    key <AB03> { [ c, C, XF86AudioPrev, Ccedilla ] };
    key <AB04> { [ v, V, XF86AudioNext, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, XF86AudioLowerVolume, asciitilde ] };
    key <AB08> { [ comma, less, XF86AudioRaiseVolume, asciitilde ] };
    key <AB09> { [ period, greater, XF86AudioMute, 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)"
    };


    // I do NOT like dead-keys - the International keyboard as defined by Microsoft
    // doesn't fit my needs. Why use two keystrokes for all simple characters (eg '
    // and <space> generates a single ') just to have an é (eacute) in two strokes
    // as well? I type ' more often than é (eacute).
    //
    // This file works just like a regular keyboard, BUT has all dead-keys
    // accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+"
    // followed by an e. In other words, this keyboard is not international as long
    // as you leave the right Alt key alone.
    //
    // The original MS International keyboard was intended for Latin1 (iso8859-1).
    // With the introduction of iso8859-15, the (important) ligature oe (and OE)
    // became available. I added them next to ae. Because I write ediaeresis more
    // often than registered, I moved registered to be next to copyright and added
    // ediaeresis and idiaeresis. - Adriaan

    partial alphanumeric_keys
    xkb_symbols "altgr-intl" {

    name[Group1]= "English (international AltGr dead keys)";

    include "us(intl)"

    // five dead keys moved into level3:

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AC11> { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] };

    // diversions from the MS Intl keyboard:

    key <AE01> { [ 1, exclam, onesuperior, exclamdown ] };
    key <AD04> { [ r, R, ediaeresis, Ediaeresis ] };
    key <AC07> { [ j, J, idiaeresis, Idiaeresis ] };
    key <AB02> { [ x, X, oe, OE ] };
    key <AB04> { [ v, V, registered, registered ] };

    // onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys:

    key <AE06> { [ 6, asciicircum, dead_circumflex, onequarter ] };
    key <AE07> { [ 7, ampersand, dead_horn, onehalf ] };
    key <AE08> { [ 8, asterisk, dead_ogonek, threequarters ] };

    include "level3(ralt_switch)"
    };

    // Intel ClassmatePC Keyboard Layout
    // by Piter PUNK <piterpk@terra.com.br>
    //
    // The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl)
    // to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since
    // the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key.

    // classmate - us(basic)
    partial alphanumeric_keys
    xkb_symbols "classmate" {
    include "us(basic)"
    name[Group1]= "USA - ClassmatePC";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    include "eurosign(5)"
    include "level3(switch)"
    };

    // classmate-intl - us(intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-intl" {
    include "us(intl)"
    name[Group1]= "USA - ClassmatePC (International)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    onehalf, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    threequarters, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-alt-intl - us(alt-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-alt-intl" {
    include "us(alt-intl)"
    name[Group1]= "USA - ClassmatePC (Alternative international)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KPSU> { [ KP_Subtract, KP_Subtract ] };

    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KPAD> { [ KP_Add, KP_Add,
    dead_ogonek, dead_diaeresis ] };

    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_circumflex ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    dead_hook, dead_hook ] };

    include "level3(switch)"
    };

    // classmate-altgr-intl - us(altgr-intl)
    // RCTL is generated by Fn+Alt, because that, when trying to access
    // the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got
    // the keypad keycodes. The keypad is changed to make Fn+Alt+<KP_key>
    // generate the same symbol as the original key.
    partial alphanumeric_keys
    xkb_symbols "classmate-altgr-intl" {
    include "us(altgr-intl)"
    name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)";
    key.type[Group1]="FOUR_LEVEL";

    key <LSGT> { [ backslash, bar, backslash, bar ] };

    key <KP7> { [ KP_Home, KP_7,
    dead_horn, dead_horn ] };
    key <KP8> { [ KP_Up, KP_8,
    dead_ogonek, dead_ogonek ] };
    key <KP9> { [ KP_Prior, KP_9,
    leftsinglequotemark, dead_breve ] };
    key <KPMU> { [ KP_Multiply, KP_Multiply,
    rightsinglequotemark, dead_abovering ] };

    key <KP4> { [ KP_Left, KP_4,
    uacute, Uacute ] };
    key <KP5> { [ KP_Begin, KP_5,
    iacute, Iacute ] };
    key <KP6> { [ KP_Right, KP_6,
    oacute, Oacute ] };
    key <KPSU> { [ KP_Subtract, KP_Subtract,
    odiaeresis, Odiaeresis ] };

    key <KP1> { [ KP_End, KP_1,
    idiaeresis, Idiaeresis ] };
    key <KP2> { [ KP_Down, KP_2,
    oe, OE ] };
    key <KP3> { [ KP_Next, KP_3,
    oslash, Ooblique ] };
    key <KPAD> { [ KP_Add, KP_Add,
    paragraph, degree ] };

    key <KP0> { [ KP_Insert, KP_0,
    mu, mu ] };
    key <KPDL> { [ KP_Delete, KP_Decimal,
    dead_abovedot, dead_caron ] };
    key <KPDV> { [ KP_Divide, KP_Divide,
    questiondown, dead_hook ] };

    include "level3(switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc" {

    include "us(basic)"
    name[Group1]= "English (US)";

    // OLPC international US English keyboard layout.
    // It's a little different from the usual international layout.
    // See: http://wiki.laptop.org/go/Image:Keyboard_english.png

    key <TLDE> { [ grave, asciitilde, dead_grave, dead_tilde ] };
    key <AE01> { [ 1, exclam, exclamdown, exclamdown ] };
    key <AE02> { [ 2, at, notsign, notsign ] };
    key <AE03> { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave
    key <AE04> { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute
    key <AE05> { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above
    key <AE06> { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above
    key <AE07> { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above
    key <AE08> { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above
    key <AE09> { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above
    key <AE10> { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above
    key <AE11> { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above
    key <AE12> { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above

    key <AD01> { [ q, Q, Greek_omega, Greek_OMEGA ] };
    key <AD02> { [ w, W, oslash, Oslash ] };
    key <AD03> { [ e, E, oe, OE ] };
    key <AD04> { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla
    key <AD05> { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below
    key <AD06> { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below
    key <AD07> { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below
    key <AD08> { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below
    key <AD09> { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below
    key <AD10> { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below
    key <AD11> { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below
    key <AD12> { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below

    key <AC01> { [ a, A, ae, AE ] };
    key <AC02> { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp
    key <AC03> { [ d, D, eth, ETH ] };
    key <AC04> { [ f, F, thorn, THORN ] };
    key <AC06> { [ h, H, sterling, sterling ] };
    key <AC07> { [ j, J, EuroSign, EuroSign ] };
    key <AC10> { [ semicolon, colon, masculine, ordfeminine ] };
    key <AC11> { [ apostrophe, quotedbl, currency, currency ] };
    key <BKSL> { [ backslash, bar, section, section ] };

    key <AB03> { [ c, C, ccedilla, Ccedilla ] };
    key <AB06> { [ n, N, ntilde, Ntilde ] };
    key <AB07> { [ m, M, mu, mu ] };
    key <AB08> { [ comma, less, guillemotleft, guillemotleft ] };
    key <AB09> { [ period, greater, guillemotright, guillemotright ] };
    key <AB10> { [ slash, question, questiondown, questiondown ] };

    key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] };

    include "level3(ralt_switch)"
    };

    partial alphanumeric_keys
    xkb_symbols "olpc2" {
    include "us(olpc)"
    name[Group1]= "English (layout toggle on multiply/divide key)";
    include "group(olpc)"
    };

    // Based on Cherokee Nation Official Layout
    // http://www.cherokee.org/extras/downloads/font/Keyboard.htm

    partial alphanumeric_keys modifier_keys
    xkb_symbols "chr" {

    name[Group1]= "Cherokee";
    key.type[group1]="ALPHABETIC";

    // Alphanumeric section
    key <TLDE> { [ grave, U13CA ] };
    key <AE01> { [ 1, U13B1 ] };
    key <AE02> { [ 2, U13C7 ] };
    key <AE03> { [ 3, U13E7 ] };
    key <AE04> { [ U13D9, U13B0 ] };
    key <AE05> { [ U13E6, U13B9 ] };
    key <AE06> { [ U13DC, U13DD ] };
    key <AE07> { [ U13CB, U13E1 ] };
    key <AE08> { [ U13D6, U13BA ] };
    key <AE09> { [ U13D2, parenleft ] };
    key <AE10> { [ U13C4, parenright ] };
    key <AE11> { [ U13BF, U13BC ] };
    key <AE12> { [ U13F3, U13BD ] };

    key <AD01> { [ U13AA, U13C6 ] };
    key <AD02> { [ U13B3, U13EB ] };
    key <AD03> { [ U13A1, U13E3 ] };
    key <AD04> { [ U13DB, U13CF ] };
    key <AD05> { [ U13D4, U13D8 ] };
    key <AD06> { [ U13EF, U13F2 ] };
    key <AD07> { [ U13A4, U13AD ] };
    key <AD08> { [ U13A2, U13F1 ] };
    key <AD09> { [ U13A3, U13EC ] };
    key <AD10> { [ U13C1, U13EA ] };
    key <AD11> { [ U13D5, U13D1 ] };
    key <AD12> { [ U13B6, U13E4 ] };
    key <BKSL> { [ U13E9, U13EE ] };

    key <AC01> { [ U13A0, U13CC ] };
    key <AC02> { [ U13CD, U13CE ] };
    key <AC03> { [ U13D7, U13D0 ] };
    key <AC04> { [ U13A9, U13C8 ] };
    key <AC05> { [ U13A6, U13E5 ] };
    key <AC06> { [ U13AF, U13B2 ] };
    key <AC07> { [ U13DA, U13AB ] };
    key <AC08> { [ U13B8, U13A7 ] };
    key <AC09> { [ U13B5, U13AE ] };
    key <AC10> { [ U13E8, U13E0 ] };
    key <AC11> { [ apostrophe, quotedbl ] };

    key <AB01> { [ U13AC, U13C3 ] };
    key <AB02> { [ U13F4, U13ED ] };
    key <AB03> { [ U13D3, U13DF ] };
    key <AB04> { [ U13A5, U13DE ] };
    key <AB05> { [ U13A8, U13F0 ] };
    key <AB06> { [ U13BE, U13BB ] };
    key <AB07> { [ U13C5, U13B7 ] };
    key <AB08> { [ comma, U13E2 ] };
    key <AB09> { [ period, U13B4 ] };
    key <AB10> { [ U13C2, U13C9 ] };

    // End alphanumeric section
    };

    // Serbian charecters added as third level symbols to US keyboard layout.

    partial alphanumeric_keys
    xkb_symbols "hbs" {

    name[Group1]= "Serbo-Croatian (US)";

    include "us"

    key <TLDE> { [ grave, asciitilde ] };
    key <AE06> { [ 6, dead_caron, asciicircum, asciicircum ] };
    key <AC09> { [ l, L, U1C9, U1C8 ] };
    key <AB06> { [ n, N, U1CC, U1CB ] };
    key <AB01> { [ z, Z, U1C6, U1C5 ] };
    key <AD03> { [ e, E, EuroSign, cent ] };
    key <AC03> { [ d, D, dstroke, Dstroke ] };
    key <AC11> { [ dead_acute, quotedbl, apostrophe, apostrophe ] };
    key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
    key <AB08> { [ comma, less, NoSymbol, guillemotright ] };
    key <AB09> { [ period, greater, NoSymbol, guillemotleft ] };

    include "level3(ralt_switch)"
    };

    //based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg
    partial alphanumeric_keys
    xkb_symbols "htcdream" {
    include "inet(htcdream)"
    name[Group1]= "English (US)";

    //second row
    key <AD01> { [ q, Q, Tab, Tab ] };
    key <AD02> { [ w, W, grave, grave ] };
    key <AD03> { [ e, E, underscore, underscore ] };
    key <AD04> { [ r, R, sterling, sterling ] };
    key <AD05> { [ t, T, EuroSign, EuroSign ] };
    key <AD06> { [ y, Y, division, division ] };
    key <AD07> { [ u, U, multiply, multiply ] };
    key <AD08> { [ i, I, minus, minus ] };
    key <AD09> { [ o, O, plus, plus ] };
    key <AD10> { [ p, P, equal, equal ] };

    //third row
    key <AC01> { [ a, A, NoSymbol, NoSymbol ] };
    key <AC02> { [ s, S, bar, bar ] };
    key <AC03> { [ d ,D, backslash, backslash ] };
    key <AC04> { [ f, F, braceleft, braceleft ] };
    key <AC05> { [ g, G, braceright, braceright ] };
    key <AC06> { [ h, H, colon, colon ] };
    key <AC07> { [ j, J, semicolon, semicolon ] };
    key <AC08> { [ k, K, quotedbl, quotedbl ] };
    key <AC09> { [ l, L, apostrophe, apostrophe ] };

    //forth row
    key <AB01> { [ z, Z, NoSymbol, NoSymbol ] };
    key <AB02> { [ x, X, NoSymbol, NoSymbol ] };
    key <AB03> { [ c, C, NoSymbol, NoSymbol ] };
    key <AB04> { [ v, V, bracketleft, bracketleft ] };
    key <AB05> { [ b, B, bracketright, bracketright ] };
    key <AB06> { [ n, N, less, less ] };
    key <AB07> { [ m, M, greater, greater ] };
    key <AB08> { [ comma, comma, question, question ] };

    //fifth row
    key <FK15> { [ at, at, asciitilde, asciitilde ] };

    include "level3(alt_switch)"
    };

    // EXTRAS:

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does not deviate from the lame MS-style
    // US-intl layout; but it uses AltGr for combining, like altgr-intl.
    //
    // This might break your font layout layout systems (because they
    // suck), caveat emptor. Also, most of today's software will count
    // individual combining marks for selection, deletion, character
    // counting &c., and won't be smart enough to do canonical equivalence
    // when searching, &c.
    //
    // With Unicode combining you use "handwriting order", not
    // "typewriting order" as with deadkeys. That is, you first type the
    // base character, then the diacritics/accents/modifiers. This has
    // the advantage of avoiding hidden states --- each keypress changes
    // something on screen.
    //
    // TODO: as of now, this duplicates all us(intl) functionality with
    // combining. With care, perhaps we could add more combining marks
    // not present in intl, and support all major languages.
    partial alphanumeric_keys
    xkb_symbols "intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining)";

    include "us(intl)"
    include "level3(ralt_switch)"

    // grave, tilde
    key <TLDE> { [grave, asciitilde, U0300, U0303 ] };
    // double acute
    key <AE02> { [ 2, at, twosuperior, U030B ] };
    // macron
    key <AE03> { [ 3, numbersign, threesuperior, U0304 ] };
    // circumflex
    key <AE06> { [ 6, asciicircum, onequarter, U0302 ] };
    // horn
    key <AE07> { [ 7, ampersand, onehalf, U031B ] };
    // ogonek
    key <AE08> { [ 8, asterisk, threequarters, U0328 ] };
    // breve
    key <AE09> { [ 9, parenleft, leftsinglequotemark, U0306 ] };
    // abovering
    key <AE10> { [ 0, parenright, rightsinglequotemark, U030A ] };

    // belowdot
    key <AE11> { [ minus, underscore, yen, U0323 ] };
    // acute, diaeresis
    key <AC11> { [apostrophe, quotedbl, U0301, U0308 ] };
    // abovedot, caron
    key <AB09> { [ period, greater, U0307, U030C ] };
    // hook
    key <AB10> { [ slash, question, questiondown, 0309 ] };

    // alt-intl compatibility
    // cedilla, caron
    key <AB08> { [ comma, less, U0327, U030C ] };
    // ogonek, diaeresis
    key <AC10> { [ semicolon, colon, U0328, U0308 ] };
    // doubleacute, horn
    key <AE12> { [ equal, plus, U030B, U031B ] };

    // we don't do combining latin letters and combining enclosures
    // because support for those is very rare.
    };

    // XCompose is out! Unicode combining is in! For those of us who live
    // on the edge: A keymap using Unicode combining characters instead of
    // deadkeys. This variation does break compatibility with us-intl,
    // whenever I thought it would be more mnemonic or Unicodeish.
    partial alphanumeric_keys
    xkb_symbols "alt-intl-unicode" {

    name[Group1]= "English (US, international AltGr Unicode combining, alternative)";

    include "extras/us(intl-unicode)"
    include "level3(ralt_switch)"

    // easier macron; em-dash.
    // em-dash is available via compose, but I added here since it's such
    // an important typographic character.
    key <AE11> { [ minus, underscore, U0304, U2014 ] };

    // belowdot, abovedot (caron at coma/less key, per above)
    key <AB09> { [ period, greater, U0323, U0307 ] };

    };

    partial alphanumeric_keys
    xkb_symbols "ats" {

    include "us"

    name[Group1]= "Atsina";

    //Using Dead key to get COMBINING COMMA ABOVE for ejectives on
    //q, l, t, s, m, g, k, p, w, y, r
    //XCompose key is used for the other accute and grave.

    key <AD03> { [ e, E, eacute, Eacute ] };
    key <AD07> { [ u, U, uacute, Uacute ] };
    key <AD08> { [ i, I, iacute, Iacute ] };
    key <AD09> { [ o, O, oacute, Oacute ] };
    key <AD11> { [ bracketleft, braceleft, U03B8 ] };
    key <AD12> { [ bracketright, braceright, U010D, U010C ] };
    //U+010C (uppercase Č) and U+010D (lowercase č).

    key <AC01> { [ a, A, aacute, Aacute ] };


    //Small letter Open use compose to key get acute accent
    key <AB03> { [ c, C, U0254, U0186 ] };
    key <AB08> { [ comma, less, U0313 ] };
    key <AB10> { [ slash, question, U0294 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"
    };

    partial alphanumeric_keys
    xkb_symbols "crd" {

    include "us"

    name[Group1]= "Couer D'alene Salish";

    // Alphanumeric section
    key <AD02> { [ w, W, U02B7, U02B7 ] };
    key <AE07> { [ 7, ampersand, U0294 ] };
    key <AD01> { [ q, Q, U221A ] };
    key <AB04> { [ v, V, U0259 ] };
    key <BKSL> { [ backslash, bar, U026B ] };
    key <AD03> { [ e, E, U025B ] };
    key <AD08> { [ i, I, U026A ] };
    key <AC07> { [ j, J, U01F0 ] };
    key <AE06> { [ 6, asciicircum, U0295 ] };
    key <AC02> { [ s, S, U0161 ] };
    key <AB03> { [ c, C, U010D ] };
    key <AD09> { [ o, O, U0254 ] };
    key <AB09> { [ period, greater, U0323 ] };

    include "level3(ralt_switch)"
    include "compose(rctrl)"

    // End alphanumeric section
    };
  21. Tarrasch revised this gist Jul 20, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@ which are independent of the language.
    ## Installation instructions for Ubuntu

    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    sudo vim /usr/share/X11/xkb/symbols/us % or whatever editor you use
    sudo vi /usr/share/X11/xkb/symbols/us % or whatever editor you use

    Now, simply REPLACE the english colemak with the code. For the changes
    to take affect, just log in and out. If you want to avoid the replace,
  22. Tarrasch revised this gist May 15, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion readme.md
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@ which are independent of the language.
    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    sudo vim /usr/share/X11/xkb/symbols/us % or whatever editor you use

    Now, simply REPLACE the english colemak with the code. For the changet
    Now, simply REPLACE the english colemak with the code. For the changes
    to take affect, just log in and out. If you want to avoid the replace,
    you can do it the proper way by following these [instructions].

  23. Tarrasch revised this gist May 15, 2012. No changes.
  24. Tarrasch revised this gist May 15, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    ## What makes this "Swedish colemak"?

    It simply squeezes in `åäö` comfortably on the home row through `AltGr`.
    It tries in no way to edit anything else on colemak, so it's still only
    It simply squeezes in `åäö` comfortably on the **home row** through `AltGr`.
    It tries in no way to edit anything else on colemak, so it's still
    optimized for English and not Swedish.

    Additionally I've squeezed a lot of other fancy stuff through `AltGr`,
  25. Tarrasch revised this gist May 15, 2012. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,12 @@
    ## What makes this "Swedish colemak"?

    It simply squeezes in `åäö` comfortably on the home row through `AltGr`.
    It tries in no way to edit anything else on colemak, so it's still only
    optimized for English and not Swedish.

    Additionally I've squeezed a lot of other fancy stuff through `AltGr`,
    which are independent of the language.

    ## Installation instructions for Ubuntu

    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
  26. Tarrasch revised this gist May 15, 2012. 1 changed file with 35 additions and 0 deletions.
    35 changes: 35 additions & 0 deletions readme.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,35 @@
    ## Installation instructions for Ubuntu

    sudo cp /usr/share/X11/xkb/symbols/us{,-backup}
    sudo vim /usr/share/X11/xkb/symbols/us % or whatever editor you use

    Now, simply REPLACE the english colemak with the code. For the changet
    to take affect, just log in and out. If you want to avoid the replace,
    you can do it the proper way by following these [instructions].

    BUT DON'T!! I've done that and it's just a waste of time. If you really
    don't want to replace en colemak, replace something else!

    ## About this layout:

    AltGr+a --> ä
    AltGr+l --> å
    AltGr+ö --> ö

    where a, k, ö are the physical positions for qwerty.

    Note it's just a movedown of the colemak keys except for `å` since it's
    a vowel and should not be placed at the same key as the non-vowel `r`!
    (Think of words like *råtta* and *år*)

    Also I've put arrow keys on home row and put esc there as well for vim
    users. Furthermore I've put home/end and pgup/pgdn on the buttons
    where the long fingers can reach comfortably while your thumb is
    holding down AltGr. I srongly recommend these tricks to everyone, even
    those not wanting a Swedish layout or are using QWERTY.

    ## Feedback

    I would love to discuss this, feel free to comment on this gist!

    [instructions]: http://ubuntuforums.org/showthread.php?t=188761
  27. Tarrasch revised this gist Feb 16, 2012. 1 changed file with 50 additions and 51 deletions.
    101 changes: 50 additions & 51 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -8,61 +8,60 @@ xkb_symbols "colemak" {
    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 <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, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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 <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    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, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
    key <AC01> { [ a, A, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    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 <AB01> { [ z, Z, XF86AudioStop, AE ] };
    key <AB02> { [ x, X, XF86AudioPlay, asciitilde ] };
    key <AB03> { [ c, C, XF86AudioPrev, Ccedilla ] };
    key <AB04> { [ v, V, XF86AudioNext, OE ] };
    key <AB05> { [ b, B, dead_breve, asciitilde ] };
    key <AB06> { [ k, K, dead_abovering, asciitilde ] };
    key <AB07> { [ m, M, XF86AudioLowerVolume, asciitilde ] };
    key <AB08> { [ comma, less, XF86AudioRaiseVolume, asciitilde ] };
    key <AB09> { [ period, greater, XF86AudioMute, 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 ] };
    key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
    key <LSGT> { [ minus, underscore, endash, emdash ] };
    key <SPCE> { [ space, space, space, nobreakspace ] };

    include "level3(ralt_switch)"
    };

  28. Tarrasch revised this gist Feb 15, 2012. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -23,14 +23,14 @@ xkb_symbols "colemak" {
    key <AE12> { [ equal, plus, multiply, division ] };

    key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] };
    key <AD02> { [ w, W, aring, Aring ] };
    key <AD03> { [ f, F, Home, Home ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD02> { [ w, W, Home, Home ] };
    key <AD03> { [ f, F, End, End ] };
    key <AD04> { [ p, P, End, End ] };
    key <AD05> { [ g, G, dead_ogonek, asciitilde ] };
    key <AD06> { [ j, J, dstroke, Dstroke ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Prior, Prior] };
    key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Next, Next ] };
    key <AD09> { [ y, Y, Prior, Prior ] };
    key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] };
    key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] };
  29. Tarrasch revised this gist Feb 9, 2012. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -24,12 +24,12 @@ xkb_symbols "colemak" {

    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 <AD03> { [ f, F, Home, Home ] };
    key <AD04> { [ p, P, End, End ] };
    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 <AD07> { [ l, L, Next, Next ] };
    key <AD08> { [ u, U, Prior, Prior] };
    key <AD09> { [ y, Y, udiaeresis, Udiaeresis ] };
    key <AD10> { [ semicolon, colon, odiaeresis, Odiaeresis ] };
    key <AD11> { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] };
    @@ -38,12 +38,12 @@ xkb_symbols "colemak" {

    key <AC01> { [ a, A, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Home ] };
    key <AC04> { [ t, T, Right, End ] };
    key <AC03> { [ s, S, Left, Left] };
    key <AC04> { [ t, T, Right, Right] };
    key <AC05> { [ d, D, dead_diaeresis, asciitilde ] };
    key <AC06> { [ h, H, dead_caron, asciitilde ] };
    key <AC07> { [ n, N, Down, Next] };
    key <AC08> { [ e, E, Up, Prior ] };
    key <AC07> { [ n, N, Down, Down] };
    key <AC08> { [ e, E, Up, Up] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
  30. Tarrasch revised this gist Feb 9, 2012. 1 changed file with 18 additions and 15 deletions.
    33 changes: 18 additions & 15 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,9 +1,11 @@
    // Svcolemak
    // Arash Colemak
    // Colemak symbols for xkb on X.Org Server 7.x
    // 2006-01-01 Shai Coleman, http://colemak.com/ . Public domain.

    // Swedish version by Arash Rouhani
    partial alphanumeric_keys
    xkb_symbols "svcolemak" {
    include "us(colemak)"
    name[Group1]="Swedish (Colemak)";
    xkb_symbols "colemak" {
    include "us"
    name[Group1]= "English (Colemak)";

    // Alphanumeric section
    key <TLDE> { [ grave, asciitilde, dead_tilde, asciitilde ] };
    @@ -34,17 +36,17 @@ xkb_symbols "svcolemak" {
    key <AD12> { [ bracketright, braceright, guillemotright, 0x100203a ] };
    key <BKSL> { [ backslash, bar, asciitilde, asciitilde ] };

    key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
    key <AC02> { [ r, R, aring, Aring ] };
    key <AC03> { [ s, S, ssharp, asciitilde ] };
    key <AC04> { [ t, T, dead_acute, dead_doubleacute ] };
    key <AC01> { [ a, A, adiaeresis, Adiaeresis] };
    key <AC02> { [ r, R, Escape, Return ] };
    key <AC03> { [ s, S, Left, Home ] };
    key <AC04> { [ t, T, Right, End ] };
    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, odiaeresis, odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };
    key <AC07> { [ n, N, Down, Next] };
    key <AC08> { [ e, E, Up, Prior ] };
    key <AC09> { [ i, I, aring, Aring ] };
    key <AC10> { [ o, O, odiaeresis, Odiaeresis ] };
    key <AC11> { [ apostrophe, quotedbl, otilde, Otilde ] };

    key <AB01> { [ z, Z, ae, AE ] };
    key <AB02> { [ x, X, dead_circumflex, asciitilde ] };
    @@ -62,4 +64,5 @@ xkb_symbols "svcolemak" {
    key <SPCE> { [ space, space, space, nobreakspace ] };

    include "level3(ralt_switch)"
    };
    };