/TwiddlerGeekHand

GeekHand Chord Map for the Twiddler3 one-hand chording keyboard

BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

GeekHand Twiddler Chord Map

The Geekhand Chords were inspired by the CoolHand Chord Map. The GeekHand Chords try to complete the goal of CoolHand by making the numeric mode chords more complete and natural (to a Geek) and with a few other tweaks.

This README is written for any Geek, whether they are an experienced Twiddler user or they’ve never seen a Twiddler, so it is a little bit verbose.

TL;DR here are the files you need:

WARNING: The arrow symbols in the pdf are NOT showing up when I look at the PDF in GitHub. You will need to download the PDF and use proper PDF viewer, or maybe not: When I use the GitHub download button in Firefox, Firefox correcty renders the PDF!

I’ve only produced GeekHand for left-hand Twiddler users; if you use your Twiddler with your right hand, you may want to mirror some or all of these settings. I would be happy to host the result and credit you if you send me a pull request!

Introducing the Twiddler

The Twiddler is a one-hand chording keyboard. See the link for pictures and the button and key layout. On the front are three buttons above 12 keys arranged in three columns, Left, Middle and Right. At the top is a pointer stick which acts like moving a mouse along with modifier keys for Shift, Control, Alt and Numeric. The Thumb of the hand holding the Twiddler works the pointer stick and the modifier keys. The user presses the 12 main keys with the fingers of the hand holding the Twiddler as they curl around it.

The three buttons at the top of the Left, Middle and Right columns at the front are new. They can be used like the Left, Middle and Right buttons of a traditional mouse. Although the Twiddler was originally designed to be worked entirely with one hand, I find it more convenient to use these “mouse buttons” with my other hand, although I can stretch my index finger to reach them when my other hand is busy.

Some characters can be generated by pressing one key, others require pressing two, three or four keys. The user presses the required keys with their four fingers. The selected character is generated when the keys are released.

The Twiddler keys have big clear letters written on them:

SPEA<– index finger
DELFB<– middle finger
BSGC<– ring finger
ENTHD<– pinky (little finger)

showing the characters which can be generated by a single key press of the appropriate finger of the hand holding the Twiddler.

So how do we get all of the other characters of a regular keyboard? Careful examination of the Twiddler keys will show more letters written on them at the bottom, in tiny colored text. The colors tell you which combination of keys (chords) are required to generate the other characters, for example the letter n will be generated with two keys: the upper left button with the index finger and the middle bottom with the pinky.

Alternative Chord Maps

It turns out that the assignments of Chords (key combinations) to characters if far from optimal. Some of the characters which are most common in English are more awkward to type than more common characters. The chords for numbers, special characters, function keys, etc. are not very mnemonic. We can do better, because the Twiddler is programmable!

A number of more optimal Chord Maps have been designed by members of the Twiddler user community.

Most of the alternative Chord Maps have these two goals:

  • optimize entering the most common characters
    • ETAION SHRDLU are the 12 most common letters in English
  • optimize entering frequently occurring sequences
    • combinations like “th”, “he”, etc. in English

The GeekHand Chord Map adds two more goals:

  • make the numbers, function keys and special characters mnemonic
  • enable anything possible with a standard US ASCII PC keyboard

There are two common ways to document Chord Maps:

  1. Lists of chord to character mappings
  2. Pictures cleverly overlapping multiple chords

Chord Map Listings

There’s a fairly standard format for listing Chord to Character Mappings, based on this table:

Thumb Modifier(s)Index Finger PositionMiddle Finger PositionRing Finger PositionPinky Position

Thumb Possibilities

  • O = None, N = Numeric, A = Alt, C = Control, S = Shift
  • with practice it’s possible to overlap adjacent modifier keys to produce
    • NA = Numeric + Alt, AC = Alt + Control, CS = Control + Shift
    • other combinations of modifiers need help from the other hand

Finger possibilities

  • L = Left Column Key, M = Middle Column Key, R = Right Column Key
  • or O if that finger is not in use

Examples from the Geekhand List:

  • O OORO a
  • O RRRO b
  • O ROOR c
  • O OMMO d
  • N MMMM 0
  • N MOOO 1
  • N OMOO 2
  • N MMOO 3

The full geekhand list is in the file geekhand-list.org

Maybe OK for reference, but tedious for learning!

Chord Map Pictures

We can show Chord Mappings pictorialy to get a quicker understanding of a particular design.

Here is a PDF of the GeekHand Pictorial Reference

Hmm, there seem to be some conventions in the pictures, let’s explain:

Here are all of the single key Chords in GeekHand:

oei<– index finger
rtn<– middle finger
sha<– ring finger
spnlbs<– pinky

Here are some two-finger chords in Geekhand:

wmc---klj<– index finger
---udf---<– middle finger
---udfklj<– ring finger
wmc------<– pinky

Here are some three-finger chords in Geekhand:

yxb---<– index finger
yxbvgz<– middle finger
yxbvgz<– ring finger
---vgz<– pinky

A few conventions are used in the pictorials

  • The circled + sign means “required for either”
  • A trailing _ means “plus a space”
-( + )--( + )-<– index finger
---;_-,_<– middle finger
------<– ring finger
p-q---<– pinky

so these two pictures mean:

ModifiersFinger PositionsCharacter(s)
OM - - Lp
OM - - Rq
OM L - -; SPACE
OM R - -, SPACE
  • The dagger symbol means “no character here yet”
  • Arrow symbols indicate vector keys
  • Double arrow symbols indicate home/end, page-up and page-down

A circumflex on top of a character means it’s a control character; I’ve inherited a few of these from Cool Hand and might change them.

See if you can “see” the design now just by looking at a The PDF

Hmm, what’s going on with the Numeric Modifier?

Geek Hand with Numeric Modifier Key

Numbers and function keys are written binary-style:

  • Index finger = 1
  • Middle finger = 2
  • Ring finger = 4
  • Pinky = 8

You combine them to get other numbers:

  • Index + Middle = 3
  • Middle + Ring = 6
  • Index + Middle + Ring = 7
  • and so on up to Index + Ring + Pinky = 11
  • unfortunately, 12 through 15 would conflict with other Chords
  • like Index + Ring + Middle + Pinky = 0

The middle column is used for the numbers 1-11 and 0

The left column is used for the function keys F1 - F12

The other chords are used for the other characters appearing on the numeric pad of a standard PC keyboard

Third time is the charm. Does everything on The PDF make sense now?

When you get an account at the Twiddler website you can use the Twiddler Tuner to upgrade and/or alter your Twiddler’s programming and the Twiddler Tutor to help you learn your chords, although I learned them by writing a script to generate lists of English words which gradually incorporated more letters.

If you want to try out the GeekHand ChordMap, you can use the twiddler.cfg file here according to the instructions on the Twidder website. Be sure and backup your existing twidder.cfg file before you install another!