Cataclysmic Mutation

Machine Learning and Whatever Else

Fun With Expensive Keyboards (a Review of the Truly Ergonomic Keyboard)

My mom went through some RSI issues when I was a bit younger, and when I started to feel a little numbness after extended periods of typing, I started looking at more ergonomic options. I’ve tried a lot of keyboards over the years. Most of them have had major flaws that kept me from sticking with them full time.

What I want is an ergonomic layout, quality key mechanisms (preferably mechanical), and the ability to configure, without too much trouble, a symmetric layout with at least a Control, Meta, and Super key on each hand. Bonus points if there’s a nice place to put a Compose key somewhere as well.

Microsoft Natural Pro

Microsoft Natural Pro

The original Natural Pro was a great keyboard. It was solidly built, had a nice layout, good key actions, and enough modifier keys to work reasonably well. All keyboards that use the “split but otherwise standard” layout end up with modifier keys being not the easiest to reach fluidly, but this is a minor issue for me at least.

Unfortunately, the keyboard hasn’t been sold for over ten years now. My version (sitting in a box somewhere) is PS/2 only as well. There are better keyboards available, but it’s been a long and winding road to find them.

Typematrix 2020

Typematrix 2020

This was one of the first truly “alternative” keyboards I tried, and it pretty much a non-starter. Although it is the one keyboard listed here that isn’t mechanical, the keyboard itself is actually decent, and the laptop-style scissor key mechanisms felt quite good, for what they are. The real dealbreaker issue was the inability to create enough modifier keys, which meant that I think I gave this one a chance for no more than a couple of weeks. The shift keys take up the space that would normally allow for Shift, Enter, and a Caps Lock (which I would immediately remap to Control). Similarly, there are two double-sized Backspace keys, one and a half Tab keys, etc. Adding it all up, the Typematrix wastes the space for 9-10 additional keys, some of them in prime locations, so that it can either greatly enlarge or duplicate keys that need to be neither larger nor more numerous.

I did appreciate the idea of moving some frequently used keys away from the pinkies and into the middle of the keyboard where your stronger index fingers (and/or thumbs for some layouts) can more easily reach them. The only problem was the way Typematrix chose to do it just didn’t work at all for me.

The other touted benefit of the Typematrix was the columnar key layout. On most keyboards, keys like Q, A, and Z are not directly in a straight column. Instead, they’re offset from one another, Q being further left than A which is further left still than Z. Typematrix claims that the columnar layout is more ergonomic. This is a fairly common feature on ergonomic keyboards today, and I’m not sure I notice a huge difference either way, but if nothing else, it’s no worse.

A year or so later, Typematrix did come out with the 2030, which improved on the 2020 in a few ways, but doesn’t address the issues that made it unsuitable for me.

Happy Hacking Keyboard Lite 2

Happy Hacking Keyboard Lite 2

The Happy Hacking family of keyboards have a lot of geek cred, but it was another miss for me. The Lite model differs from the much more expensive Pro version in that the Pro uses higher quality switches and doesn’t include arrow keys. Really the only differentiating thing about the HHKB is its small size and decision to put the Control key where it belongs, where everyone else puts Caps Lock. Otherwise, it’s a completely standard keyboard without the normal PageUp/PageDn block or any other similar keys (they’re all available via a Function key).

It seems to me that the Happy Hacking Keyboard gets too much credit for sticking Linux-friendly keycaps on a normal keyboard (the diamond keys, Control instead of Caps Lock, etc.). All of this can easily be done in software, so I don’t really see the point, unless you really like the Function key method of accessing the lesser used keys. It’s not a low-quality keyboard, but nor do I think of it as being particularly “hacker” friendly.

Microsoft Natural Ergonomic Keyboard 4000

Microsoft Natural Ergonomic 4000 The clumsily named Microsoft Natural Ergonomic Keyboard 4000 ought to have been a winner. On the surface, it was a modern updating of the venerable Natural Pro. Unfortunately, and by a wide margin, it also featured the worst key mechanisms I’ve ever touched – and I’m counting the iPad there. It felt like typing through a layer of ballistics gel, and to get the N key or Space bar to register required about the same amount of force as winning a thumb-wrestling match with that one older cousin we all have. I almost returned mine as defective, but I tried another one in a store and it felt the same. A coworker saw mine a few days later unplugged in a pile of crap on my desk, and I gave it to him for nothing. And felt bad about it afterward.

