Skip to content

Using a split keyboard for programming.

Published on February 12, 2023

I love gadgets and I love experimenting. That’s how I got into mechanical keyboards. I’m currently looking at three keyboards at my desk, they’re actually on a keyboard stand. I’m currently typing this post on two keyboards. Well, technically, it’s one keyboard but it’s split into left and right. The marketing says it’s more ergonomic and it improves your posture. It’s also ortholinear, as opposed to the traditional staggered QWERTY layout. All the keys are in a grid, but it’s actually not ortholinear, it’s columnar, which means it’s kind of ortholinear, but the columns are staggered up or down to allow your fingers to reach up and down rows more efficiently and ergonomically per finger. I work in marketing so when marketing hooks me, I eat it up.

There are many layouts out there, and I could write for days on how I feel about them, what I wanted to write about today is how using a brand new interface has affected my programming. Specifically, what it’s taught me about programming.

First, I want to talk about why I’m enjoying the split aspect. It retrains your muscle memory to touch type properly. The thing with traditional layouts is it’s very flexible. Meaning you can touch type or not. You can use all of your fingers or just some. You could get away with using just one finger as well. What I’ve noticed when I switched over to a split layout was that my muscle memory showcased just how inefficient the staggered layout is. The traditional QWERTY layout is slanted. Your hands are actually being driven at an angle, like this: \ Take a look at your keyboard. Look at the R, F, V keys. Now look at the I, J, N keys. If you’re touch typing, you might know what’s coming. Try typing R. That’s fine right? What’s wrong with that? Now try typing U, also fine? Ok, let’s try T. Also fine. Now Y. Hmm.. a tiny bit of a stretch. Logically, your right index should be typing I, J, N, mirrored of what your left hand is doing with R, F, V.

If your hands are “average” sized like mine, you’ll pick up these tiny stretches all over the keyboard. What finger do you use to type B with? It’s right between both hands. I’ve been using my right hand to type B for as long as I remember, when switching to a split keyboard, B is on the left side. I think most people, myself included, have settled for the way the keyboard is. I won’t go into detail on the history of the standard layout – it’s interesting, google it if you have an afternoon to wast, but it also brings up a lot of thoughts for me. Like why did QWERTY win? Why do some people use DVORAK? What about COLEMAK(the superior one btw). If you’re not familiar with those things and you like to tinker as much as I do, I recommend just ignoring it and move on.

I feel like everything I’ve been enjoying in life lately ends up being this huge rabbit hole. Typical rambling aside, let’s talk about what a split keyboard has done for my programming. And I mean the actual typing of the code. I established that using a split keyboard keeps my touch typing in check and it keeps my keys symmetrical. Both hands have access to the same number of keys. The other huge benefit is that there are thumb clusters as opposed to just one giant space bar. This allows your thumbs to do more than one thing. I’ve set mine up as a shift, command, space, backspace, enter, layer modifier. (I’ll avoid talking about layer modifiers because that’ll be another 7 paragraphs) So now I have six keys that my thumbs can access easily with no stretching. Additionally, I’ve freed up my right pinky from backspace and enter. It feels much more efficient and effortless, after practice of course.

Keymapping is cool. It takes time away from productivity but the effort pays off I think. I’m already back at my regular typing speed. Shout out to Monkeytype. The last thing I wanted to mention about fully programmable keyboards. Moving modifiers is all good, and I haven’t decided if I like my current layout yet, but the feature that has me the most excited is tap dancing, tap-hold, double-tap-hold. These features allow you to enable a key to execute a keystroke depending on how you interact with it. For example, instead of typing Shift+9 to type (, I just need to hold 9 down for more 100ms or more. That goes for the entire number row. I’ve set up ; when tap-held to become : as well. It translates well in my mind. [ becomes { when double tapped. Here’s another piece of magic, the space bar becomes shift when I tap-hold. Even less pinky workouts now. Also when I double-tap-hold C, it types out ‘const‘ – It’s just a minor thing that’s just asking for tinkering. As I become better with a split layout, I’m trying to find ways to make my coding more efficient and less of a chore. I’ve used tools like Emmet to simplify typing boilerplate but that still hasn’t clicked with me. I think I’m still attached to the idea of typing while I’m thinking, rather than thinking of the shortcut to type to execute the code I need. It’s been fun. Has it paid off? I’m not sure yet, but like I said, it’s been fun.

Check out typeractive if you want to build your own split keyboard.

And watch this video from Ben Vallack as he has a much better explanation of what I posted here.