• You are not logged in.

    Backspace is caps lock and backspace.

    • Started by vertebrate
    • 21 Replies:
    • Reputation: 0
    • Registered: 27-Nov-2007
    • Posts: 9

    I just setup colemak on Ubuntu Feisty Fawn, and the caps lock/backspace key is behaving like both. Shouldn't the keymap take care of making the caps lock key be only for backspace? Did I do something wrong? I can't imagine there's a bunch of people out there running linux and having their backspace key act like a caps lock key at the same time.

    Thanks,
    Steve

    Offline
    • 0
    • Reputation: 0
    • From: NYC
    • Registered: 02-Feb-2007
    • Posts: 104

    I never had that problem on Ubuntu. Perhaps you should try redoing Colemak installation

    Offline
    • 0
    • Reputation: 90
    • From: Oslo, Norway
    • Registered: 13-Dec-2006
    • Posts: 4,505

    I heard something about this, but can't remember where. It's in an old post somewhere.

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 0
    • From: Hungary, Budapest
    • Registered: 21-Oct-2007
    • Posts: 23
    vertebrate said:

    I just setup colemak on Ubuntu Feisty Fawn, and the caps lock/backspace key is behaving like both.

    I had same problem with OpenSUSE (gnome).  I remap the caps lock to Ctrl (right click in gnome panel...). It works well, but I lost the functionality of Caps Lock. :(

    Portable Keyboard Layout with Colemak support
    http://pkl.sourceforge.net/

    Offline
    • 0
    • Shai
    • Administrator
    • Reputation: 7
    • Registered: 11-Dec-2005
    • Posts: 379

    See a previous thread about this.
    Try xmodmap -e "remove Lock = Caps_Lock"
    I will try to fix it for the next version.

    Offline
    • 0
    • Reputation: 0
    • Registered: 27-Nov-2007
    • Posts: 9

    If I run that command, then switch back to qwerty, and then back again to colemak does it need to be run again? The post there indicates that it's per session. Just wondering if that also includes layout switches.

    Thanks

    Offline
    • 0
    • Reputation: 0
    • Registered: 27-Nov-2007
    • Posts: 9

    Shai, can you tell me what I would need to change in the xkb/symbols/colemak file so that I don't have to repeatedly do that? I'm assuming that's where the change would go?

    Thanks,
    Steve

    Offline
    • 0
    • Shai
    • Administrator
    • Reputation: 7
    • Registered: 11-Dec-2005
    • Posts: 379

    I haven't been able to replicate the problem on my side yet.

    I've researched this problem, and the way to do it seems to be using "modifier_map none", however this isn't a documented feature.
    I think the syntax is:
    modifier_map none { <CAPS> };
    Try adding that line to your xkb/symbols/colemak and see what happens.

    A Google search "modifier_map none" brings up the messages below. If adding the line above doesn't work for you, try asking the authors of the messages below or in the X.Org mailing list.
    Bug#256706: Patch to solve XKB mess about modifiers
    Bug#271542: xlibs: Can't get Meta and Alt to work correctly

    (Update: this doesn't work, because it's a bug with GNOME not with the XKB file)

    Offline
    • 0
    • Shai
    • Administrator
    • Reputation: 7
    • Registered: 11-Dec-2005
    • Posts: 379

    I've managed to reproduce the problem on Ubuntu (GNOME) Hardy Heron Alpha 3. There's a bug with the GNOME's keyboard layout handling. This doesn't happen with KDE, and it doesn't happen when running setxkbmap directly. A similar problem happens with GNOME even when Colemak isn't installed, e.g. when you switch the Ctrl and Caps Lock, the Caps Lock light still switches on and off (Bug report). Further investigation is required.

    Offline
    • 0
    • Reputation: 0
    • Registered: 09-May-2007
    • Posts: 79

    Alright, I'll post my findings here so we can all use this information:
    I downloaded Ubuntu Hardy Alpha 3, burned it, and ran it.
    I selected colemak from the list of layouts in gnome (although it bugged me that it was under 'US English' --it's for any latin language.  Also works very well for Japanese and korean in fact.)
    The caps lock acted as both caps lock and backspace.  I went to backspace behavior settings, and there wasn't a simple 'OFF'.  If they could add that, and have that set to its default behavior with the colemak keyboard layout, it'd be grand.

    Hardy is the first release where the LiveCD works on my machine, and my goal is to get it to the point where it requires no special configuration at all for my basic use before it is released.  I have four months to do what I can to get it to that point.

    Offline
    • 0
    • Reputation: 0
    • Registered: 01-Mar-2008
    • Posts: 5
    Shai said:

    I haven't been able to replicate the problem on my side yet.

    I've researched this problem, and the way to do it seems to be using "modifier_map none", however this isn't a documented feature.
    I think the syntax is:
    modifier_map none { <CAPS> };
    Try adding that line to your xkb/symbols/colemak and see what happens.

    A Google search "modifier_map none" brings up the messages below. If adding the line above doesn't work for you, try asking the authors of the messages below or in the X.Org mailing list.
    Bug#256706: Patch to solve XKB mess about modifiers
    Bug#271542: xlibs: Can't get Meta and Alt to work correctly

    I've added the line. It does not work.

    // $XKeyboardConfig: xkeyboard-config/symbols/us,v 1.33 2007-08-24 22:01:29 uid2570 Exp $
    
    //
    // $XdotOrg: xc/programs/xkbcomp/symbols/us,v 1.1.4.3 2004/03/05 13:41:33 eich Exp $
    // $XFree86: xc/programs/xkbcomp/symbols/us,v 1.6 2003/10/31 14:32:05 pascal Exp $
    
    default
    partial alphanumeric_keys modifier_keys 
    xkb_symbols "basic" {
    
        name[Group1]= "U.S. English";
    
        // 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    ]    };
        key <CAPS> {    [ Caps_Lock    ]    };
        // End alphanumeric section
    };
    
    partial alphanumeric_keys
    xkb_symbols "euro" {
    
        name[Group1]= "U.S. English - With EuroSign on 5";
    
        include "us(basic)"
    
        include "eurosign(5)"
    
        include "level3(ralt_switch)"
    };
    
    
    partial alphanumeric_keys
    xkb_symbols "intl" {
    
        name[Group1]= "U.S. English - 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                   ] };
        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, guillemotleft ] };
        key <AD12> { [bracketright, braceright, guillemotright,guillemotright ] };
    
        key <AC01> { [       a,          A,        aacute,           Aacute ] };
        key <AC02> { [       s,          S,        ssharp,          section ] };
        key <AC03> { [       d,          D,           eth,              ETH ] };
        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 <AB03> { [       c,          C,     copyright,             cent ] };
        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]= "U.S. English - Alternative international (former us_intl)";
    
      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
    //
    // $XFree86: xc/programs/xkbcomp/symbols/dvorak,v 1.5 2004/01/03 16:35:07 herrb Exp $
    
    partial alphanumeric_keys
    xkb_symbols "dvorak" {
    
        name[Group1]= "U.S. 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             ]       };
    };
    
    // 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]= "U.S. English - Left handed Dvorak";
    
        key <AE01> {    [ bracketleft,    braceleft    ]    };
        key <AE02> {    [ bracketright,    braceright    ],
                [  dead_tilde            ]    };
        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         ],
                [ dead_ogonek, dead_doubleacute ]    };
        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        ],
                [ dead_abovedot, periodcentered ]    };
        key <AD10> {    [        6,    asciicircum    ],
                [ dead_circumflex, dead_circumflex ]    };
        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    ],
                [  dead_acute,    dead_diaeresis    ]     };
        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        ],
                [ dead_cedilla,    dead_caron    ]    };
        key <AB09> {    [        0,    parenright    ]    };
        key <AB10> {    [        9,    parenleft    ],
                [  dead_grave            ]    };
    };
    
    partial alphanumeric_keys
    xkb_symbols "dvorak-r" {
        
        include "us(dvorak)"
        name[Group1]= "U.S. 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    ],
                [  dead_tilde            ]    };
    
        key <AD01> {    [        5,    percent        ]    };
        key <AD02> {    [        6,    asciicircum ],
                [ dead_circumflex, dead_circumflex ]    };
        key <AD03> {    [        q,    Q        ]    };
        key <AD04> {    [      period,    greater        ], 
                [ dead_abovedot, periodcentered    ]    };
        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         ],
                [ dead_ogonek, dead_doubleacute ]    };
        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    ],
                [  dead_grave            ]    };
        key <AB02> {    [        0,    parenright    ]    };
        key <AB03> {    [        x,    X        ]    };
        key <AB04> {    [    comma,    less        ],
                [ dead_cedilla,    dead_caron    ]    };
        key <AB05> {    [        i,    I        ]    };
        key <AB06> {    [        n,    N        ]    };
        key <AB07> {    [        w,    W        ]    };
        key <AB08> {    [        v,    V        ]    };
        key <AB09> {    [        g,    G        ]    };
        key <AB10> {    [  apostrophe,    quotedbl    ],
                [  dead_acute,    dead_diaeresis    ]     };
    };
    
    // 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]= "U.S. 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             ]       };
    };
    
    // 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]= "U.S. English - Russian 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"
        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 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)"
    
        // Bug documented at https://forum.colemak.com/viewtopic.php?pid=1935#p1935
        modifier_map none { <CAPS> };
    
    };
    
    // 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]= "U.S. 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) deleted to get three unshifted deadkeys:
    
       key <AE06> { [        6, asciicircum,       dead_circumflex         ] };
       key <AE07> { [        7, ampersand,         dead_horn               ] };
       key <AE08> { [        8, asterisk,          dead_ogonek             ] };
    
       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]= "U.S. English - 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]= "U.S. English - 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]= "U.S. English - 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]= "U.S. English - 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)"
    };
    Offline
    • 0
    • Shai
    • Administrator
    • Reputation: 7
    • Registered: 11-Dec-2005
    • Posts: 379

    Yes, it won't work because it's a bug with GNOME's keyboard layout handling, not with the XKB file itself.

    Offline
    • 0
    • Reputation: 0
    • Registered: 01-Mar-2008
    • Posts: 5
    Shai said:

    Yes, it won't work because it's a bug with GNOME's keyboard layout handling, not with the XKB file itself.

    Do you know if remapping caps to backspace is a workaround?

    Offline
    • 0
    • Reputation: 0
    • Registered: 01-Mar-2008
    • Posts: 5

    It has not been fixed in Gnome 2.22. Is there no workaround?

    Offline
    • 0
    • Reputation: 0
    • Registered: 09-May-2007
    • Posts: 79

    On Ubuntu Hardy--  the following command persists as I can tell.

    xmodmap -e "remove Lock = Caps_Lock"

    Just run that using the included colemak layout and you should be just fine.

    Offline
    • 0
    • Reputation: 0
    • Registered: 01-Mar-2008
    • Posts: 5

    However, if you do that, it affects all layouts. Furthermore, it still doesn't work correctly. It erases one character at a time. You can't keep it pressed.

    Offline
    • 0
    • Reputation: 90
    • From: Oslo, Norway
    • Registered: 13-Dec-2006
    • Posts: 4,505

    that's what "xset -r 66" is for, isn't it?

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 10
    • From: Belgium
    • Registered: 26-Feb-2008
    • Posts: 427
    DreymaR said:

    that's what "xset -r 66" is for, isn't it?

    That makes the Capslock/Backspace key non-repeating.  You want "xset r 66" (without the dash).

    Online
    • 0
    • Reputation: 0
    • Registered: 01-Mar-2008
    • Posts: 5

    Still, it affects all layouts, not just calemak

    Offline
    • 0
    • Reputation: 90
    • From: Oslo, Norway
    • Registered: 13-Dec-2006
    • Posts: 4,505

    Yes. It does. Try convincing your friends and family that CapsLock is evil and has to go.

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 10
    • From: Belgium
    • Registered: 26-Feb-2008
    • Posts: 427
    SpookyET said:

    Still, it affects all layouts, not just calemak

    Yes, in X11 keystroke repeat settings are independent of keyboard layout/keymap settings.

    Online
    • 0
    • Reputation: 0
    • From: Oslo, Norway
    • Registered: 26-Nov-2010
    • Posts: 1

    My work around for Gnome's little issue is a tiny shell script called "capsoff" that contains the following:

    #!/bin/sh
    xmodmap -e 'keycode 66 = BackSpace' -e 'clear Lock'
    xset r 66

    I have set this to be run on startup by Gnome. Thus giving the desired behaviour. In case you are wondering why I have used 'keycode 66 = BackSpace' instead of 'keysym Caps_Lock = BackSpace' and 'clear Lock' instead of 'remove Lock = Caps_Lock' it is so that I can run "capsoff" again if I want. Doing it this way I can run "capsoff" again and again without errors. If I use either of the other two options I get "bad keysym in remove modifier list 'Caps_Lock', no corresponding keycodes" on running the script repeatedly.

    Why would I want to run it again? ;) Because it re-breaks everytime you change keymaps within Gnome, which unfortunately is something I have to do at the moment since I am still learning Colemak and need access to use Qwerty when I want to type fast.

    I actually have two more scripts called "asdf" and "arst". They look as follows.

    asdf:

    #!/bin/sh
    setxkbmap us -variant colemak
    capsoff

    arst:

    #!/bin/sh
    setxkbmap no
    capsoff

    This allows me to just roll my left hand in a terminal and press Enter (Return) to switch layouts. ;)

    You'll note that I use a Norwegian Qwerty layout and switch the "Caps" to "Backspace" in this mode as well. However that is fairly easy to change that if you want something else.

    Edit: And now I have just read this, which seems to work nicely. However I'll leave my scripts lying around, as it is still handy to switch layouts with a left hand roll. ;)

    Last edited by ruario (27-Nov-2010 14:53:45)
    Offline
    • 0