Kinesis Advantage

Kinesis Advantage

I’ve been using the Kinesis Advantage for about five years now consistently. I have two of them, one at home and one at work, and unless I’m on a laptop, I’m using one of these keyboards. Obviously I don’t hate it, but there are some annoyances. It feels (and is) cheaply made, but still costs a fortune. I’ve had to take mine apart a time or two and glue the USB connectors back down, and once you remove a couple of screws, it really is just a thin, hollow, plastic case with a few bits of electronics glued down. At $300 and up, it’s hard to not feel robbed.

The function keys are little rubber things that you can’t really type by touch. The arrow key layout is terrible (Left and Right are on the left side, Up and Down on the right – imagine trying to quickly delete the first character of five straight lines and you get an idea of how difficult a coordination problem this becomes on the Kinesis). Finally, there aren’t enough modifier keys. You get, by default, a Control and Meta on each thumb, but there’s no place to put a Super or Hyper key. This is particularly problematic on the Mac, where as an Emacs user, I need Control and Meta, and the OS very much wants a Command as well. There just aren’t spaces for three conveniently reachable modifier keys. If you’re only using Linux, perhaps you can get by with just Control and Meta, but even there, I use a tiling window manager with Super as the activation key for WM actions. I’ve remapped a few things to get Super keys on each hand, but doing so required me to sacrifice Home and End keys. There is a perfectly usable space below each Shift key, and I even sent a note to Kinesis several years ago suggesting they put another key in that space, but they politely declined.

The layout of a few other keys is not my favorite either. The bracket/braces keys are, by default, inconvenient to hit, which makes the default layout not great for programmers. However, because so many keys are moved into the thumb areas, it’s more difficult to remap things like the brackets – there just aren’t enough keys left near the fingers to put them without losing something else equally valuable.

Also somewhat weirdly, the keyboard isn’t recognized at all at the BIOS/EFI level by a few of machines it’s been plugged into. My current work machine, a Lenovo workstation running standard Core i7 parts is one such machine. That box dual boots between Linux and Windows, and I have to keep another keyboard around to use if I need to boot into Windows, because I can’t move the Grub cursor with the Kinesis. It’s worth saying that I’ve never had a problem with the keyboard being recognized once the OS boots (any OS at all), but something in the firmware doesn’t play nicely with some BIOS versions.

Despite these flaws, the Kinesis has been the best keyboard I’ve ever used.

Truly Ergonomic

Truly Ergonomic

All of which leads us up to today, and the Truly Ergonomic keyboard. On paper, the Truly Ergonomic Keyboard (or TEK, as they call it) seems absolutely perfect. I just said the Kinesis Advantage was the best keyboard I’ve ever used, and the Truly Ergonomic seems to address every single negative thing I had to say about it. By all accounts, it’s built like a brick (and still comes in $50 less than the comparatively flimsy feeling Kinesis), the arrow keys and PageUp/PageDn cluster are sensibly arranged, the layout is better suited for programmers, and the function keys are high quality mechanical switches just like the rest of the keys. If you get the Model 209 version, you have symmetric Control, Meta, and Super keys on both sides, and the common keys like Enter, Backspace, and Delete are moved away from the pinkies into the middle of the keyboard.

I’ve now been using the TEK for about a month, and so far it’s working pretty well. All those benefits I just listed are definitely there. The keyboard feels really solid, and even though it uses the same Cherry brown keyswitches as the Kinesis, the keypress feels a little better to my hands. I’m not sure why that should be, unless the very solid body of the keyboard makes a noticeable difference to the keypress mechanism. It’s also possible I suppose that it’s just me unconsciously justifying the purchase.

It’s still not a perfect keyboard. Remapping keys requires flashing new firmware, which can only be done from Windows. The documentation explicitly tells you not to flash firmware from inside a virtual machine, and I haven’t yet been adventurous enough to flaunt those instructions, so for now, trying a new layout involves using a computer I don’t own. Fortunately, my work machine dual boots, so I can do it, but when a company explicitly markets how well their products work with Macs and Linux machines, I get really annoyed when the truth is, “ehh, we sort of lied about that.”

