Skip to content

rich-murphey/twidor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twidor - teaches typing on the Twiddler

Twidor is a desktop application that teaches typing on the Twiddler, a chording keyboard shown on the right. A chord is formed by pressing several keys together, like playing a "chord" on a piano.

Getting Started

See How to Install for links to downloads for Windows, Linux and OSX and others. See How to Build if you wish to modify Twidor's code.

When you start Twidor, it will show a visual keyboard layout beside the first typing lesson. Labels in the layout show the characters sent by each key on the Twiddler.

Four thumb keys are on top. Finger keys are below, in four rows from top to bottom, corresponding to index, middle, ring and pinky fingers. Columns with green, blue and red borders match colors on the Twiddler's physical keys.

Red highlights identify the next letter of the lesson, "e", and the key that send the letter "e".

Text entered by the user is shown below. Incorrect letters appear darker.

Hit ENTER at the end of a line to go to the next sentence. The words per minute (WPM) and average error rate (AER) are updated when ENTER is pressed.

Using Twidor

The following sections discuss various menu options and user interface features of Twidor. As discussed in the section, Training Methodology, the keyboard layout and highlighting may work best as temporariy aids to help users initially learn the leyboard layout. Studies suggest that, as soon as is practical, typing speed may progress faster without these aids.

Highlighting Chords

By default, Twidor will highlight chords. A "chord" is two or more keys pressed at the same time, like playing a "chord" on a piano.

In the lesson shown on the right, the letter "m" is formed by the "SP" (space) and "g" keys.

View | Show chords

Twidor will optionally show a map of the two-key chords, when the menu item View | Show chords is selected. This expands the keyboard layout to display additional sections of keys as shown on the right.

This way of depicting 2-key chords follows a popular convention. In each smaller grid, the top row shows a bullet (•) key which is the "anchor". The 2-key chords are composed of the the anchor key in the top row plus one of the keys below. Each key label below shows the letter that the chord sends.

Let's consider typing the letter "m".

First we locate "m" in they layout. "m" is found in a small grid on the top left. This grid is enlarged in the figure below.

The first key of the cord is the anchor, labeled with the bullet (•) in the top row. This "anchor" key is shared by all of the 2-key chords in the grid. Here, the anchor is on the index finger, left column. On the Twiddler, this physical key is labeled "SP".

The small box labeled "m" shows the location of the second key of the chord, relative to the small grid: ring finger, middle column. On the Twiddler, this physical key is labeled "g".

Here are some of the two-key chords on the left column of keys:

  • DEL + SP, index and middle fingers, sends "o".
  • BS + SP, index and ring fingers, sends "p".
  • NL + SP, index and pinky fingers, sends "q".

View | Show multiple character chords

A chord on the Twiddler can send several letters such as "ed" or "ing". These are called multiple character chords (MCCs).

By default, Twidor does not highlight multiple character chords, but rather only highlights single letters as shown above in "Getting Started". This default is intended to help users who are just beginning. [Lyons04a, 04b] has shown that learning is faster when the incremental amount of learning material smaller.

When View | Show multiple character chords is selected, Twidor highlights MCCs.

For example, given the text "ed", shown on the right, Twidor will highlight the chord that sends "ed", rather than just "e". Note that this is different from the layout shown above in "Getting Started", where the option was not enabled and only "e" is highlighted.

If you wish to learn all available chords, select this option. Twidor will show red highlighted keys for the longest matching chord. For example, given the text, "the", Twidor will highlight the chord that sends "the", rather than "th" or "t".

When you enable both "show chords" and "show multiple character chords", it further expands the keyboard layout to include labels for multiple character 2-key chords.

Note that this option affects only the red highlighted "hints". Regardless of this setting, the Twiddler can send multiple character chords, and Twidor will accept MCCs as input.

Keymaps | Backspice, TabSpace, Typemax

By default, Twidor loads the the default keymap that comes factory installed on a new Twiddler. The Keymaps menu selects alternate keymap layouts.

There are a number of keymaps that have become popular over the years since the Twiddler was first introduced. A few of these are bundled with Twidor. Users may select the Backspice, Default, TabSpace, or Typemax layouts under Keymaps.

https://github.com/Griatch/twiddler-configs has visual keymaps and cheat sheets for popular Twiddler keyboard layouts.

File | Load Keymap

Arbitrary keymap files can be loaded by the user. To load a custom keymap, export it from the the Twiddler Tuner and load it as follows:

  • open https://twiddler.tekgear.com/tuner/edit.xhtml,
  • import a keymap.cfg if not already present there.
  • select 'Edit Configuration' for a given configuration file,
  • with the configuration file open, select Export, and then CSV.
  • download the CSV file.
  • In Twidor, select File | Load Keymap and select the CSV file.

Lessons | Lesson 1..9

Menu items Lessons | Lession 1..7 teach subsets of the alphabet, varying from smaller to larger subsets, starting with the letters a–h in lesson 1. The set of phrases varies, by random selection, each time a lessons loaded.

Lessons 8 and 9, borrowed from GNU Typist, provide random exerpts from longer texts with capitalization, numbers and special characters.

Overview of Menus

Menu options include:

  • File | Load Keymap imports a CSV keymap exported by the Twiddler Tuner.
  • File | Load Lesson imports training text from a file.
  • View | Show.. toggles show/hide key labels, chords and MCCs, and flips right-to-left orientation.
  • Lessons | Lesson 1..9 loads the selected lesson text.
  • Keymaps | Backspace, etc. loads certain popular keymaps: Backspice, Default, TabSpace, or Typemax.
  • Help | About shows the Twidor version number.

