• You are not logged in.
  • Index
  • Technical
  • Gnome: control key sequences use QWERTY layout in colemak mode

    Gnome: control key sequences use QWERTY layout in colemak mode

    • Started by eschvoca
    • 1 Replies:
    • Reputation: 0
    • Registered: 30-Jun-2007
    • Posts: 3

    Hi,

    Thanks for the great layout.

    When I use a control key sequence in Colemak mode it comes out as QWERTY (e.g in colemak mode if I press control-t in firefox it does a "find" instead of a new tab but a colemak-t types a t). 

    I configured Colemak like this (so I can quickly switch between Colemak=me and QWERTY=wife):

    0) Follow install instructions for X and the instructions in the post "Tip for using colemak with gnome", I'm running Ubuntu 7.04
    1) System -> Preferences -> Keyboard 
    2) Layouts tab -> Add -> Colemak (and US English is the default)
    3) Layout options tab -> Group Shift/Lock Behavior -> Both control keys together toggle group
    4) Layout options tab -> Use keyboard LED to show alternative group -> Caps lock LED shows alternate group

    I've tried different settings with 3 and 4 and it didn't help.  As I'm now a colemak lover this problem is becoming intolerable.  Please help.

    Thanks.

    Offline
    • 0
    • Reputation: 0
    • Registered: 30-Jun-2007
    • Posts: 3

    Hi,

    I tried to redo my configuration by not doing it in Gnome but I still have the same problem.  Here's the patch for my new setup:

    diff --git a/etc/X11/xorg.conf b/etc/X11/xorg.conf
    index 22b44e9..18acce1 100644
    --- a/etc/X11/xorg.conf
    +++ b/etc/X11/xorg.conf
    @@ -44,7 +44,9 @@ Section "InputDevice"
        Option        "CoreKeyboard"
        Option        "XkbRules"    "xorg"
        Option        "XkbModel"    "pc105"
    -    Option        "XkbLayout"    "us"
    +    Option        "XkbLayout"    "us,us"
    +    Option        "XkbVariant"    ",colemak"
    +    Option        "XkbOptions"    "grp:ctrls_toggle,grp_led:caps"
    EndSection

    Section "InputDevice"
    diff --git a/usr/share/X11/xkb/rules/base.lst b/usr/share/X11/xkb/rules/base.lst
    index a829be1..5e86878 100644
    --- a/usr/share/X11/xkb/rules/base.lst
    +++ b/usr/share/X11/xkb/rules/base.lst
    @@ -211,6 +211,7 @@
    ! variant
       intl            us: International (with dead keys)
       alt-intl        us: Alternative international (former us_intl)
    +  colemak         us: Colemak
       dvorak          us: Dvorak
       dvorak-l        us: Left handed Dvorak
       dvorak-r        us: Right handed Dvorak
    diff --git a/usr/share/X11/xkb/rules/base.xml b/usr/share/X11/xkb/rules/base.xml
    index 15ab864..54dabc9 100644
    --- a/usr/share/X11/xkb/rules/base.xml
    +++ b/usr/share/X11/xkb/rules/base.xml
    @@ -3516,6 +3516,12 @@
                 <description xml:lang="zh_TW">替代國際化 (之前為 us_intl)</description>
               </configItem>
             </variant>
    +    <variant>
    +          <configItem>
    +            <name>colemak</name>
    +            <_description>Colemak</_description>
    +          </configItem>
    +        </variant>
             <variant>
               <configItem>
                 <name>dvorak</name>
    diff --git a/usr/share/X11/xkb/symbols.dir b/usr/share/X11/xkb/symbols.dir
    index d00ea69..ab12676 100644
    --- a/usr/share/X11/xkb/symbols.dir
    +++ b/usr/share/X11/xkb/symbols.dir
    @@ -691,6 +691,7 @@ h-p----- -------- pc(pc104)
    --p----- a------- us(dvorak-classic)
    --p----- a------- us(dvorak-l)
    --p----- a------- us(dvorak-r)
    +--p----- a------- us(colemak)
    --p----- a------- us(intl)
    --p----- a------- us(mac)
    --p----- a------- us(rus)
    diff --git a/usr/share/X11/xkb/symbols/us b/usr/share/X11/xkb/symbols/us
    index f47dcc5..282af45 100644
    --- a/usr/share/X11/xkb/symbols/us
    +++ b/usr/share/X11/xkb/symbols/us
    @@ -492,3 +492,70 @@ xkb_symbols "mac" {
         name[Group1]= "U.S. English - Macintosh";
    };

    +// Colemak symbols for xkb on X.Org Server 7.x
    +// 2006-01-01 Shai Coleman, https://colemak.com/ . Public domain.
    +
    +partial default alphanumeric_keys
    +xkb_symbols "colemak" {
    +    include "us"
    +    name[Group1]= "U.S. English - Colemak";
    +
    +    // Alphanumeric section
    +    key <TLDE> { [        grave,   asciitilde,      dead_tilde,       asciitilde ] };
    +    key <AE01> { [            1,       exclam,      exclamdown,      onesuperior ] };
    +    key <AE02> { [            2,           at,       masculine,      twosuperior ] };
    +    key <AE03> { [            3,   numbersign,     ordfeminine,    threesuperior ] };
    +    key <AE04> { [            4,       dollar,            cent,         sterling ] };
    +    key <AE05> { [            5,      percent,        EuroSign,              yen ] };
    +    key <AE06> { [            6,  asciicircum,         hstroke,          Hstroke ] };
    +    key <AE07> { [            7,    ampersand,             eth,              ETH ] };
    +    key <AE08> { [            8,     asterisk,           thorn,            THORN ] };
    +    key <AE09> { [            9,    parenleft,  leftsinglequotemark,  leftdoublequotemark ] };
    +    key <AE10> { [            0,   parenright, rightsinglequotemark,  rightdoublequotemark ] };
    +    key <AE11> { [        minus,   underscore,          endash,           emdash ] };
    +    key <AE12> { [        equal,         plus,        multiply,         division ] };
    +
    +    key <AD01> { [            q,            Q,      adiaeresis,       Adiaeresis ] };
    +    key <AD02> { [            w,            W,           aring,            Aring ] };
    +    key <AD03> { [            f,            F,          atilde,           Atilde ] };
    +    key <AD04> { [            p,            P,          oslash,         Ooblique ] };
    +    key <AD05> { [            g,            G,     dead_ogonek,       asciitilde ] };
    +    key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
    +    key <AD07> { [            l,            L,         lstroke,          Lstroke ] };
    +    key <AD08> { [            u,            U,          uacute,           Uacute ] };
    +    key <AD09> { [            y,            Y,      udiaeresis,       Udiaeresis ] };
    +    key <AD10> { [    semicolon,        colon,      odiaeresis,       Odiaeresis ] };
    +    key <AD11> { [  bracketleft,    braceleft,   guillemotleft,        0x1002039 ] };
    +    key <AD12> { [ bracketright,   braceright,  guillemotright,        0x100203a ] };
    +    key <BKSL> { [    backslash,          bar,      asciitilde,       asciitilde ] };
    +
    +    key <AC01> { [            a,            A,          aacute,           Aacute ] };
    +    key <AC02> { [            r,            R,      dead_grave,       asciitilde ] };
    +    key <AC03> { [            s,            S,          ssharp,       asciitilde ] };
    +    key <AC04> { [            t,            T,      dead_acute, dead_doubleacute ] };
    +    key <AC05> { [            d,            D,  dead_diaeresis,       asciitilde ] };
    +    key <AC06> { [            h,            H,      dead_caron,       asciitilde ] };
    +    key <AC07> { [            n,            N,          ntilde,           Ntilde ] };
    +    key <AC08> { [            e,            E,          eacute,           Eacute ] };
    +    key <AC09> { [            i,            I,          iacute,           Iacute ] };
    +    key <AC10> { [            o,            O,          oacute,           Oacute ] };
    +    key <AC11> { [   apostrophe,     quotedbl,          otilde,           Otilde ] };
    +
    +    key <AB01> { [            z,            Z,              ae,               AE ] };
    +    key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };
    +    key <AB03> { [            c,            C,        ccedilla,         Ccedilla ] };
    +    key <AB04> { [            v,            V,              oe,               OE ] };
    +    key <AB05> { [            b,            B,      dead_breve,       asciitilde ] };
    +    key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };
    +    key <AB07> { [            m,            M,     dead_macron,       asciitilde ] };
    +    key <AB08> { [        comma,         less,    dead_cedilla,       asciitilde ] };
    +    key <AB09> { [       period,      greater,   dead_abovedot,       asciitilde ] };
    +    key <AB10> { [        slash,     question,    questiondown,       asciitilde ] };
    +
    +    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
    +    key <LSGT> { [        minus,   underscore,          endash,           emdash ] };
    +    key <SPCE> { [        space,        space,           space,     nobreakspace ] };
    +
    +    include "level3(ralt_switch)"
    +};
    +

    Note in /etc/X11/xorg.conf I've set things up so I can toggle between QWERTY and Colemak by pressing both control keys.  In Colemak mode the caps lock light will come on.  This is a good use for it since Caps lock is not used.  My past setup I did not edit the xorg.conf file but did things in my account (through Gnome).  I like this better because it is global and I can now log in using Colemak.

    That said, this is no longer an issue with Gnome but perhaps with X, or my configuration of X.

    Thanks.

    Offline
    • 0
      • Index
      • Technical
      • Gnome: control key sequences use QWERTY layout in colemak mode