On the plus side, Truly Ergonomic provides a really nice layout tool on their web site. Where the Kinesis could be completely reprogrammed on the keyboard itself, doing could be a little frustrating as you had to keep track of what you were doing in your head. The Kinesis also has no great way to save a layout for future reference. In contrast, on the Truly Ergonomic site, you have a nice drag-and-drop interface for remapping keys, including all programmable layers (more on that in a bit). When you’re happy with a layout, you download a file and flash it using their provided firmware update utility. If it worked on other platforms, it would actually be a pretty decent system. But the Windows only requirement means that a fair number of people are going to buy a $250 keyboard with absolutely zero ability to customize it, despite it being marketed as being completely programmable.

In any case, you can also bookmark particular layouts and return back to them later. My current layout is available here.

And you will want to remap some keys. I’ve always remapped Caps Lock to a Control key on standard keyboards, and with the Enter key moved to the middle column, there’s a matching key on the right side that can be put to use as well. By default, the TEK puts Shift keys in those positions though, with Control keys on the row below where you’re probably used to Shift keys being. I’m sure that this makes some measure of sense, given the relative frequency of Shift versus Control for normal typing, but if you ever intend to type on another keyboard during the rest of your natural life, this decision will just kill you. The people at Truly Ergonomic advise giving it a chance, but frankly, just no.

Obviously there are other keys that move much further on the TEK. That center column is completely foreign to most people of course, but I think that’s part of the reason why it works. You can learn to type on the TEK, hitting the Enter key with your thumb as intended, and then go back to a laptop. You’ll mistype for a little while, but the motion required to hit the Enter key on the laptop is so different that your muscle memory won’t “take over”. The Shift key being almost where your fingers think it should be means that I never once managed to stop myself from instinctively hitting the wrong place. I gave it a couple of days, and then remapped the Shift and Control keys.

The other major issue I had was the position of the Quote and forward slash keys. On a normal keyboard, you hit the quotes with your right pinky. On the TEK, it’s still your right pinky, but it’s shifted down a row, where the forward slash/question mark key should be. I think this is probably a less severe problem than the shift keys, but I found that I really prefer having the slash there. If you’re a Unix user of any sort, you’ll hit the slash a lot in terminal sessions, and while you use quotes a lot as well, I found I greatly preferred having the quote in the “wrong place” than having the slash there. I’m not thrilled with the quote position now either – I don’t have a better idea, and I am getting used to it, but it still feels wrong at the moment.

Otherwise, I made fairly minor adjustments. Because the space bar is split into two separate keys, if you’re like me and always use the same hand for space, you have a second extremely convenient key to play with. I’ve remapped the left space bar to be Control in Linux and Command on the Mac. This is particularly handy on the Mac, because with the home row keys mapped to control, the only command keys are the keys on the extreme bottom right and left corners. That’s not too bad, but having one on the left thumb is really nice. (In Linux, I have those bottom corner keys mapped to Super keys, which I use for my window manager hotkeys.)

As a mentioned there, one nice feature of the TEK firmware is the ability to program separate layers. There is a dip switch on the back of the keyboard that switches between Windows/Linux and Mac layouts. During the first months, I’ve only had the one keyboard. I take it to work every day and plug it into my Linux box, and then home each evening and plug it into my iMac. I just flip the switch on the back to switch between the respective customized layouts. You can also map layers for Num Lock and Function keys, so all told, you can have six different layouts in the firmware.

I briefly experimented with making the left spacebar a Function key, and aggressively remapping the Function map to provide things like movement keys on the home row. I actually really liked that layout in Linux, but I found that the Mac really has to have that third modifier key in easier reach than the corners to make me happy, so I needed to put a Command key there instead. And then in the name of some degree of consistency, I put a Super key there in the Linux map. I think if I were using Linux exclusively, I might have stuck with a Function layout there.

Overall, I’m happy with the TEK. After about two months, I’m almost as fast as I was on the Kinesis for everyday typing. The position of the quote key will probably never be as natural, but for the most part, I’m able to comfortably type about as well as I ever could. And for programming, I feel quite a bit better due to the much better layout of the brackets, arrow keys, and other navigation keys. I’ve purchased a second one now so I can stop hauling this one back and forth to the office every day.

