Friday, 14 November 2025

Curvy or Curly keyboard layouts

My journey into the world of DIY Ergonomic Mechanical Keyboards began when my Microsoft Natural Ergonomic Keyboard 4000 started to fail. That has a very slight curve to the alphabet block's rows, which became more pronounced in later designs like the Microsoft Sculpt Ergonomic Keyboard (see Wikipedia). However, these all have the traditional row stagger which gives the right hand comfortable (diagonal) columns of keys per finger, but not the left.

In the DIY mechanical keyboard world column based layouts and orthonormal are popular (keys in a grid), but there is another solution which at first glance preserves the traditional row stagger: The symmetric katana stagger, originally popularised by Baris Tosun aka RominRonin's Kanata keyboards as early as 2015. Well, what if you combined that with a curve to each row?

Ergogen GUI screen shot showing a 45-key layout keyboard, annotated with Qwerty
This looks like a row stagger, but there are well defined columns for each finger!

That's my Curly45 keyboard concept, 45 keys laid out in Ergogen. I had square keys in mind like the mainstream MX keycaps or the smaller Choc v1 CFX keycaps. With that decided, you can fine tune this for a more vertical outer edge. This should work with a little fine tuning for the rectangular Kailh Choc v1 keycaps too. Note this only has the three main rows, but you could add a number row along the top too.

Due to the curve the top row has one more key than the rest, with the home home getting a wider 1.5u key at the outer edge. That means a stagger of 0.5u between each column at the left - but this shrinks down to no stagger by the index finger column which is tilted at about 25 degrees. The idea is to have a vertically aligned outer column, and a tilted but perfectly aligned inner column, making a nice neat arc shape.

Thumb key placement is very personal, with the size and shape of the hand making a big difference the natural placement of the thumb keys. You could take this idea and add your own thumb keys to it.

The concept above has two thumb keys per hand. The left hand gets six columns of three plus a top-left key (eg Escape). This is consistent with the philosophy that each key should be one-key away from the finger's resting home positions. The right hand however gets seven columns of three plus a top-right key (eg Backspace, or backslash/pipe). Those extra keys allow placing all the standard punctuation keys on the ANSI keyboard (missing just the numbers, function keys, and navigation - which here would be on layers). I would use the larger 1.5u keys for tab on the left (perhaps as a modifier when held), and return on the right.

But the Numbers!? 

I've been playing with this idea since as part of a (slightly) larger layout with cursors and a number-pad on the side. This version minimises the total width - about the same in fact! The main block is dropped to just 5 columns of three (green), an extra corner key, and one thumb key per hand (red). The enter key is bottom right (red) below the number pad (yellow), and can have a wider keycap. This also gives the inner index finger column a dropped stagger, in a move intended to make this flexible enough to use what are labelled as B and M as thumbs keys (see below):

Annotated Ergogen GUI screenshot of a 52-key Qwerty keyboard layout, with number pad on the right
My Slump52 concept keyboard layout, with 52 keys annotated with Qwerty (letters in green, numpad in yellow, cursors etc in red).
This layout assumes the pinky finger will handle the outer column (shown as Escape, A and Z), with the ring finger taking four keys (Q and W in the top row, S as the home position, and X on the bottom row). A lot of touch typers do that anyway to reach the Qwerty Q and P keys, especially those with a shorter pinky finger.

In order to save a column, the suggested Qwerty layout shown replaces semi-colon on the right pinky finger key with minus/underscore. This and the key below it (slash/question mark) then form part of a vertical column of mathematical operators for the numpad. Compared to the layout above, this meant moving the half key of space inward, so in this iteration the S and L keys can optionally have a wider 1.5u keycap. That gave me the name SLump in Slump52 for this keyboard idea. To complete the number pad I added a dedicated multiple key (asterisk), and I would also flip the equals/plus key at the top of the column to give plus by default, and equals with shift (using a mod-morph in ZMK, or a key-override in QMK). 

Personally I would also replace shift with period or comma, probably with colon and semicolon (like the German layout), rather than less-than and greater-than. Even assuming that shift and the numbers still gave the typical symbols, you would still need to use chords/combos or layers for the missing symbols and punctuation (like the single quote key, and backslash/pipe, or backtick/tilde). However I think this is a reasonable compromise for a 50% layout.

I never learnt to touch type properly with Qwerty, and am instead now touch typing using a custom layout. That gives me the option to treat this layout as having two thumb keys per hand rather than just one (taking the B and M keys as thumb keys). You could do that with Qwerty too by shifting the top row outwards (Q replacing Escape etc)? Just like any programable keyboard, the default layout is merely a suggestion!

Go small?

I realised that with CFX spacing (for 16.5 mm square key caps) the main alphabet blocks here will actually fit on a 10 by 10cm PCB, which is surprisingly much more economical for fabrication (especially with USA based firms). Adding splayed thumb keys wouldn't work though. This is also an excuse to make a mini split keyboard 34~36 key version of this curvy stagger idea, before committing to a larger one...

No comments:

Post a Comment