5x3_3 Keyboard Layout

I haven't made an updated post since my last in 2020.

Since that post, I've been using smaller and smaller keyboards, settling on a 5x3_3 layout on all my programmable keyboards1, both QMK and ZMK.

I'm going to illustrate the layout using the ortho style above, but it works equally well on Cornes, Atreus, or whatever you have:

ergo

Much of the logic remains the same from the 2020 post; the main change is finding new homes for the outer keys. Most have landed on the bottom three thumb keys. There's surprising room if you are willing to be a little creative.

I'm interested in having small keyboards because I enjoy the challenge, and I genuinely think that the smaller hand motions are easier on my hands for long typing sessions.

Layers

Alphas

alphas

I have not abandoned QWERTY. I have too much muscle memory in Vim and other programs' shortcuts.

Symbols

symbols

Actuated by holding my LH thumb Backspace.

My symbol layer started with the Ergodox/Kyria symbol layer and was combined with some Planck symbol layer logic, adjusted for comfort writing Markdown and Elixir.

Capsword lives in Symbols, and it's a great feature. It is prime real estate that could be moved, but I don't have anything that I want to put there.

Control

control

Actuated by holding my RH thumb Spacebar.

Control is vestigial Planck usage. I find the number keys very helpful for Vim jumps, and having the arrow keys on hjkl is great for text-editing everywhere else.

There's a lot of space for activities in here… I could see mouse keys being implemented here.

Shortcuts

shortcuts

Hold by holding LH Thumb Tab or RH thumb '.

Shortcuts contains software-specific keys and macros. Common key chords (especially those that require two hands) are crammed into my LH side so that I can easily mouse and work on design files. The space and enter keys were originally me bowing to the fact that I can't hold my "normal" spacebar… but now I use them all the time one handed to navigate Figma document trees. Two fun features:

  • The Screenshot key has a tapdance: press once to copy to clipboard, twice to save to desktop.
  • The ⌘⇧-M Mute/unmute key for Microsoft Teams is a great example of a small tweak to a keymap that makes a big life difference. I can unmute with my non-mouse hand without reaching across the keyboard.

The RH is mostly a numpad. This honestly rarely gets used… that's something that could be moved or adjusted, especially if Numword becomes an available feature.

Adjust

adjust

Hold both LH and RH thumb at once.

Adjust contains media keys, F-keys, and keyboard-specific controls (bluetooth controls, reset, etc.)

I am very happy with my concise media keys. I've gotten very used to it, and it's very nice. Both Play/Pause and Next/Prev are on a Tapdance behavior: a single tap does the first action, and a double tap does the second action.

Homerow Mods

All the main modifiers exist on LH and RH homerow as Home Row Modifiers. It's something I've gotten used to over the past few years, and I don't think I can go back. I think Home row mods minimizes movement for the programming typist. I never do the stretch/squeeze motions required to hit modifiers on normal keyboards. If you have already moved your CTRL key to where Caps Lock was before, you are the target market to play with Home Row Mods.

I do have the rare moment where a save menu or something pops up when I was trying to type as, but it's quite rare at this point2.

If you are a Readline/emacs afficianado… I can't express how good Home Row Mods are for this use case. Even if you don't it improves all normal text editing. It becomes so natural so very quickly. Selecting backwards by words is as easy as holding sf for Shift + Alt in your LH, holding the right hand space for the Control layer and pressing h a few times to go backwards. It's so natural so fast.

Misc

The weird F19 key powers my Hyper Key via Hammerspoon. Tap for ESC, hold for F19 has been a very good pattern for me.

With a Lightning -> USB-C OTG dongle and setting:

#define USB_MAX_POWER_CONSUMPTION = 100

I can type this whole post on my iPhone!

Future?

This layout has stayed very stable for a number of years. I'm mostly tweaking timings for homerow mods or latency settings on QMK at this point.

Whenever mouse keys get merged into ZMK I will be looking for a good place for them, probably on the LH of the Control layer. For now I use either Vimium or Homerow.app to drive the mouse from my keyboard.

While I like not dipping into a layer to get at the apostrophe, some of my boards require more of a thumb duck-under to hit that rather common punctuation. I'm considering finding a combo for it, but I haven't figured how that interacts with home row mods.

I should also mention: much of the concepts are borrowed from lots of people. A lot of the layout principles were borrowed from the tremendous and popular miryoku layout, which deserves much credit.

If this keeps getting updated, I may post an evergreen essay that stays updated with my layout. I don't think that'll be necessary… unless Arley convinces me to try Colemak or Workman.


  1. Current list: 

    • Lowprokb Corne-ish Zen (20g gChocs)
    • OLKB Preonic (67g Zealio Zilents V1)
    • Chosfox Bancouver40 (Lowprokb Sunsets)
    • Keyboardio Atreus (Kailh Speed Coppers)
    • Maple Keyboards Let's Split Eh (67g Zeal Zealio V1)

    Maybe I do need a /uses page like Seth has suggested… hmm…

  2. I'm interested in some of the fun innovations on the ZMK side for more intelligent Home Row Mods… at this point it's working for me and I am willing to do the extra work to make it work. I'll wait for it to hit master. 


Changelog
  • 2023-05-27 16:07:54 -0500
    Add credit to miryoku

  • 2023-05-27 15:39:18 -0500
    Proof by Chat GPT

  • 2023-05-27 14:06:06 -0500
    First draft of blog post