Dasher is fantastic, because it's based on rock solid information theory, designed by the late David MacKay.

Here is the seminal Google Tech Talk about it:

https://www.youtube.com/watch?v=wpOxbesRNBc

Here is a demo of using Dasher by an engineer at Google, Ada Majorek, who has ALS and uses Dasher and a Headmouse to program:

https://www.youtube.com/watch?v=LvHQ83pMLQQ

Another one of her demonstrating Dasher:

Ada Majorek Introduction - CSUN Dasher

https://www.youtube.com/watch?v=SvsSrClBwPM

Here’s a more recent presentation about it, that tells all about the latest open source release of Dasher 5:

Dasher - CSUN 2016 - Ada Majorek and Raquel Romano

https://www.youtube.com/watch?v=qFlkM_e-sDg

Here's the github repo:

Dasher Version 4.11

https://github.com/GNOME/dasher

>Dasher is a zooming predictive text entry system, designed for situations where keyboard input is impractical (for instance, accessibility or PDAs). It is usable with highly limited amounts of physical input while still allowing
high rates of text entry.

Ada referred me to this mind bending prototype:

D@sher Prototype - An adaptive, hierarchical radial menu.

https://www.youtube.com/watch?v=5oSfEM8XpH4

>( http://www.inference.org.uk/dasher ) - a really neat way to "dive" through a menu hierarchy/, or through recursively nested options (to build words, letter by letter, swiftly). D@sher takes Dasher, and gives it a twist, making slightly better use of screen revenue.

>It also "learns" your typical useage, making more frequently selected options larger than sibling options. This makes it faster to use, each time you use it.

>More information here:
http://beznesstime.blogspot.com
and here:
https://forums.tigsource.com/index.php?topic=960

Dasher is even a viable way to input text in VR, just by pointing your head, without a special input device!

Text Input with Oculus Rift:

https://www.youtube.com/watch?v=FFQgluUwV2U

>As part of VR development environment I'm currently writing ( https://github.com/xanxys/construct ), I've implemented dasher ( http://www.inference.org.uk/dasher ) to input text.

One important property of Dasher is that you can pre-train it on a corpus of typical text, and dynamically train it while you use it. It learns the patterns of letters and words you use often, and those become bigger and bigger targets that string together so you can select them even more quickly!

Ada Majorek has it configured to toggle between English and her native language so she can switch between writing email to her family abroad and co-workers at google.

Now think of what you could do with a version of dasher integrated with a programmer's IDE, that knew the syntax of the programming language you're using, as well as the names of all the variables and functions in scope, plus how often they're used!

I have a long term pie in the sky “grand plan” about developing a JavaScript based programmable accessibility system I call “aQuery”, like “jQuery” for accessibility. It would be a great way to deeply integrate Dasher with different input devices and applications across platforms, and make them accessible to people with limited motion, as well as users of VR and AR and mobile devices.

http://donhopkins.com/mediawiki/index.php/AQuery

Here’s some discussion on hacker news, to which I contributed some comments about Dasher:

A History of Palm, Part 1: Before the PalmPilot (lowendmac.com)

https://news.ycombinator.com/item?id=12306377