An Affray with RSI
vim osx review office

Problems

Almost everyone I know who spends an appreciable amount of time working on computers eventually develops repetitive stress injuries (RSI). I’ve been fortunate to never have any issues despite using some of the least ergonomic input devices money can buy. I’ve never given much thought to keyboards or mice and I’ve been blissfully using whatever stock input devices came with my computer. For the last decade I’ve been using Apple MacBook Pro keyboards and trackpads, which look nice, but in retrospect, are probably not the best choice for long-term use. A few weeks ago I started to notice some acute ulnar-sided wrist pain in my right hand. It didn’t take me long to pinpoint the primary source of the aggravation to the delete key. I invoke delete with my ring finger by turning my hand outward at the wrist to reach the key without lifting my palm off of the computer. Repeatedly placing the wrist at this angle is a well-known source of RSI.

Wrist pain is a serious issue for someone who makes their living using a keyboard. I immediately tried to fix the problem by remap the delete key (as I do with caps lock), but the austere Apple keyboard makes this difficult even with the excellent KeyRemap4MacBook. I started to research other solutions to correct my discomfort before it could become a bigger issue. A common recommendation is to switch from the standard QWERTY keyboard layout to Dvorak or Colemak, which supposedly provides more ergonomic key mappings. Unfortunately, neither layout changes the position of the delete key and my brief experience with both layouts was decidedly Vim unfriendly.

One of the best resources I’ve found on RSI was from Matt Might. He claimed that switching to a high-end keyboard did more than anything else to correct his problems. I’ve always been critical of high-end mechanical keyboards and I wasn’t necessarily convinced that switching keyboards would solve my problem because the position of the delete key is fairly standard on most keyboards. Matt’s recommendation was a curious beast called the Kinesis Advantage with a non-canonical delete key position:

What attracted me to the Kinesis was the unconventional remapping of modifier keys to the thumbs. Intuitively, this layout makes a lot of sense. Thumbs are big, powerful, and dexterous; why ostracize them to a single lonely space bar? I decided to purchase an Advantage and see if would eliminate my wrist pain.

Kinesis Advantage

I’m not going to review the Kinesis Advantage in-depth1, but I’d like to comment on a few of my observations and experiences. Out of the box, the keyboard is setup for transcription on a Windows machine not programming on a Mac or Linux box (my intended use case). The saving grace of the Advantage is that it’s entirely customizable. Any key can essentially be mapped to any other key. As you would expect with any high-end keyboard, the Advantage comes with Cherry switches, several extra keys, and the ability to create macros. Some models even ship with a footswitch.

I prefer to keep macros in TextExpander for system-wide use and code snippets in neocomplcache or CodeBox, but I have found some use cases for the keyboard macros as well. For example, I type hundreds of parentheses each day and it is inefficient to type Shift + 0/9 for a parenthesis. With this keyboard, I’ve remap parentheses to two spare keys, which makes typing them very fast since only one key needs to be pressed for a single parenthesis. I also use keyboard macros for a few other commands such as the -> and <- assignment operators in R and Haskell. For the number of these commands I type each day, keyboard macros are a huge productivity win.

None of the above features are unique to the Advantage. Most high-end keyboards have these features. What makes the Advantage unique is its shape. This keyboard requires very good touch typing because it’s difficult to see all the keys in the keyboard buckets. For three days, it felt like I was learning to type again. I could only type at about 15 WPM to start. However, after about 2 weeks I was faster with the Advantage than with the MacBook Pro keyboard on typing.io. Part of the enhanced speed comes from the concave shape of the keyboard buckets, which put the keys closer together and decreases finger travel distance. I also found that having the keys aligned in vertical columns rather than staggered as on the MacBook Pro keyboard improved my typing speed.

Using the thumbs for triggering modifier keys immediately feels correct and is incredibly efficient. This setup eliminates the need to contort the fingers into strange positions, which also improves speed. The downside of a keyboard with two buckets and left/right thumb keys is that it is very difficult to type with one hand while on the phone or with the mouse in one hand.

Keyboard Optimizations

Using Vim with this keyboard is really nice. I was initially worried that Vim would be especially awkward with the unconventional modifier key placement, but I was surprised how much faster and more efficient I became. Here are the main remaps I use for Vim (original key -> my mapping):

  • End -> Escape
  • Delete -> Control
  • Caps Lock -> Control
  • Page Down -> Tab

The more difficult task was optimizing the keyboard layout for OS X. Many of the conventional OS X shortcuts involve some combination of control, option, and/or the command key. These keys can be awkward on the Advantage with the default layout because one thumb must sometimes press more than one key. For example, the shortcut to search in Safari is ⌘ + ⌥ + f, which is invoked by pressing the command and option keys with the thumb while simultaneously pressing the f key with another finger. This mapping is not ideal, but I’ve found mapping the control key to option on the right thumb circumvents most of the awkwardness.

Conclusion

One day after I switching to this keyboard all of my wrist pain went away. The Advantage corrected my discomfort and increased my typing speed, so I couldn’t ask for anything more from a keyboard. Surprisingly, I have no difficulties switching back and forth from the standard Mac keyboard and the Advantage, despite there extremely different layouts. If you have any sort RSI, I recommend trying this keyboard. If you do not have any RSI issues the Advantage may make you a faster typist and prevent future issues with RSI.

Of all the research I’ve done on RSI, I think Jeff Atwood may have the single most useful piece of advice:

Vary your working position. It’s called repetitive stress injury for a reason. Try changing things up on a regular basis.


  1. Michael Foord has a nice programmer-centric review of the Kinesis Advantage. ↩