Tue Jul 16, 2024 ยท 2085 words
If you'd asked me a few months ago what I thought about ortholinear, split keyboards, or any keyboard layouts under 60%, I would have said that those are just niche and for the geeky people. My opinions have drastically changed since then. I now believe every CS student should nerd out and look into ergonomic keyboards or layouts if they see themselves using a keyboard in the future.
Backstory
To give some backstory, a few months ago I started upping the amount of time I spend at a keyboard on a daily basis by starting an internship. I started getting pain in my arms by all the typing I was doing. I had already gotten this during my studies, but it was at this point that it finally clicked for me; if I'm going to be typing so much in the future, I need to find a more ergonomic setup. Otherwise it might not just be a little pain that passes after a few days anymore. Speed was never a goal and I already knew my speed would take a big hit anyway.
Layout
The first thing I looked at was a different keyboard layout. A layout determines how the keys are laid out on a keyboard. The most common layout is QWERTY (or QWERTZ).
Below are heat maps showing the most frequent letters in English. Take note of how empty the home row is. The home row is the middle row where your fingers should be resting. With your index fingers being on F and J. So basically most of the time you're typing on QWERTY your fingers are not on the home row and instead reaching to some other key. Also notice how your left hand is doing most of the work. While there are a lot of theories about why QWERTY came to be, it's a known fact that it sucks and is easy to improve on.
Over the years, I've gotten really fast at typing on QWERTY, being in the 98th percentile on typeracer. I have to admit though, my typing form is some 6 finger Frankenstein-technique which also doesn't help with reducing finger strain. I thought I might as well switch to a better layout if I plan to relearn typing.
A layout I've started my journey on is colemak-dh. It is very similar to the colemak layout shown above with some slight modifications to make it even better. Most notably D and H are moved underneath T and N, with the idea that moving fingers down is easier and more comfortable than moving the fingers laterally. The idea behind colemak is to keep a lot of special keys in the same or similar locations (Q, Z, X, C, etc.) to allow for an easier transition from QWERTY while making the whole layout ergonomic to use.
During my first month in May I aimed to spend at least 30 minutes to practice the layout on keybr.com, a website which improves typing by slowly introducing letters and having you focus on your weakest letter.
keybr introduces letters in the order of how frequent the letter is. On QWERTY the letters will be all over the place. On more ergonomic layouts like colemak you'll see that the letters are at first all on the homerow and any new letters introduced are in comfortable to reach positions. The amount you can write without even moving your fingers away from home row is quite surprising coming from having used QWERTY all my life.
This first month I only ever practiced at home after work. I didn't want to go cold turkey and write a whole two lines of code all day, because of how slow I was. I didn't yet learn where all the letters were, let alone where the symbols were. I tried to limit myself to use the keyboard wherever else I could though; for example to chat on Discord. It was a completely different experience from getting my thoughts out as a message in an instant to having around 15 WPM and slowly tapping away my letters and almost losing my train of thought while I search for the letters and fix my typos.
But I need QWERTY
QWERTY is so deeply ingrained everywhere it's almost impossible to get rid of it completely. One of the biggest fears of people learning a new layout is that they fear they lose their ability to type on QWERTY. What happens if you're on another system or you don't have your "colemak keyboard" with you? Then you suddenly can't type anymore.
That should not be the cause of any worry though. You can learn multiple layouts without forgetting how to use QWERTY. One very effective strategy is to only use an alternative layout on a different keyboard. That is also how I'm doing it. I only use colemak on my split column-staggered keyboard. I probably couldn't even use colemak on a regular row-staggered keyboard. This helps with the separation of layouts.
This does mean I have to carry around my keyboard wherever I wanna go, but realistically I only type a lot in two places anyway: At home and at work. Another bonus is that my keyboard is basically pocket-sized so not difficult to bring anywhere.
For gaming, every game has a lot of keybindings. Changing the keybindings of every game I open would be a nightmare, so instead I just my usual keyboard and QWERTY for that. My split keyboard wouldn't work for gaming anyway because of the layers and the homerow modifiers.
Keyboard
Ergonomic keyboards can quickly lead to a deep research rabbit hole. Something all ergonomic keyboards share is that they aim to avoid the angling of hands. They achieve this by either having both halves of the keyboard be angled to allow for straight arms or by simply splitting the keyboard in two. Having a split keyboard allows for your arms to be straight respective to your shoulders. This avoids your arms from aiming inwards and then the arms having to angle back out (ulnar deviation), which puts a lot of strain on the arms.
In my split keyboard research I first stumbled upon ergonomic keyboards like the Kinesis Advantage 360 or Glove 80. These are off the shelf products, but I didn't feel like shelling out half a grand for a keyboard.
To my surprise, there's a huge community behind ergonomic split keyboards. Lots of different variations making it easy to choose exactly what suits you. In the end I decided on a choc crkbd (corne keyboard) which leaves me with 42 keys.
The above is my crkbd. It is intended for your hand to nicely rest on the home row. Your thumbs, the strongest fingers, handle the three special keys on the bottom instead of both being wasted on a huge space bar. This frees up your pinky from having to do finger gymnastics to reach uncomfortable far away keys.
A major problem on standard keyboards is that the layout makes no sense. One of the most common keys, the backspace, is out of reach for most people, since it was an afterthought. Typewriters had no backspace. Have a look at your hands while typing. How much do you have to readjust your hands just to reach certain keys? I don't have the smallest hands yet I can't say I can comfortably reach all the keys without having to move my hand back and forth. Then come the modifier keys like CTRL, ALT, CMD, and FN. Your pinky, the weakest finger, is responsible for reaching all around. I'm honestly still unsure which finger is supposed to click CMD on a mac keyboard. Too far for the pinky, so I usually use my thumb or move my whole hand around. Then comes the row staggered keyboard layout. The only reason keyboards are row staggered is because of how a typewriter used to have levers and it made it easier to assemble. There are no ergonomic benefits and it's completely inferior to column staggered keyboards.
With the crkbd your fingers at most have to move one key up or down. With the exception of the pinky and index which additionally have to move one left or right respectively. Add this with the combination of having a column staggered layout, where the columns are shifted slightly up and down depending on what finger is on that column. For example, the middle finger column is the highest up allowing all your fingers to be at a comfortable position without having the middle finger cramp up too much or the pinky stretch too much. In my setup, I don't even use the corner pinky keys on the far top left/right and bottom left/right, because even those keys make me have to stretch my pinky over. Also lets me say I use a sub 40 key keyboard.
Layers
42 keys??? Where are the numbers? How do I write symbols? It for sure doesn't have F-keys.
Less keys means you have to use layers for achieving certain keys. For example I have three layers that I currently use. My first layer is the letter layer. I don't use a system level colemak, but instead just have the keys in a colemak layout and then use EurKey or US on whatever system I'm on. Less of a hassle, since I want to be able to write on Colemak no matter what system I plug my corne into.
The second text underneath is the key that is pressed if I hold the key for long enough or hold it together with another key. That means if I hold A and then press T I can open a new tab in the browser since that turns into Ctrl+T. These are called homerow modifiers, and are a really cool way to use modifiers without having to dedicate a special key for them. These keys are also one of the main reasons I don't use this keyboard for gaming. In the rare cases I need to spam a character which has a second key, I can tap and then hold the key to simulate a long key press.
The notable thumb keys are the &cmo 2
and &cmo 4
keys which are a modified version of the zmk "momentary layer" which bring me into the second and fourth layer while holding them. I technically only have three layers, but I like to swap GUI (Win key/CMD) and CTRL when working on a mac which I solved by simply duplicating my relevant layers.
Notably I also have my backspace on the left where caps lock usually is. It actually amazed me how natural it feels to be there. It is currently the only key I mispress on standard keyboards nowadays.
My second layer consists of my symbols on the left side and the navigation keys on my right. This is reached when I hold my left thumb layer-switch key. My QWERTY typing form was so illegal, that when using VIM I actually rest my fingers on hjkl
instead of jkl;
, so I just got used to having the "arrow" keys be on my home row. And below the arrow keys I have the corresponding faster movements Home, PgDown, PgUp, End.
My third layer the one I reach when pressing the right thumb layer-switch key. In this layer I have a whole numpad on my right hand. I find a numpad so much superior to writing numbers. Also helps me get high scores in the Monkeytype accountant mode. And on the left side I just have all my F-keys jumbled in as well as my shift is a caps lock. Not that I've actually ever really needed the caps lock since I started using this keyboard.
Conclusion
Learning a new keyboard (or layout) is one of the nerdy things you should be doing as computer scientist. You are in a job direction where you'll spend thousands of hours typing on a keyboard in the future. Look into ways to make it healthy.
Since I started writing this post almost three months ago I have improved a lot on my keyboard. I now use it everyday for work, know where my symbols and special keys are. Have reached around 70 wpm on monkeytype and see no end in having it improve yet.
I severely underestimated how long this whole journey would take. If I spent a bit more time typing and was less scared to use it at work my progress might've been a bit faster.
Hope I was able to inspire you to also explore this part of keyboards. When are you switching to a corne?