There's No Place Like Home-Row

31 Mar 2022

My last post describe the process of figuring out how to lay out the letters on the Corne in a way that will work with my fingers. This works fine for MonkeyType, but isn’t quite sufficient for using the keyboard day to day. There are a few other things you need to cover. Before diving into the details, here’s the layout:

My full Corne keyboard layout (at time of writing)

The first thing that leaps out at you is the keys that aren’t used — along with the keys above and below the repositioned P, I’ve not assigned anything to the outermost (“pinky”) columns on both sides, or the outermost thumb keys.

This may seem like an odd choice, given that the keyboard doesn’t have that many keys to start off with. However, my experiments with the letters convinced me that reducing finger movement is a good thing to prioritise, even at the cost of some complexity.

Speaking of complexity, an explanation is in order for anyone not familiar with layered layouts. This basically means that additional modifiers (beyond the usual shift, control and so on) are used to pack multiple logical keys on to the same physical one. The blue legend shows what you get when you press a key on its own (almost exclusively letters in this case), the green when you hold the “raise” modifier, and the red when you hold the “lower” one. As a concrete example, to type an opening parenthesis “(“ you hold down “lower” and press the key that would usually type a “G”. This all sounds convoluted, but you get used to it surprisingly quickly1.

For everything down to a 60% keyboard2, layers alone are sufficient. However, when you get down to 40% (then reduce that to effectively 30% by ignoring ten of the keys), you run into a problem. Where do you put the modifier keys? There are various options, but the one that appealed to me was home row mods.

This approach takes advantage of the tap-and-hold functionality available in QMK and other firmware, which lets you double up the functionality of a key. There’s a lot of subtlety in the details, but basically a short tap has one function (e.g., typing an “F”) while holding the key down has another (e.g. the shift modifier). Home row mods puts the usual modifiers (shift, control, opt/alt and command/win) on to the home keys. This has the major benefit of placing them in the most accessible positions on the keyboard.

The main cost of home row mods, and layers in general, is cognitive load. Rather than just having to move your fingers to the required position, you need to figure out the combination (and, in some cases, temporal sequence) to get the effect you want. This can, of course, be learnt — people learn to play the piano, fly jet fighters, and use Emacs, after all — but it implies a significant learning curve. For something that has, for many of us, has been effortless for years or decades, it can be a bitter pill to swallow.

Nevertheless, the layout is now complete, which means I can use it for day-to-day work, and I’ve been doing so on-and-off for a couple of weeks now. Over the course of that time, I’ve made a couple of minor adjustments — most notably adding the extra Cmd key on the right to make one-handed use of the CUA keyboard shortcuts easier — but I’m generally pretty happy with it. I’m still climbing that ferocious learning curve, but it’s getting easier and I feel like it’ll be worth it in the long run.

This is definitely not the final endpoint for this layout. I’m sure there will be plenty of further tweaks and changes as I use it more. The basics are solid, though, and I expect to steadily approach and then surpass my proficiency with a standard keyboard. Moreover, I’ll have fun doing it. Learning a new skill is always stimulating, and I’m enjoying the mental gymnastics.

The QMK implementation of this layout is available on my GitHub account, if you want to look into more details.

  1. As is often pointed out, this isn’t a million miles away from how the soft keyboards on modern smartphones work, and plenty of people adapt to those just fine. [back]

  2. In the custom keyboard world, sizes are described as the rough number of keys expressed as a percentage, as a full keyboard layout has about 100 keys. So, 60%, a common choice for compact keyboards that takes that standard layout and drops the numpad, F keys, navigation cluster and arrows, has around 60 keys. [back]

This site is maintained by me, Rob Hague. The opinions here are my own, and not those of my employer or anyone else. You can mail me at rob@rho.org.uk, and I'm @robhague@mas.to on Mastodon and robhague on Twitter. The site has a full-text RSS feed if you're so inclined.

Body text is set in Georgia or the nearest equivalent. Headings and other non-body text is set in Cooper Hewitt Light. The latter is © 2014 Cooper Hewitt Smithsonian Design Museum, and used under the SIL Open Font License.

All content © Rob Hague 2002-2024, except where otherwise noted.