← More about keyboards

Thinking of buying a custom keyboard? Or got one and looking to leverage its features? Here’s a tour.

My daily driver: ZSA Voyager

Ergonomic hardware

For typing comfort, I highly recommend a keyboard that is split, columnar, and with QMK or other programmable firmware. A couple examples are the ZSA Moonlander and Dactyl Ergodox:

ZSA Moonlander
Dactyl Ergodox

Some other popular options are the Lily58, Sofle, and Corne split keyboards. There’s an extensive catalog of split keyboards at Awesome Split Keyboards.

What makes these keyboards so good

A split keyboard has separate modules for each hand connected by a flexible cable. This enables you to type with your hands comfortably at shoulder width apart and with wrists straight to avoid ulnar deviation.

A columnar keyboard has aligned columns of keys. This is in contrast to the row-staggered keys of conventional keyboards, a vestige of mechanical typewriters to make space for levers that connect each key to the type hammers that strike the paper. Columnar arrangement follows the natural direction of the fingers and helps reduce ulnar deviation in the left wrist.

A programmable keyboard is one where the function of each key may be reassigned, perform macros, and so on to adapt to your workflow. More on this in a moment.

Next-level ergo: DataHand-style keyboards

If you are seeking relief from typing pain, you may be open to an unconventional solution. DataHand-style keyboards enable typing without any wrist movement, extremely low finger movement, and light forces. While the original DataHand is no longer available, Svalboard Lightly is a modern evolution, with offers available as a prebuilt or self-print kit device.

Svalboard Lightly (with integrated trackball on the right hand)

Each fingertip remains in an individual key well, an adjustable cluster of 5 keys. The keys have a magnetic action that break away sharply, going from 20 g force down to about 8 g at the end of travel, naturally discouraging hammering key presses as the finger immediately senses the action of the key.

The minimized motion and light forces are a significant advantage for those suffering from tendonitis or carpal tunnel syndrome.

Where to buy split keyboards

The r/ErgoMechKeyboards wiki has a list of vendors that sell split and ergonomic keyboards, organized by region. You can also try r/mechmarket.

To give fair warning…

Ergonomic keyboards differ in placement of the thumb buttons as well as in the stagger and splay or the columns. You can use Splitkbcompare to make 1:1 prints for many popular keyboards to test how they fit your hands.

Keyboards often use cheap AVR microcontrollers, like the Pro Micro and Elite-C boards with the ATmega32U4 microcontroller. While they are enough to get running, AVR microcontrollers have a stingy amount of flash space, and you’ll need to be sparing in which firmware features to enable in order to fit in that space (see Squeezing the most out of AVR). If you have an option to use a better microcontroller, I’d recommend it.

Firmware features

Here are some highlight features of what a keyboard with QMK firmware can do, potentially boosting your comfort and productivity.

QMK is not strictly necessary. Other programmable keyboards have their own firmware features, and at least basic functionality is comparable. Or even with a regular keyboard, you can get some of these features in software with Kanata or KMonad.

(ZSA keyboard users) If you use the Oryx configurator, it is QMK firmware underneath, and most of these features are available in Oryx.

Multiple layers

Generalizing how e.g. holding Shift changes the number row to type symbols, you can define multiple layers and use “layer switch keys” to access them. For instance, a symbol layer is useful for programming. Never run out of keys.

My base layer (Magic Sturdy layout).
My symbol layer.

Home row mods

The idea of home row mods is to put the modifier keys—Ctrl, Shift, Alt, Gui (Win key)—directly on the home row as mod-tap keys. This has the ergonomic advantage of reducing finger travel and awkward hand positions. In my keymap, I additionally put layer-tap keys on the home row to access the symbol layer.

Home row mods in my keymap.

The E key for example types “e” when tapped and behaves as Shift when held.

I was skeptical at first, but home row mods feel great now that I got used to them. As you might expect, there is a learning curve. See A guide to home row mods for a detailed explanation and Home row mods are hard to use for further tips.

Do more with each key

There are several additional QMK features to get more out of each key:

There are many options to facilitate your workflow!

Macro buttons

It’s possible to define a macro button that types multiple characters when pressed. My favorite is a key that types ../, useful in the shell for up directory. See Macro buttons for a collection of QMK macros and QMK triggers for further tricks.

QMK allows the user to write arbitrary C code to handle events. This is great flexibility. I’ve been having fun with this to write my own features as userspace libraries:

Closing thoughts

Have questions or curious to see more?—come to r/ErgoMechKeyboards.

Resources:

← More about keyboards