• You are not logged in.

    Colemak: Czech 3rd/4rd layer mod

    • Started by davkol
    • 1 Replies:
    • Reputation: 18
    • From: CZ
    • Registered: 14-Feb-2012
    • Posts: 444

    Hi there,

    I've made a small localization-related adjustment to Colemak. Post updated to include the config itself.

    It makes using Colemak more comfortable, if you're typing in Czech (and possibly Slovak, I guess). I've changed the 105th key (now used for diacritic-mark dead keys) and the 3rd/4th layer (aka AltGraph combos) to add Czech typographic symbols¹ and make symbols with diacritic marks easier to type². These symbols are placed logically (to make learning easier). I originally planned to make it reasonably efficient for typing German/French/whatever names, possibly IPA and some math symbols as well; it's never stabilized, though.

    I've used this layout on daily basis to post online and write/edit various articles as well as my thesis. If you have an opportunity to use symmetrical AltGraph (and/or 105th) keys for proper touch typing, it's a big improvement. (See the JIS Master Race for symmetrical AltGraph; a snippet that maps muhenkan and henkan keys to AltGraph is now included at the end of the keymap here.)

    An XKB config file follows, feel free to use/modify/redistribute it³.

    default
    partial alphanumeric_keys modifier_keys
    xkb_symbols "basic" {
        name[Group1]= "Czech (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,        EuroSign,         sterling ] };
        key <AE05> { [            5,      percent,            cent,              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,          ecaron,           Ecaron ] };
        key <AD04> { [            p,            P,          oslash,         Ooblique ] };
        key <AD05> { [            g,            G,     dead_ogonek,       asciitilde ] };
        key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
        key <AD07> { [            l,            L,          lcaron,           Lcaron ] };
        key <AD08> { [            u,            U,          uacute,           Uacute ] };
        key <AD09> { [            y,            Y,          yacute,           Yacute ] };
        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,             rcaron,                   Rcaron ] };
        key <AC03> { [            s,            S,             scaron,                   Scaron ] };
        key <AC04> { [            t,            T,             tcaron,                   Tcaron ] };
        key <AC05> { [            d,            D,             dcaron,                   Dcaron ] };
        key <AC06> { [            h,            H,         dead_caron,               asciitilde ] };
        key <AC07> { [            n,            N,             ncaron,                   Ncaron ] };
        key <AC08> { [            e,            E,             eacute,                   Eacute ] };
        key <AC09> { [            i,            I,             iacute,                   Iacute ] };
        key <AC10> { [            o,            O,             oacute,                   Oacute ] };
        key <AC11> { [   apostrophe,     quotedbl, doublelowquotemark,      leftdoublequotemark ] };
    
        key <AB01> { [            z,            Z,          zcaron,           Zcaron ] };
        key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };
        key <AB03> { [            c,            C,          ccaron,           Ccaron ] };
        key <AB04> { [            v,            V,           uring,            Uring ] };
        key <AB05> { [            b,            B,          ssharp,       asciitilde ] };
        key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };
        key <AB07> { [            m,            M,     dead_macron,       asciitilde ] };
        key <AB08> { [        comma,         less, singlelowquotemark, leftsinglequotemark ] };
        key <AB09> { [       period,      greater,        ellipsis,        plusminus ] };
        key <AB10> { [        slash,     question,    questiondown,        plusminus ] };
        key <SPCE> { [        space,        space,    nobreakspace,        thinspace ] };
    
        // Colemak Backspace
        key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
    
        // ISO keyboard
        // use the extra key for "dead" accents
        key <LSGT> { [   dead_acute,   dead_caron,  dead_abovering,   dead_diaeresis ] };
    
        // JIS keyboard
        key <AB11> { [   dead_acute,   dead_caron,  dead_abovering,   dead_diaeresis ] };
        key <AE13> { [          yen,          bar ] };
        // modifiers: Muhenkan (102/ff22), Henkan_Mode (100/ff23), Hiragana_Katakana (101/ff27)
        // note: these are usually overwritten by `inet`, `/usr/share/X11/xkb/symbols/inet`
        key <MUHE> { [        ISO_Level3_Shift ] };
        key <HENK> { [        ISO_Level3_Shift ] };
        key <HKTG> { [        Alt_L ] };
    
        include "level3(ralt_switch)"
    };

    ¹ esp. „quotation marks“
    ² AltGr+c = č, AltGr+Shift+c = Č,…
    ³ stock Colemak is public domain, but I'm not sure about its legal status outside the USA, thus assume the terms of WTFPL:

    This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.

    Last edited by davkol (28-Nov-2018 15:48:46)

    Get yourself an ergonomic keyboard. Learn Maltron. Or stenography.

    Offline
    • 0
    • Reputation: 210
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,343

    Have you seen my attempt (see my signature)?

    I'm in the process of writing up the locale proposals. I think the lv3-4 mappings benefit from a total makeover but of course the details of it is a tricky business. :)

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

    Offline
    • 0