~chambln/asth-neoi

122018030467fa76663f5e4158af7bc67400dd04 — Gregory Chamberlain 1 year, 6 months ago e30405e
Add X11 installation method
3 files changed, 147 insertions(+), 0 deletions(-)

M README.md
A xkb-symbols/gb
A xkb-symbols/us
M README.md => README.md +58 -0
@@ 51,10 51,68 @@ Known design flaws:

## Installation

### Cross-platform (Kalamine)

Get [kalamine](https://github.com/fabi1cazenave/kalamine) and use it
to install the YAML layout files in the [kalamine directory of this
repository](./kalamine).

### Linux (X11)

Install the ASTH-NEOI layout for the US keyboard, and optionally for
the UK keyboard (the UK layout derives itself from the US layout, so
it will not work without the US keyboard layout).

It would be wise to create a copy of the files you are about the
modify, adding a suffix like `.orig` or `.bak`.  That way you have a
backup so you can roll back the changes.

1.  Append the content of `xkb-symbols/us` to
    `/usr/share/X11/xkb/symbols/us`.

    For the UK layout, append the content of `xkb-symbols/gb` to
    `/usr/share/X11/xkb/symbols/gb`.

2.  In `/usr/share/X11/xkb/rules/base.xml`, under `layoutList`, find
    the `layout` that has a `configItem` containing `<name>us</name>`.
    Add a new variant for ASTH-NEOI under the `variantList` of that
    `layout`:

    ```xml
            <variant>
              <configItem>
                <name>asthneoi</name>
                <description>English (ASTH-NEOI)</description>
              </configItem>
            </variant>
    ```

3.  For the UK variant, do the same as above but the `configItem` contains
    `<name>gb</name>` and the variant snippet is as follows:

    ```xml
            <variant>
              <configItem>
                <name>asthneoi</name>
                <description>English (UK, ASTH-NEOI)</description>
              </configItem>
            </variant>
    ```

4.  Repeat steps 2 and 3 for `evdev.xml`.

5.  Edit `/usr/share/X11/xkb/rules/base.lst` and add the following lines:

    ```
      asthneoi        us: English (ASTH-NEOI)
      asthneoi        gb: English (UK, ASTH-NEOI)
    ```

6.  Repeat step 5 for `evdev.lst`.

You might need to restart your desktop environment to effect the
changes.

## Contributing

Send patches to <~chambln/public-inbox@lists.sr.ht>.

A xkb-symbols/gb => xkb-symbols/gb +23 -0
@@ 0,0 1,23 @@
// Describe the differences between the US ASTH-NEOI layout
// and a UK variant.
//
// Gregory Chamberlain <greg@cosine.blue>

partial alphanumeric_keys
xkb_symbols "asthneoi" {
    include "us(asthneoi)"

    name[Group1]="English (UK, ASTH-NEOI)";

    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};

    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};

    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};

    include "level3(ralt_switch)"
};

A xkb-symbols/us => xkb-symbols/us +66 -0
@@ 0,0 1,66 @@
// ASTH-NEOI (variant of ASTH-NEOI)
//
// Gregory Chamberlain <greg@cosine.blue>

partial alphanumeric_keys
xkb_symbols "asthneoi" {

    name[Group1]= "English (ASTH-NEOI)";

    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> { [            d,            D,          atilde,           Atilde ] };
    key <AD04> { [            r,            R,          oslash,         Ooblique ] };
    key <AD05> { [            f,            F,     dead_ogonek,       asciitilde ] };
    key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
    key <AD07> { [            l,            L,         lstroke,          Lstroke ] };
    key <AD08> { [            u,            U,          uacute,           Uacute ] };
    key <AD09> { [            p,            P,      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> { [            s,            S,      dead_grave,       asciitilde ] };
    key <AC03> { [            t,            T,          ssharp,        0x1001e9e ] };
    key <AC04> { [            h,            H,      dead_acute, dead_doubleacute ] };
    key <AC05> { [            g,            G,  dead_diaeresis,       asciitilde ] };
    key <AC06> { [            y,            Y,      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)"
};