Thoughts on customising a split keyboard layout


Earlier in the year I started experiencing pain in my wrist and hand. “RSI has finally come for me!”, I panicked. After falling down a rabbit hole of ergonomics, desk setups, trackballs, and customised keyboards… I landed in an even deeper rabbit hole of split ergo keyboards. Fast forward through several Discord servers and subreddits, and now I’m typing on a Corne (aka CRKBD) 6-column/42-key split keyboard. I’ve had a lot of fun developing my own keymap, learning to type on a split, and finding an ergonomic approach that works for me. Maybe some of this will resonate with you too.

You can find the ZMK configs to install this yourself on GitHub.

The Keyboard

For those unfamiliar, the Corne (aka CRKBD) by foostan is a split ‘ergonomic’ keyboard, with 3x6 columns and 3 thumb keys on each side. It comes in two switch styles: Cherry MX and low profile Choc.

I’m currently using a low-profile choc wireless Corne from Typeractive.xyz. It’s fitted with Ambients Twilight silent linear switches, which are wonderfully quiet. I’m using ZMK firmware. I’ve heard some people complain that the choc-spaced board is cramped, but I’ve not had any problems with it. I’m currently just using FR4 plates in lieu of a case for an ultra minimal feel!

My Keymap

I’ve really enjoyed tinkering with this, and while the majority of it is fixed, I’m sure I’ll keep making changes in some regard.

Inspired by Mark Stosberg’s approach, I set a few key priorities for my own keymap development:

  • QWERTY. I regularly need to switch keyboards at work. While I love the idea of learning COLEMAK, brain space says no.
  • Easy access to symbols and navigation. I type ‘normally’ and code, and I want both to be easy. I think my initial RSI issues have something to do with constantly reaching for ; and => (){ … thanks JavaScript!
  • logical layer arrangement. That means trying to consolidate layers but keep them clear and (relatively) easy to learn.

Finally, I’ve borrowed heavily from Manna Harbour’s Miryoku layout, which is a thing of beauty and I would love to adopt… but it’s design philosophy is rooted in 36 keys, and 42 seems to undermine that.

Base layer

No surprises here --- it’s QWERTY.

Custom corne base layer [EDIT: added home row mods]

Left side thumb keys, left to right: Ctrl, Space (held for Nav layer), Tab (held for Utilities like Bluetooth). Right side thumb keys, left to right: Enter (held for Num layer), Backspace (held for Symbol layer), and a sticky Shift. I’m still not completely satisfied with this setup—see ‘Frictions’ below for more details.

One of my biggest dilemmas was deciding where to place modifier keys like Ctrl, Shift, and Gui (OS). Doubling up Ctrl and Shift isn’t the most efficient choice, but it has proven useful. I can see this is where home row mods have a definite advantage, and one I’m considering.

[EDIT: I’ve tentatively started playing around with Home Row Mods after reading this excellent guide. I’m enjoying it, although I am encountering a LOT of mis-fired mods on regular typing, so I need to adapt my typing style if I’m going to commit to it…] [UPDATE: okay, I’m more used to it now… I love it!]

I’m using a couple of combo presses here too:

  • G+H for WORD_CAPS
  • T+Y for CAPS LOCH
  • Q + W for Escape
  • del + ' for volume up
  • ' + alt for volume down

This one borrows heavily from Miryoku, but I’ve consolidated arrow key navigation and mouse control onto one layer. I’m still unsure if the trade off is worth it, but it’s mostly working for me at the moment.

Custom corne nav layer

I think a big part of my RSI issue stem from reaching for the mouse. To that end I’m using a trackball, usually positioned between my split keyboard. Ultimately I like the idea of using the keyboard itself to do a lot of the mouse navigation I’m used too… but I’m not there yet. (I think the next hurdle will mean finding a decent window manager app for windows.)

Symbol layer

This layer was the hardest to get right, but while I continue to tweak elements, I’m pretty happy with it for the most part.

The focus for this layer was comfort when programming, so things like brackets and basic operators need to take preference over lesser used symbols. To aid learning I’ve tried to group symbols somewhat.

Custom corne symbol layer

I’m working in JavaScript a fair amount, so I have a handy double tap dance on my > key to give me => for arrow functions.

Number layer

A simple one: numbers across the home row, function numbers above. I’ve got the shifted number keys along the bottom row but I don’t really use them favouring the symbol layer instead.

Custom corne number layer

Utility layer

For now, this layer is minimal, mainly handling Bluetooth profiles. However, I expect it to evolve as I get more comfortable with ZMK.

Frictions

Right now, my biggest friction point with this keymap is the placement of the inner thumb keys — Ctrl on the left and Shift on the right.. For example, relatively common combos like Ctl + V or Shift + N mean I have to move my thumbs under my palm and my index fingers out, which is uncomfortable. This is something that makes me consider home rows, or even just using the sixth (outer) columns more. [EDIT: home row mods and sticky shift have helped this, but I’m now working on my own keyboard design to push the thumb keys out wider…]

Reflections

On the whole I’m happy with this setup for now. Will my setup evolve? Absolutely. I’m still slower and more uncertain typing split than on ‘regular’ keyboards, but my RSI issues have abated. I’m not claiming that my keyboard cured anything, but improved awareness of my typing form, posture, and the use of a trackball (Elecom Deft) have all made a significant difference. And I think, above all, I’ve found this whole learning and development process fun!

Cat + Corne

Considering a split keyboard?

Do it! As I’ve said, it’s fun, and clunky, and slow. But I’m happy to be doing it, and every day I’m getting a little more confident and faster. I’m still nowhere near my normal keyboard typing speed, and maybe I never will be, but I’m okay with that as speed isn’t my reason for doing this.

Choc vs MX

I started out with a wired MX Corne v4.1 with 46 keys (2 extra on the inner sides), with Outemu v3 Silent Peach switches and VIAL firmware. I was happy with the layout, but quickly realised that the wired connection was cluttered and bothered me, so I moved to a wireless Choc version.

Top: MX corne; Lower: Choc corne

I’m using the 6-column variety. Initially I thought that more keys would require less layer-hopping, and therefore make for an easier transition from my usual 75% and 100% keyboards. What I wasn’t anticipating was how different the initial typing experience was. Even though I’ve stayed with QWERTY (I need to use a variety of computers at work) typing on a non-staggered split keyboard was completely alien and I needed to effectively relearn to type from scratch. Now that I’m mostly through that and onto the other side, I can’t help but feel the sixth column is a little superfluous… and the 36-key (5 column) model looks nicely compact. If I do want to downsize, I don’t anticipate a huge amount of changes to my setup besides maybe home-row mods. [I’m currently designing my own board inspired by the Temper / Bad Temper and TOTEM boards…]

Useful resources

I’ve found these helpful in experimenting with different layouts:

Close out

Disclaimer

This is my personal keyboard layout and subject to change at any time.

Keymap images were made with https://www.keyboard-layout-editor.com/. You can find my KLE jsons here: Base, Symbol, Navigation, Number

Get in touch

Have any questions or thoughts? Are you on a similar keyboard journey? I’d love to hear from you via social media, email, etc.

Update 25/03/2025

I’ve been playing with Home Row mods a lot for the last week or so since publishing this post, so much so that I’ve merged them and published my ZMK config on GitHub. Besides the HRMs there isn’t really much differece to the layout above.