Designing a keyboard layout, part 2

This is a quick follow up to my previous essay about designing my own keyboard layout.

For reference, this is the layout I am currently using:

w c m g p  q y o u '
r s n t v  k h e i a
z x l d b  j f / . ,

Multiple people from the kodsnack slack channel suggested that I refer to it as kheia, so unless I decide to re-shuffle the right hand home row, that's the name I am going to use.

Anyway, I thought I would talk a little about the design decisions that went into this layout and why I made certain choices. I'll also mention some of the problems that this layout has that I may or may not be able to resolve.

I had previously settled on learning the hands down reference layout which looks like this:

q c h p v   k y o j /
r s n t g   w u e i a
x m l d b   z f ' , .

Alan Reiser (designer of the hands down series of layouts) no longer recommends this one, but I found it to work really well for me with one minor modification: Switching K and Y to get K into a more convenient location for Swedish. I worked on learning this layout and got to decent speeds for english text, and was even able to use it for programming without too many issues.

It did have some problems that bothered me, however. Maybe the most obvious one is that Alan himself no longer recommends learning this layout. I did look at his newer layouts and while none of them seemed quite right for me, I ended up heavily influenced by the hands right neu layout:

w f m p v   / . q " ' z
r s n t b   , a e i h j
x c l d g   - u o y k   

As you can see, the hands right neu layout makes use of extra columns to the right of the standard 30 key grid for alphabetical letters, and with a keyboard like the Ferris Sweep, I don't even have these keys and would need to move z and j to separate layers or start messing with the layout. This made neu a non-starter for me, especially considering that j in particular gets heavy use while coding in vim.

I was really happy with the home row of reference; meaning rsnt on the left hand and ueia on the right hand, except for one thing: with u under the right index finger I would end up occasionally hitting that key by mistake, and in vim, u is undo. This kept messing me up, enough that I decided that I wanted something else in that location. So as a start to my layout I basically took the left hand of reference and right hand of neu and rearranged neu to spell heia, while also flipping the punctuation back to the lower row.

Eventually, I ended up with this first version of what I called the cmpneu layout:

q c m p b z y o u /
r s n t g j h e i a
w f l d v x k ' . ,

(the very first version had q and / swapped, but I reverted to the above after some feedback).

I used this layout for a while, until two things started bothering me: w on the lower pinky and f on lower ring. Trying to improve on those with hints from other layouts like APTv3 led me to the layout presented above. j is now in a worse spot (the n position of qwerty) and k has moved up to take the inner home row position, but I decided that this actually wasn't too bad and in return I was able to improve the w and f positions. Of course things may still change...

Some general thoughts on letter positions and constraints, and possible future improvements:

I'm currently experimenting with making modifications to canary to see if I can make it more amenable to vim without losing too much of its strengths, but so far I haven't been successful enough to abandon kheia.

Here is my modded canary as it stands right now:

w l y p b z f o u '
c r s t k m n e i a
v x g d j q h ; . ,