Limitations

  • Keymap labels are shortened to the first three letters, which is currently sufficient for all of the popular keymaps.
  • The visual keymap does not show the mouse buttons.
  • Lessons 1-7 are tailored to the Default keymap. Specifically, lesson one uses only single-key chords of the Default keymap. Other keymaps will require chords in lesson one.
  • Twidor silently ignores input characters that are not in the current keymap.

How to Install

Download the releases from here:

https://github.com/rich-murphey/twidor/releases

On windows, download and run the Twidor-setup.exe installer.

On Debian or Ubuntu, download the twidor-x.x.deb and install it. For example:

wget https://github.com/rich-murphey/twidor/releases/download/v2.8/twidor-2.8.deb
dpkg -i twidor-2.8.deb
twidor

On other Linux, OSX, and Unix variants, install openjdk-8-jre, download Twidor.jar and invoke it, using, for example:

 wget https://github.com/rich-murphey/twidor/releases/download/v2.8/Twidor.jar
 java -jar Twidor.jar

Feedback and reports of issues are welcome in the github issue tracker.

How to Build

To compile and build Twidor.jar and the Debian package (.deb), one may use:

sudo apt install git openjdk-8-jdk ant make fakeroot
git clone https://github.com/rich-murphey/twidor.git
cd twidor
make

One option for debugging Twidor is to use Eclipse. In Eclipse, select File | Open | New Project, then select "Java Project from Existing Ant Buildfile", click Next, click Browse, select file twidor/build.xml, and click Finish.

Training Methodology

Regarding the amount of time required for training, [Lyons 2004a] states, "faster typists would reach 60 WPM, the rate of our expert, after 10,000 phrases (approximately 80 sessions or 27 hours) while the slower typists could achieve 45 WPM." Twidor is the tool that this group of researchers developed to collect data for their studies of learning and perferformance.

Lyons studied the effect of a user's inability to see the Twiddler keyboard ("blind typing"), and found that it correlates with a statistically significant improvement in "typing rate or reduced error rate" [Lyons04a, 369-370]. He suggests that users can process the training information faster when not required to process the additional visual information of watching the physical keyboard. These results suggest that performance improves moderately when the physical keyboard is not visible to the user.

Lyons also states, "We examined how our participants learned to chord, showing most of the speed increase associated with learning occurs during the in-air time interval." In-air refers to the time between releasing one key and pressing the next. This suggests that the user's efforts to absorb and recall key assignment information during the transition are a key to speed increases.

Lyons found that the "highlighting-off group’s effort to find and remember keys and key combinations improved their learning. Twidor can show a keyboard layout and can highlight key labels. However, these studies show that, while the visual keyboard and highlighting keys may help users initially, disabling them can accelerate progress toward expert typing rates.

Other Relevant Projects

The original Twidor source code and documentation at Georgia Tech.

Twidlit is a a tutor and companion for The Twiddler keyboard. It is intended to assist in all aspects of learning to twiddle and developing a personal chord mapping. Like Twidor, Twidlit is written in Java.

twiddler_layout is a command line tool for editing Twiddler keyboard layouts, also written in Java.

The Backspice keymap by Alex Bravo.

The TabSpace 3 layout discusses a range of layout issues, including n-gram occurrence frequency and ranking the dexterity required for various multi-key chords.

The Typemax layout maximizes typing speed by emphasizing efficient single character chord transitions (stride). The Typemax github repo has discussions of Basic Layout Design, including issues of stride and n-gram clustering, stutter, separation of vowels and consonants on separate fingers, using mouse buttons as letter keys, and many other design issues.

The Twiddler 3 Google Group has links to various resources.

Grit on Putty is a "an engineer's typing tutor" that runs in the browser and can be served as strictly static files, with code in github.

References

[Clawson05] The Impacts of Limited Visual Feedback on Mobile Text Entry for the Twiddler and Mini-QWERTY Keyboards. James Clawson, Kent Lyons, Thad Starner, and Edward Clarkson. Proceedings of ISWC 2005. Osaka, Japan. November 2005. full text.

[Lyons04a] Expert Chording Text Entry on the Twiddler One-Handed Keyboard, Kent Lyons, Thad Starner, Daniel Plaisted, James Fusia, Amanda Lyons, Aaron Drew, E. W. Looney, 2012 16th International Symposium on Wearable Computers (2004) Arlington, Virginia, Oct. 31, 2004 to Nov. 3, 2004. full text.

[Lyons04b] Twiddler Typing: One-Handed Chording Text Entry for Mobile Phones, Kent Lyons, Thad Starner, Daniel Plaisted, James Fusia, Amanda Lyons, Aaron Drew, E. W. Looney. Proceeding CHI '04 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, Pages 671-678. full text

[Lyons06a] Experimental Evaluations of the Twiddler One-Handed Chording Mobile Keyboard. Kent Lyons, Brian Gane, and Thad Starner. Journal Human-Computer Interaction archive Volume 21 Issue 4, November 2006 Pages 343-392. full text

[Lyons06b] Mobile Text Entry, Kent Loyons, Lecture slides.

Acknowledgements

James Gibson Fusia is the original author of Twidor.

Evan Dower made the source code available on github.

Rich Murphey wrote further enhancements including GUI layout, 1- and 2-key chord display, support for macros, alternate keymaps, additional lessons, and various GUI options. He released Debian and windows installers, added build files and this documentation.

Simon Baldwin wrote lessons 8 and 9 as part of GNU Typist, which are redistributed as permitted by the GPL.

About

Twidor - a desktop application that teaches typing on the Twiddler

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 97.1%
  • HTML 1.4%
  • Shell 1.3%
  • Makefile 0.2%