Kinglet is a stenotype system in which chords are used to directly spell out words instead of relying on phonetics, mnemonics, or word lookup tables. With Kinglet, you type out the exact characters you want to see, typically much faster than you would with QWERTY.
An exact speed comparison with Plover would be difficult because the two systems treat words differently. Plover supports briefs that can match words of any size, while Kinglet requires spelling out each word individually. However, on average, and taking account of word frequency statistics for the English language, both systems output roughly one word per stroke. Because of that, they should end up being approximately the same speed, with Plover being faster for certain things (legal and medical transcriptions), and Kinglet being faster for others (names and other unusual strings of text).
One advantage that Kinglet has over traditional stenotype systems is the relative ease of learning. To get good at Plover, you need to memorize hundreds of briefs, prefix, and suffix strokes. With Kinglet, each finger-pair has a simple chart of 48 chords (144 altogether), a few rules regarding fingering and chord ordering, and that's it.
Kinglet is also useful as a programmer's stenotype system because it produces exactly the output you want. Traditional steno systems frequently back up and replace existing output with something else, which makes it hard to give commands to tools like vim and emacs.
The difficulty with Kinglet - which traditional steno systems don't suffer from - is the fingering. Kinglet's chords are more complex than Plover's, and the fingers need to cultivate a higher degree of dexterity and accuracy in order to type fast and avoid misstrokes. With Plover, the bulk of one's study involves memorization. With Kinglet, it involves practicing fingering techniques.
I designed Kinglet with help and advice from the Plover community; and Benoit Pierre has implemented a working version, available at github. It should work on either Linux or Windows. A Windows build is available at https://drive.google.com/file/d/0B9Je8TDYCh1xSVRjVmQ0RUF0ejA. Please send feedback and bug reports to the Plover mailing list, at firstname.lastname@example.org.
To retrieve and run the Kinglet code under Linux, give the following commands:
You may need to install any missing python dependencies that cause
You'll also need an n-key rollover keyboard, of the same sort that work with Plover.
With Kinglet, the QWERTY aspect of the keyboard still works - if you hit a single key in Kinglet, you'll get the output of that key, just as you'd get on a normal keyboard. So there's no need to switch modes the way there is in Plover. In fact, Kinglet relies on the QWERTY behavior for numbers and some punctuation. This isn't so much worse than traditional steno systems, which require spending a whole stroke on each punctuation mark.
When typing chords in Kinglet, each pair of fingers - which I'll get specific about in a moment - can type a single letter of the alphabet, certain two-letter combinations, a selection of punctuation, the caps shift, or a space. So, with four pairs of fingers and one pair of thumbs, you can type a bit more than five characters per stroke, on average.
Kinglet uses the following keys on the QWERTY keyboard:
Until Kinglet has a suitable hardware keyboard, try keeping the keyboard at a 20ᴼ angle to keep the chord fingering more vertical. As with QWERTY and Plover, each finger has a home position. Keep them near their home positions so that typing becomes more a question of muscle memory than of feeling around for the right key:
Kinglet theory splits the keyboard down into five sets of keys, where each set maps to an assigned finger-pair. As with Plover, the chords on the left produce the first output, and the chords on the right produce the last.
When just starting out, if you find it easier, you can leave out the third and little fingers of each hand, and just stroke chords with the rest. That way for any short chords that you want to type (and there will be plenty), you can use those fingers and not the smaller, weaker ones.
Kinglet does have an equivalent string of characters that corresponds with Plover's concept of 'steno order', but you typically won't need to know it. The string is constructed from Kinglet's finger-pair order, like this: 1QA2WS3ED4RF5TG[ ]XCVBNM,6YH7UJ8IK9OL0P;. Unlike Plover, there's no need for you to memorize it. The only reason to know the text string itself is if you want to write down Kinglet strokes for tutorials and whatnot.
The nine-key alphabet is a set of chords used by the third and little fingers on both hands to produce any single letter, space, a few common letter-pairs, and the most common punctuation marks (shown here inside square braces).
The nine-key alphabet for the left hand:
The nine-key alphabet for the right hand is the mirror image of the chords for the left:
The six-key alphabet is the set of chords for the first and second fingers on either hand:
The six-key alphabet for the right hand is a mirror image of the chords for the left:
The thumbs are given their own set of chords in Kinglet, partly because they're not able to produce all the chords in the six-key alphabet, and partly because different chords are easier for the thumbs than for the fingers, and the most-used output characters should always be assigned to the easiest chords:
Notice that there is no empty chord for any finger-pair. This is because if a finger-pair does not strike a chord, then that pair produces no output in that stroke, and those two fingers are simply ignored by Kinglet.
The space character is produced by the using the spacebar. When the thumbs use it by itself, it produces just a space. When the thumbs add the spacebar to any other chord, a space character precedes the output of that chord.
So to type 'e', the thumbs would use V. But to type ' e' (a space with an "e" after it), the thumbs would use [ ]V.
Since thumb positioning is obvious, let's address only the rest of the fingers. These rules take account of the actual key positions on the keyboard, not the abstract key columns shown in the chord charts:
Here are the fingering rules:
The behavior of the keys is slightly different when typing QWERTY:
Sometimes you'll come to the end of a thought, and the final output will only require a stroke that has a single key in it. This produces a conflict because Kinglet has to assume that any single key strokes are intended to be interpreted as QWERTY typing. For example, if you try to stroke 'stripe' as W35CB7U9/3, you'll produce 'strip3' because Kinglet interprets the 3 as a single keystroke on the QWERTY layout.
There are several ways to deal with this:
The reason the first option is preferable is because it maximizes your typing speed. All the other options involve rethinking your chord selection. Only the first option lets you get the biggest output from a stroke, without having to change what that stroke was going to be.
Note that some examples in this text have a termination conflict. The assumption is that you'll resolve them using one of the techniques described above. Termination conflicts are not things to be avoided; they're just part of typing.
For all numbers, and for any punctuation not included in the six-key alphabet, use QWERTY. With Kinglet, you always have the option of using the QWERTY keyboard without chords, to type the single characters printed on each key.
The above chord chart identifies one chord as "cap". It behaves as a cross between SHIFT and CAPSLOCK.
Here's a Perl script I wrote (see the attachment below), that will take a bit of text as input, and produce a sequence of Kinglet strokes as output. This is how I created the examples for this document. The script also tells how many characters per stroke and strokes per word you're getting. Kinglet needs to average at most one stroke per word, or at least 6.1 characters per stroke, in order to be competitive with traditional steno.
Here are some sample uses. To get 'hello':
To get 'where have all the flowers gone?'
To indicate the "cap" chord, just use capital letters as you would normally. So to get 'I prefer 'ck' for Zack, and 'ch' for Zachary. Is that weird?', you'd do this:
You can get 'it's friggin' NUTSO dude!' like this:
You can get 'Oblique anastomosis effected between spatulated upper ureter and renal pelvis.' like this:
Or try sonnet #43: