Dasher Keyboard User Guide
Dasher Keyboard User Guide
The first part of this manual assumes you are steering Dasher with a mouse, in
order to write in English. Dasher also works in over a hundred other languages.
Please see the Dasher Special Needs Guide for information about alternatives to
mouse-steering.
1 Dasher
Dasher is an information-efficient text-entry interface, driven by natural continuous pointing
gestures. Dasher is a competitive text-entry system wherever a full-size keyboard cannot be
used - for example,
• on a palmtop computer;
• on a wearable computer;
The eyetracking version of Dasher allows an experienced user to write text as fast as normal
handwriting - 29 words per minute; using a mouse, experienced users can write at 39 words per
minute.
Dasher can be used to write efficiently in any language.
Dasher is fast and fun to learn. (See what users round the world say, in section 8.)
Dasher is free software. It’s distributed under the same license as GNU/Linux, the GPL.
Dasher is a zooming interface. You point where you want to go, and the display zooms in
wherever you point. The world into which you are zooming is painted with letters, so that any
point you zoom in on corresponds to a piece of text. The more you zoom in, the longer the
piece of text you have written. You choose what you write by choosing where to zoom.
To make the interface efficient, we use the predictions of a language model to determine how
much of the world is devoted to each piece of text. Probable pieces of text are given more space,
so they are quick and easy to select. Improbable pieces of text (for example, text with spelling
mistakes) are given less space, so they are harder to write. The language model learns all the
time: if you use a novel word once, it is easier to write next time.
A big advantage of Dasher over other predictive text-entry interfaces that offer word-completions
to the user is that it is mode-free: the user does not need to switch from a writing mode to an
“accept-model-predictions” mode.
Another advantage is that it is easy to train the model on any writing style: simply load up
an example file, then write away!
It’s quite hard to convey in words what Dasher looks like, so please visit [Link]
to see movies.
First, they walk into the “a” section of the library. There, they are confronted by books
starting “aa”, “ab”, “ac”, . . . “az” [Picture (ii)]. Looking more closely at the “al” section, they
can find books starting “ala”, “alb”, . . . “alz” [Picture (iii)].
By looking ever more closely at the shelf, the writer can find the book containing the text he
wishes to write. Thus writing can be described as zooming in on an alphabetical library,
steering as you go.
This is exactly how Dasher works, except for one crucial point: we alter the SIZE of the
shelf space devoted to each book in proportion to the probability of the corresponding text. For
example, not very many books start with an “x”, so we devote less space to “x. . . ” books, and
more to the more plausible books, thus making it easier to find books that contain probable
text.
Here is the corresponding sequence of pictures of the library in Dasher. (The character ” ”
denotes the space character.)
(i) (ii) (iii)
Dasher can be trained on examples of any writing style, and it learns all the time, picking
up your personal turns of phrase.
The image below shows the state of the Dasher interface while the user is writing the word
‘objection’; alternative words that could easily be written at this point include ‘objective’,
‘objects ’, and ‘object oriented’.
If you find Dasher hard to imagine based on these static pictures, please take a look at the
movies on [Link].
1.4 Example
Imagine you want to write ‘I once had a whim’. You write ‘I once ha...’ and the Dasher
display looks like figure 1. You want to write ‘had’. What should you do? There are lots of
letter ds on the screen, and all of them are rather small. The five arrows in figure 1 show some
of these ds. The purple arrow points to a d that we can’t see yet, but we know it must be there
because we can see ‘a’, ‘b’, and ‘c’ above it.
A common beginner’s mistake is to keep rushing forward and spot any of these letter ds,
and zoom into it. For example, figure 3 shows what happens if the user zooms towards the d
highlighted in figure 2.
If you go in this d, you are writing ‘I once head...’. The other two ds labelled by red
arrows (in figure 1) correspond to writing ‘I once heard...’ and ‘I once hedge...’.
It is crucial to understand that there is only one correct d, namely the d that is immediately
inside the blue box corresponding to letter ‘a’ in the sequence ‘I once ha’. That blue box is
highlighted in figure 4.
If you ever leave that blue box (as we did in figure 3) then we lose the letter ‘a’.
1.5 Summary
Don’t click. Don’t drag. And don’t speed.
Figure 4: The correct letter d is the one marked by the green arrow. This example illustrates
the rule “always keep going inside the box that you want” – in this case, the blue box associated
with the letter a of the word ‘had’.
• white squares contain the space characters (always placed at the bottom of the alphabet);
• a red box contains numerals [0-9] (if the full alphabet is enabled);
• a green box contains punctuation characters (with the characters most similar to the
space character [.,;:-] placed at the bottom, next to the white space character. Within
the punctuation section, letters with similar roles are coloured similarly: punctuation
characters similar to the period [.,;:-] are coloured slate-blue;
• the other colours are included simply to discriminate the squares from each other.
• In languages with accents (grave, acute, circumflex, etc), the accents are displayed in an
orange box.
• In the Japanese version of Dasher, colours are used to distinguish the different hiragana
groups (eg ka,ki,ku,ke,ko are orange).
• In the Korean version of Dasher, three different colours are used to distinguish initial
consonants, vowels, and terminal consonants.
You can alter the colour scheme by editing the colour and alphabet xml files, as described
in section 3.
2.2 Speaking
Dasher connects to your computer’s built-in text-to-speech system. There are several ways to
use Dasher for speaking.
You can choose to have Dasher ‘speak each word’: every time you pass through the end of
a word (by entering a space character for example), that word gets spoken immediately.
You can also choose to have Dasher ‘speak on stop’: every time you stop Dasher moving,
everything that is in the text box gets spoken.
Finally, you can speak exactly when you want to by switching on Control Mode (which is
under the Options Menu in Dasher version 3). This mode brings up an extra box in the Dasher
alphabet, coloured grey, which works a bit like an escape key on a keyboard. If you go inside
the Control box, you will find several control-related options: Stop (red); pause (yellow); Move;
Delete; and Speak. Inside the Speak box are the options to ‘speak everything’, ‘speak new’
(just the new words that you wrote since the last utterance), and ‘speak again’ (which re-speaks
whatever was last spoken).
• If possible, provide Dasher with a training text in your own style – a plain text file made
from documents you have written before, and containing your own pet phrases, friends’
names, and so forth. Either append this file to the training file, or replace the original
training file.
• If you think your personal training file may have become corrupted with rubbish text, edit
it using any plain text editor. (Or ask a friend to do this for you.)
• If you use Dasher for many months, the personal training file may become so large that
Dasher becomes slow to start up; if so, edit the training file using a plain text editor.
4 Languages
Dasher works in hundreds of languages.
For each language there is an alphabet file (or possibly more than one alphabet file). On the
Dasher website we aim to supply at least one training text for each language. If we don’t have
a good training text for your language, please help us by making one and sending it to us.
See the Dasher website for the list of languages supported by Dasher. As of October 2005,
all the major languages of the world are well supported, with the exception of Japanese and
Chinese, for which Dasher version 3 offers only phonetic support (hiragana and pin-yin). In
Dasher version 4, we will provide full support for Japanese and Chinese.
[More issues to discuss here: how combining accents work; fonts. Scripts to convert to
composed or decomposed form.]
Dasher can be driven in many ways. This guide helps you find which versions of
Dasher are most efficient for you.
As of April 2005, the newest versions of Dasher mentioned here are implemented on
the Linux platform only. We aim to have them all implemented on all platforms by
September 2005.
Dasher is designed on the principle of getting as much information as possible from the
gestures you can make.
We can get information from whichever of the following is easiest for you:
1. Continuous gestures (conveyed via a joystick, trackpad, head mouse, or gaze tracker, for
example) often achieve the highest rates of writing.
2. Discrete gestures (switches, button presses) may be able to convey information in three
different ways:
(a) The time at which you press a button can convey information. (This idea is used in
grid systems controlled by a single button.)
(b) How long you press a button for can convey information. (This idea is used in Morse
code, where two durations are distinguished.)
(c) The choice of which button you press can convey information. (This idea is used in
ordinary keyboards.)
6 Continuous gestures
Dasher’s normal mode (mouse mode) is driven by a two-dimensional continuous steering ges-
ture. Dasher also has a one-dimensional mode, for users who can control only one dimension.
Can you make one or two continuous gestures? If you can operate a joystick, mouse, track-
pad, or rollerball, then you have a two-dimensional control. If you can point on a touch-
screen then that’s perfect too. Can you move your nose around? If you can shake your
head, that’s a one-dimensional control; if you can nod, that’s two. A head-mouse can be
quite cheap, and it is a convenient way to drive Dasher. (We recommend the SmartNav3
from NaturalPoint, which costs about $200, and works under microsoft windows only; this
device used to be called the NavPoint TrackIR until 2002, when that brand name was trans-
ferred to a different device. We also recommend the Origin instruments Headmouse Ex-
treme, which costs about $1000; it works as a USB mouse on any computer.) Can you
waggle one finger or one foot? These head-mice can be used to track fingers and feet as
well as heads. For a detailed comparison of SmartNav3 with Headmouse Extreme, please see
[Link]
If you are severely paralysed, the best option may be a gaze tracker. Do you have control
of where your eyes are looking? With a gaze tracker we can write at 25 words per minute.
Gaze trackers are quite expensive: we paid $2000 for the QuickGlance from EyeTech Digital
Systems, and the Tobii eyetracker costs about $20,000. [We recommend both of these systems.
You attach QuickGlance to an existing computer; Quickglance II costs about $4000. Tobii is a
complete computer with built-in eyetracking cameras.] Dasher also works with the Eye response
Erica, with LC’s Eyegaze, and with Metrovision’s gaze-tracker. All three of these systems are
complete computers with eye-tracking cameras attached.
If joysticks, mice, rollerballs, and gaze trackers don’t work, there may be a few other ways
to convey a continuous one-dimensional signal. Lips and eyebrows should both work, though we
don’t know of any manufacturer selling appropriate devices. Breath is a one-dimensional signal
too. If you can control your breath, it should be possible to make a breath mouse for you. We
made our $22 breath mouse using a USB optical mouse, a belt, and some elastic, and our most
experienced user can write at 15 words per minute by breath alone.
• Otherwise try direct button mode or menu button mode. Go to section 7.4.
2 You can use menu button-Dasher. Connect one button to the ‘menu’ action, and the other
to the ‘select’ action. If one button is easier to press, make that button the ‘menu’ button.
2 12 If you can easily press two buttons, and, for special occasions, you are able to press a third
button, you can use menu button-Dasher or direct button-Dasher.
1. Set up menu button-Dasher as described above, and use the third button as your
escape key – to make Dasher go away, for example. [This feature is not currently
provided within Dasher.]
2. In direct button-Dasher, each button produces a particular navigation action such
as ‘up’, ‘down’, or ‘back’. If you have 2 12 buttons, map the convenient two to ‘up’
and ‘down’, and the inconvenient button to ‘back’.
4, 5, 6, or 7 With more than three buttons, you have the option to use direct button-Dasher
with three, four, five, or six ‘forward’ directions. Please try menu button-Dasher too,
even though it uses only two buttons.
8 or more Try direct button-Dasher and menu button-Dasher. With this many buttons,
you also have the option of using a system like T9 – the predictive-text system found on
many mobile phones.
To read more about menu button-Dasher and direct button-Dasher see sections ??
and ??.
Key
Button Dasher Menu sl short and long presses used
d only timings of down events used
No Timing Timing
du timings of down and up events both u
# Buttons 1sl 2 2sl 3 1d 1sl 1du
an available method
menu mode static
favourite method
direct mode dynamic
runner-up method
this choice is available, but has defects
Options for Menu mode Options for static mode
B Number of boxes φ zoom-in factor
p The probabilities (p1 , p2 , . . .) E time taken for pointer to do one sweep
(allow to select uniform p, or
dial up a geometric series) Options for dynamic mode
1/pmax unzoom factor Speed (uses the normal speed slider)
s cushion parameter Rotation rate as a multiple of speed
··· additional parameters associated
Options for Direct mode with long presses (1sl only)
p The probabilities (p1 , p2 ) [1sl, 2 only]
(allow to select uniform Options for all modes
p, or dial up a geometric Button 1 Definition
series) Button 2 Definition
p The probabilities – with [2sl only] Button 3 Definition
p1 = p4 , p2 = p3 Frames How many intermediate frames
1/pmax unzoom factor [3 only] to render when a click initiates a
s cushion parameter 16x zoom.
1/0 Whether to show the two [1sl, 2, 3] s:l boundary time defining short:long
options by dividing line 1/0 Whether to show top and bot-
(default) or by boxes tom of the ‘official’ canvas
The 13-option radio-button menu could be included in the current Control menu. All the
buttons options are mutually exclusive alternatives to Normal Mouse Mode, One-dimensional
Mode, and Eyetracker Mode. Alternatively, we could have a single option, ‘Button mode’ sitting
in a four-way radio button: Normal Mouse Mode, One-dimensional Mode, Eyetracker Mode,
or Button mode; then a separate 13-choice radio-menu (at the bottom of the Control menu)
would be used to specify which of the button modes the user wants. The other options could
all go in Advanced, in principle, but it won’t be big enough to hold them all. So I think we
need to replace Advanced by, or divide Advanced into, Miscellaneous, Buttons, and Model.
Model is where we put the radio-button to choose between various language models, and the
Smoothing slider. Miscellaneous gets Timestamp, the OneDimensionalMode slider, and the
Start-on-mouse-position slider. Buttons gets everything in this document. While we do this, I
think we should put the “Control Mode” switch into the “Control” menu, under Starting and
Stopping.
Here is an alternative orientation for the button menu.
Button Mode
No Timing
Buttons 1sl 2 2sl 3
menu mode
direct mode
Timing
Buttons 1d 1sl 1du
static
dynamic
8 User feedback
Marc says:
When I saw the video of Dasher in action, I was blown away. This is really exciting stuff.
The idea of it goes beyond what many have tried to solve. I quickly downloaded it to a Pocket
PC and began showing it to all of my friends at work. They were all impressed and everyone
has had fun playing with it. I work in the console games industry, and I highly recommend you
pursue developing this for console game machines that only use a joystick for an input device.
This would solve quite a few problems that industry is trying to solve with, text messaging in
multiplayer games that don’t have keyboards, and would be even greater on wireless phones
with instant messaging. Very nice indeed. I’ve just seen part of the future.
Lori says:
Wow, what a fantastic program! I have Spinal Muscular Atrophy which causes progressive
weakness in my fingers and wrists. I have tried a variety of alternative input methods and the
Dasher is one of my favorites. Great job!
I’m using it on my Windows XP desktop system and also on a HP iPaq 6315. It works great
on both systems.
‘Kiwi’ says:
Okay, so here I am, a disabled programmer. I just discovered dasher a few hours ago, and
I’m in love. I desperately need dasher, and I’m willing to do all I can to help.
and then one day later,
Im writing this email in dasher. In only an hour or two of use Ive gotten pretty good at it.
Im pleasantly surprised because Ive had so much trouble with voice recognition I had despaired
of ever being able to program again. Now Im confident that I can do anything I want in a
matter of months.
FYI Im using Dasher with an alternative mouse called the Foot Rat. It works quite well and
I would recommend it to anyone with a hand disability.
Bryan says:
I’ve been using Dasher now for a few months. I depend on it for all of my communication,
written and ”verbal,” as I have lost my ability to speak to ALS a few months ago.
Congratulations on the development of a great product.
‘yogi’ says: :-)
very impressed :-D -
looked a bit clumsy to start with but after a minute of using I had already attained a respectable
speed (Once i’d got the principle)
Steve says: I am fighting ALS (MND) and words can not express how grateful I am to have
found your Dasher project!
Thank-you, Thank-you!
Andrew says: I haven’t yet decided if Dasher’s key feature is that it’s fast and practical, or
that its lots of fun!
Daaf says: I am speachless.. seeing the animations / movies / screenshots I thought it was
utter chaos... working with it has proven to be so simple though...
WOW!
“pedrodawa” says Breakthrough !
I am not kidding... You guys are starting something that can make keyboards things of the
past. Just take your time and do it right. If this is the prototype, I can hardly wait for the real
thing. This is amazing stuff !!!
Mark says: Excellent program. This could really change the way we use handhelds – beats
Graffiti to the ground, that’s for sure.
NJovich says: I tried the binary and was quite surprised just how easy it was to get into.
You can slow down by moving your mouse to the right and speed up by moving it to the left.
And that works rather intuitively, I like it. I’d really love to see this in game consoles where
text-input can be a real pain even today.
Another slashdot poster says: I downloaded the software, tried it out, and after two minutes,
I’m impressed. MUCH easier to use that I thought that it would be, It almost seems to be reading
My mind, as to what I want to say...
While it could still use a bit of work, overall it is an incredible new paridgm in the way that
text-entry can happen. palm-top users are going to fall in love with it’s ease of use, I predict.
A more ‘finished’ version would be nice for the desktop users, perhaps allowing it to reside
in a side window tray that scrolled out when selected, and did the text entry in whatever text
box has the edit focus. Add that, and it will become a permanent addition to My desktop’s.
Kudos to David MacKay and his crew for creating something unique and new, and actually
enhancing the user interface at the same time.
And another: Download this, and give it a serious try. More than 20 seconds. If you try it
for five minutes, you’ll see the power of it.
It’s amazing how quickly you can pick up the basics (unlike Graffiti and other handwriting
techniques).
It’s a start of something great, I think.
I think this is one of the few areas where software patents actually make sence (I assume the
people who made this have got some kind of patent for it). Unlike a lot of examples of software
patents this is ‘non obvious’ and (as far as I know) is not a simple extention of someone else’s
work. Perhaps this could be used as a standard to judge other software patents: If something
does not achive this standard of idea it should not be patentable.
Chris says: I just wanted to say congratulations on Dasher - it is a truly incredible program!
... I have passed on website links for Dasher to a school for disabled students because I believe
you have a system here wich could be incredibly useful to them!
Congratulations on your idea again!! It makes a fantastic change to typing!!! I am now
running it on my PC and an IPAQ :)
Margaret says I work with people who have ALS. I already have a few clients who are using
Dasher, who feel it’s faster than their current input method.
June 2003, a slashdot user, trying out the new Mac version:
I am using Dasher to write this, after having never heard of it before today. I think that it
is the most interesting piece of software I have seen in the last year.
It works better than any software has the right to. The interface works really well, and
today marks the first day in a while that I have not worried if my job is giving me carpal-tunnel,
because I know that even if I lose my ability to type, I will still be able to be productive as a
software developer!!!
Plus, it’s fun!
Shaolin wrote I saw this at the Linux expo today ...
It was one of the few things that pretty much blew me away.
It also allows you for example using Gnome’s accesibility layer to input into other applications
and control the formatting as well using Dasher alone.
Alex Churchill writes
A satisfied customer joins the group
Hello, Dasher team and users!
My name is Alex Churchill, and I’ve been using Dasher as my primary (near-exclusive) text
entry system for about six months. This is due to computing-related injury (RSI, specifically
tenosynivitis): I suffer significant pain using either keyboard or mouse for any length of time,
but my job (and leisure activities) include large amounts of computer use.
Thankfully, I’m able to compose any amount of emails, scripts, and even do a certain amount
of programming, using a graphics tablet instead of a mouse, and Dasher as a main keyboard
replacement (using the Windows XP On-Screen Keyboard for occasional keystrokes, and an
excellent program called RemoteKeys for commonly used words and DOS and Unix commands).
I currently use Dasher at speed 7.7, and am expecting to max out the speed slider shortly ;)
MANY THANKS for producing a program without which I literally wouldn’t be able to do my
job!
Best wishes,
Alex Churchill
VB says: Thankyou. From all my students.
I have recently started teaching students of various ages with varying forms of disabilities.
Although a few can read and write, spelling may be an issue, but use of the keyboard was very
slow and usually caused a bit of frustration with certain students.
A colleague mentioned Dasher and now my session has been transformed from a time con-
suming chore for the students, to one of fun with lots achieved by the students with regard to
writing.
I admire the fact this has been distributed free as I know a lot of the centres I teach at are
always low on funding. This little program is a work of art, I really don’t know why this isn’t
more widely known throughout the special needs circles, let alone anywhere else.
Again Thankyou all involved with its development and I wish you long and prosperous lives.
Wed 27/4/05
Tiago Guerreiro says:
Myographic Dasher Control
Hi,
my name is Tiago Guerreiro and I am a MSc student at Technical Superior Institute at Lis-
bon, Portugal. My research is in the multimodal interfaces area and its relation with acessibility.
I am working with electromyographic devices to capture muscle activation. In my current pro-
totype I can control a mouse pointer with neck side movements or forearm muscle contractions.
I tried my prototype with Dasher and I can write very fast and accurately. It worked great to
show my results. And I didn’t have to touch any Dasher source code....I launched operating
system mouse events so I can interact with all the applications in my computer. I thought you
would like to know about another way to interact with Dasher. With neck movements this can
be used for tetraplegic individuals, for example.
Your work is great... Thank you. Tiago Guerreiro