- Ergonomics is important
- What does Plover do?
- Now, on to part 2…
In this article I explain my switch to typing with Plover, an open-source stenography program, to help with ergonomics and incidentally my typing speed. This resulted in me getting a cool keyboard: the Ergodox EZ.
Next, I detail my journey of setting up the Ergodox EZ for use with Plover. The reader may find this interesting if they like hacking on keyboard firmware, or useful if they want to set up their own Ergodox EZ with Plover.
This post is split up into two parts. The first part (below) details my motivations, the stenography system, and the Ergodox EZ itself. Part 2 details the process of installing and modifying the firmware to be useful for stenography.
Ergonomics is important
One night, during my final semester at university, I was coding a class project. Lately, my fingers had been aching and my forearms had been twinging, which is a sure sign that one should look into the ergonomics of their keyboarding. But I was in the flow that night and I did not stop coding.
That night, I was beset with more severe forearm pain, to the point that I had trouble falling asleep. I had to acknowledge my problem, and scheduled an appointment with an occupational therapist. They recommended some stretches, which I took into consideration, but I did not imagine that they would be sufficient to prevent a future repetitive-stress injury. Consequently, I took matters into my own hands.
What is stenography, and how is it ergonomic?
I had heard about an open-source stenography program called “Plover” a few times in the past on Hacker News. Stenography refers to the practice of transcribing in shorthand. Court reporters can use stenography machines to transcribe the court proceedings in real-time.
I for one am a reasonably accomplished typist, at 120 words per minute with Dvorak. But human speech is about 180 words per minute, so I would be left in the dust fairly quickly. How do court reporters do it?
Their stenography system is designed so that they press multiple keys at once to stroke an entire syllable or word. They have special keyboards (called “stenotype machines”) that are designed to accommodate English phonetic patterns.
Not only are they faster than conventional typists, but they type on the order of five times fewer keystrokes as well, reducing muscle strain dramatically. The downsides are that one requires specialized hardware (ameliorated by Plover, as I discuss below) and must invest the time to learn this system. Mirabai Knight, founder of the Open Steno Project, has a comprehensive list of reasons why you might want to use Plover.
What does Plover do?
Conventional stenographers use a specialized stenography machine for their transcription. The lowest-end of these machines start at around $500 — in used condition, no less — and they also require proprietary steno software.
Plover is a program that…
Interfaces with these steno machines directly by implementing their protocols, cutting out the proprietary software.
Allows an individual to use their keyboard as a steno machine instead. One just positions their hands in a certain way and pretends that they are typing on a steno keyboard.
Types into any window. Traditional steno software has you type into a buffer window and then paste it into an application later. With Plover, you can write documents, emails, and chat messages directly.
The tragic keyboard situation
If one is to use their keyboard as a steno machine, it must have N-key rollover (NKRO), which most do not. With a reasonably nice mechanical keyboard, one can press no more than six keys or so and have them all register (which we would call 6-key rollover, or 6KRO). Most commodity keyboards support far fewer simultaneous presses.
The stenographer often presses more than 10 keys simultaneously, so these commodity keyboards simply can’t be used effectively for stenography. Therefore we need a keyboard that can support any number of simultaneous presses (“N-key”, with N meaning it supports any number), or one with a high value of N (there are 22 keys on a steno keyboard, so a number around there would be good).
Even many high-end keyboards do not support an arbitrary number of keys at once due to manufacturers not implementing a more complex USB profile. One can opt to use a PS/2 cable (which my laptop doesn’t have a port for), or get a keyboard with firmware that does support NKRO.
So how does one find a compatible keyboard?
One will have to check for “NKRO over USB” in the product description if they intend to use USB; “NKRO” by itself usually means over PS/2. There are several known-to-work NKRO options, starting from about $40. At the extreme opposite end of the price spectrum, I ordered my Ergodox EZ for $325.
The Ergodox EZ is a split keyboard with thumb clusters on each half instead of a single space bar. There are two long, vertical keys in each cluster. If one looks at the stenographer’s keyboard layout, they will notice that it has a set of four vowel keys — two for each thumb. So if one were to set up the Ergodox EZ appropriately, they would have an almost-steno-machine that doubles as a regular keyboard.
Before you buy
If you’re going to buy an Ergodox EZ, here’s a couple of things that I discovered only after joining the Plover chat room:
The blank keycap and non-blank keycap versions are actually shaped differently! The blank version is more arched, which could potentially cause problems trying to hit adjacent keys at once, although I haven’t tried it.
The keyswitches control how much force you need to use to press a key. Steno machines typically require on the order of 15g to actuate. I got the Gateron Brown switches, which are recommended as general-purpose switches, but they have a 55g actuation force. (Stenography is anything but general-purpose.)
The lightest switches available for the Ergodox EZ are the Gateron Whites, at 35g. If you intend to steno a lot on the Ergodox EZ (that is, you don’t intend to get a student or professional steno machine after using the Ergodox EZ as a learning device), then you probably ought to get those instead.
Now, on to part 2…
…in which I get frustrated at the sorry state of firmware and build my own. Click here for part 2.