Update: I wrote the previous text 2-3 months ago. Over Christmas, I did pick up that second TEK and have continued to use them. On the whole, my predictions have been pretty accurate. I’ve acclimated pretty well, and the quote is still a little awkward, but perhaps not as much as I had feared. However, the second keyboard brought with it a new issue.

If you look around online, you can find a couple of people complaining about their TEK producing multiple characters when they press a key, and other similar problems. Truly Ergonomic themselves reference this tendency in a FAQ, with the advice that it takes a “few hundred” key presses to “break in” some mechanical keyboards. I’ve had many mechanical keyboards, and while I have seen this behavior pop up sporadically over the years, it’s always been a very rare occurrence. This second TEK though, just wow.

Out of the box, some of the keys worked. That is really the strongest possible way of phrasing the positives. I tried to use it for a while, tested several of the keys with a few hundred keypresses, and then followed their directions, unplugged the keyboard, and repeatedly pressed keys over the course of 45 minutes or so while watching the Doctor Who Christmas special. When this was done, I started actually measuring things.

My test was to type the same character 10 times in a row, press Enter, and repeat until I had 300 groups of 10 keypresses of a single key. On a perfectly functioning keyboard, I would then have 3000 instances of the letter, arranged in precisely 300 groups of 10 characters each. Below is the distribution I got from pressing the ‘B’ key.

Distribution of the B presses

The top graph shows for each of the 300 trials, the number of ‘B’s that were actually registered by the keyboard. The bottom shows a histogram of the same information. As you can see, in less than half of the 300 runs did I get the correct number of characters, and the actual number of characters registered ranged from 1 to 17. Over the course of the day, I repeated the test a few other times (not always with the same number of groups).

Distribution of the B presses, trial 2 Distribution of the B presses, trial 3

Other keys had problems as well. The ‘F’ key was fffflaky.

Distribution of the F presses

The ‘I’ key would often register multiple tiiiimes.

Distribution of the I presses

Similar with the ‘U’ key, and ‘N’ and ‘M’ weren’t great either.

Distribution of the U presses

Distribution of the M presses

Distribution of the N presses

I also tried a few tests of more “normal” typing than simply repeating keys. I typed “The quick brown fox jumps over the lazy dog.” 100 times. I corrected any typos that were my own fault, and left only those where the keyboard either failed to register a keypress or duplicated or inserted in the wrong order the keys I correctly pressed.

On my first trial, 26 of the 100 lines were recognized correctly. After continuing my “break-in” activities, a second test yielded 78 of 100 lines correct. However, if I then put the keyboard down and went to bed, the next day, the error rates would mostly revert to where they started. That was a common theme. You can see from several of the graphs above that often, the errors would start off very high, and then after an initial period of maybe 100 presses, it would settle down and start working more reliably. But always, the errors would return after a break.

Truly Ergonomic’s advice on the web is to first try flashing a firmware update, which they claim fixes the problem. In my experience, it did not completely fix the problem, but anecdotally, I think it might have helped a little bit. However, this is counteracted by the aforementioned problem that the only way to remap keys on the TEK is to flash updated firmware, and any time I flashed my new mapping, the errors were right back to normal. I can’t guarantee I wasn’t imagining the difference between the stock and modified firmware versions, but it felt like there was a slight difference. In any case, I can’t live with the stock layout, so another solution was needed nonetheless.

Because I live in Iceland, returning the keyboard would be inconvenient, and it did seem that things were improving, very slightly at least, so I decided to keep working at it to see if it would get better. It’s now been about a month, and it’s mostly working now. I’m still getting error rates on some keys of maybe 3-5%, but the number of affected keys is down to just one or two now, and I’m reasonably confident that it will continue to improve. If not I’ll have to deal with support and figure out how to return it.

I still think the TEK is worth trying if you’re in the market for a really good keyboard and don’t mind spending a fair amount of money on one. If you get one as bad as my second one, my advice would be to simply return it. My geographical situation makes that a little more of an undertaking, but had I been in the US for longer, I absolutely would have demanded a replacement product. My has finally started more or less working, but no one should need to put up with what I’ve had to deal with on a product costing as much as the TEK.

Update 2: Oh my, is it ever NOT worth trying. See my latest update.

Update 3: You can now fix the debouncing issue. The newest firmware reprogramming utility lets you change the debouncing setting, which makes the keyboard work for me finally.