An accessible keyboard for your desktop

A keyboard is not always practical for entering text. Limiting factors can include the size of the device or the presence of a disability on the part of the user. With the goal of improving barrier-free access, Professor David J.C. MacKay [1] and his doctoral student David Ward developed the Dasher software [2]. Dasher is anchored in the Gnome project and is available as free software under the GNU GPL. Sadly, Professor MacKay passed away at the age of 48 in April of this year. (See also the box "Who Was Professor David J.C. MacKay?")

Who Was Professor David J.C. MacKay?

Sir David John Cameron MacKay, as he was permitted to call himself, was a British philosopher, physicist, and mathematician whose last professional position was that of a professor in engineering at the University of Cambridge. From 2009 to 2014 MacKay was the leading scientific consultant for the British Ministry for Energy and Climate Change. He wrote a book titled Sustainable Energy – Without the Hot Air which came out in 2009 [3]. The book caused a furor over the topics of energy consumption and sustainable energy production without the use of fossil fuels.

The book is licensed under the GPL and is available as a PDF file in a number of languages [4]. MacKay used UK£10,000 of his own money to finance the publication of this book. He also worked on machine learning and information theory. In combination with these efforts, he developed Dasher as a completely new approach to writing without a keyboard.

In 2015, MacKay was diagnosed with cancer. He recorded his illness and the process of dying in his blog [5]. MacKay died a few days after his last blog entry in April 2016 at the age of 48. The influential software developer and author Pieter Hintjens, who is likewise ill with malignant cancer is following MacKay's lead and writing publicly about his experiences with dying in his blog [6] and for Hacker News [7].

Dasher is a graphical text input system that makes it possible to use a pointing device to enter text efficiently with uninterrupted gestures instead of relying on a keyboard or a dictation program. Dasher can be operated with an onscreen keyboard, a mouse, or by way of alternatives, such as a mouth mouse or eye control. With a touchscreen, the program is controlled with a finger or pen. Additionally, Dasher can now handle language output, even if the language is different from the preset PC language (Figure 1). A brain-computer interface [8] is planned for the next version of the system.

Figure 1: Dasher is available in almost every world language.

The software is built into all large distributions. The 5.0 beta version [9] released in March 2016 is the most current, but it has not yet appeared in the distributions. Even so, you can compile this version from the source code [10]. In addition to Linux, Dasher is offered with FreeBSD, NetBSD, Solaris, Android, and Windows. The program can be installed under Linux via the package management for the distribution used.

First Impressions are Deceiving

When starting Dasher for the first time, you might think you have accidentally installed the wrong software, because the program looks more like a game than a text input system. This first impression is actually not that far off the mark, because Dasher borrowed heavily from arcade games like Pong [11] for the design of its controls (Figure 2). Thus, learning Dasher can be a playful and entertaining, if somewhat time-consuming, experience. The developer promises that the reward for learning the system is faster and more accurate text input than is possible with an onscreen keyboard. This is especially true for eye control with an eye tracker. MacKay was personally convinced that a person who can move even a single muscle can also expect to have a device that makes it possible to control Dasher with that one muscle. On the strength of his conviction, MacKay built a device that uses breath as a control.

Figure 2: The Preferences dialog offers various modes.

Prediction Based on Probability

In the background, Dasher runs a probabilistic predictive model to give priority to probable characters and character combinations. The most probable combinations of the letters of the alphabet are displayed more prominently so that these are more easily accessible (Figure  3). Writing works fluidly: Starting and ending a writing session requires just one click of the mouse. This is different from an onscreen keyboard, which requires a click for each character. The program also handles speech output by attaching itself to the PC's Text-to-Speech system. Dasher works in almost all languages and alphabets. Recently, the Japanese and Chinese alphabets became available.

Figure 3: It takes a little practice to get the first word out.

In addition to the hardware environment, the use of Dasher requires a certain level of intact vision and reaction capabilities. The speed of movement toward a character can be set as desired. Dasher can come across as somewhat complex even for fully abled users. However, learning certain motions goes quickly and are soon almost mechanical. Once you internalize the principle behind the various color surfaces and the characters they represent, it becomes possible to write 20 to 25 words per minute. The practice needed to work up to this speed usually lasts several hours (Figure 4). Experienced users of eye control can input 30 words per minute which is almost the same rate achieved with handwriting. Master mouse handlers can input 40 plus words per minute.

Figure 4: After an hour, it is possible to write a sentence fluidly.

Dasher comes with English training text installed, but if you want to train your version in another language (Figure 5), many texts are available for download [12].

Figure 5: You have many training texts from which to choose.

Child's Play

The user chooses characters with a pointer device that moves across various colored surfaces, each representing various types of characters, such as small and capital letters or punctuation marks over crosshairs located in the middle of the screen. At this point a selection has been made. Entering text with Dasher causes the system to learn so that it can make recommendations when characters or words are entered. It is also possible to copy the text written to the clipboard for transfer to other applications.

A good overview of how the input method works is available on YouTube [13]. An extract from a Google TechTalk shows a lecture given by MacKay in which he demonstrates the efficient use of Dasher [14]. In this video, MacKay explained the origin, principles, and use of Dasher. If you have a serious interest in learning about the software, you will find the full-length lecture extremely helpful [15]. The best documentation for Dasher has been prepared by the Gnome project [16].

Conclusion

During tests, Dasher worked best under Fedora with Gnome. Unfortunately, under Debian, the program reveals some persistent bugs and gaps in functionality. The first half hour of using the software is strenuous, with a fairly high error rate. Once past this initial hurdle, ambition takes over and you discover a fascinating new world of writing. The operation offers special advantages to persons unable to control a mouse by hand (Figure 6), and it promises speeds not attainable with an onscreen keyboard.

Figure 6: Dasher with an eye scanner.

One quote from the forum gives expression to this promise: "According to the (Dasher) developers, it should be possible to write up to 125 characters per minute. This seems exaggerated to me. I myself can only achieve 80 to 90 characters per minute with the mouse. However, this is a significant improvement over an onscreen keyboard with which I can only enter 40 characters per minute, even with use of word prediction. This means I now need only half the time for everything I write. Since I write a lot, this has been a great advantage for me" [17].

The Human Side

This software closes the circle between two people who have dedicated their time to the service of the world community. The first paid job held by the well-known Linux developer and free software activist Matthew Garrett [18] was the work he performed under MacKay on the development of Dasher. The two met at the University of Cambridge where MacKay was a faculty member and Garrett a sys admin in a computational physics research group.

Garrett wrote an obituary for MacKay that appeared on his blog [19]. In it he indicated that the work he did with MacKay had opened his eyes to the meaning that free software could have for the user and how important MacKay's contributions were. As a result of the joint effort expended by these two men, Dasher went from being a research project to a well-integrated component of the Gnome desktop environment in the space of a year.

During this time, Garrett did not work away in solitary. Instead he gave lectures about Dasher. However, he devoted much more time to meeting with users of the software, listening to them, and then trying to implement the experience into the software. This experience was instrumental in Garret's transformation into a kernel hacker, Linux developer, and free software activist who, when there is any doubt, will loudly defend the user against a company. He does not shy away from regularly denouncing Microsoft, Intel, and Canonical when they interfere with free software.

With his blog entry, Garrett has also forged a bridge of knowledge for many readers since so many people who knew MacKay were not familiar with Dasher. Likewise, many people who were familiar with Dasher did not know about MacKay. In particular, they did not know of his awards and his widely held reputation among fellow academics for being a thoroughly great guy, nor had they been aware that Garrett had worked so closely with him.