Ergonomic keyboard layout influenced by Colemak DH & Workman
README.md: Tested on Debian 11
74481c91 — Gregory Chamberlain 5 months ago
Remove indent on code blocks
52081f60 — Gregory Chamberlain 5 months ago
Fix US layout (swap I and O back)


browse  log 



You can also use your local clone with git send-email.


Ergonomic keyboard layout.

Q W D R F  J L U P ;
A S T H G  Y N E O I
Z X C V B  K M , . /


The design of ASTH-NEOI was influenced primarily by QWERTY, Colemak DH and Workman.

Key positions shared with Colemak DH:

Q W        J L U   ;
A       G    N E
Z X C      K   , . /

Key positions shared with Workman:

Q          J   U P ;
A S     G  Y N E O I
Z X        K   , . /

One distinguishing feature of ASTH-NEOI is that it strongly favours inward rolling (and to a lesser extent outward rolling) of some of the most common English bigrams and trigrams, even where it is necessary to shift the hand position slightly.

Resemblance to QWERTY was a secondary priority, preserving familiar shortcut keys and making it easier to learn. Unlike Colemak DH and Workman, ASTH-NEOI retains QWERTY's R, V, B and M positions.

Key positions shared with QWERTY:

Q W   R
A S     G
Z X C V B    M , . /

Known design flaws:

  • Typing the word "I'm" is slow and uncomfortable because "I" is next to apostrophe. You can't easily roll this one because you need to release shift before hitting apostrophe. A variant of the layout that swaps "I" and "O" might be better for this reason.

  • The "N" and "Y" buttons being close together means you're more likely to make a mistake when responding to a "y/n" (yes/no) prompt.


#Cross-platform (Kalamine)

Get kalamine and use it to install the YAML layout files in the kalamine directory of this repository.

#Linux (X11)

Tested on Debian 11. These instructions might not work on other distros.

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:

    <description>English (ASTH-NEOI)</description>
  3. For the UK variant, do the same as above but the configItem contains <name>gb</name> and the variant snippet is as follows:

    <description>English (UK, ASTH-NEOI)</description>
  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.

Add and enable the layout using your desktop environment's settings panel, or run one of the commands below.

setxkbmap us -variant asthneoi
setxkbmap gb -variant asthneoi  # United Kingdom

Switch back to the standard US or UK layout:

setxkbmap us
setxkbmap gb  # United Kingdom

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


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