Monument

Virtual keyboards, and dasher

Last week at the MeeGo Conference several people were talking about virtual keyboards, and the idea came up of doing predictive text, either by making more likely letters physically larger, or merely by increasing their sensitivity.

When I came home, I wrote a JavaScript mock-up based on a third-order Markov chain. It's quite fun to play with, especially on a touchscreen.

When I showed this to a few people at Collabora and elsewhere, Rob McQueen suggested avoiding reinventing the wheel by using the rather wonderful Dasher system as a back end. So, after a longish hacking session, here it is:

The front end shown here is just a custom GTK widget I threw together; in real life it would use an existing input method. I've exaggerated the differences between letter sizes for demonstration. (As I mentioned above, the physical letter sizes might not change at all.)

There is a wiki page about all this. Let me know if you'd be interested in helping work on this; I'll be releasing the code shortly, and adding a link on the wiki to it. (Odd thought: I wonder how useful another demonstration piece of JavaScript would be, pulling data from Dasher running as a CGI. Let me know.)

Is touch-typing truly so lost a skill that a keyboard with keys that shifted in size wouldn't actually make typos more likely? (As I write this, I'm not looking at the keyboard, so the bigger size making the key easier to see is moot as well.)

It's a good question. In practice, this is unlikely to affect the physical size of the keys (at least by default); it will instead affect the area of their sensitivity. So if I type "Q" and fudge something between "U" and "I" for the next letter, it will be more likely to be understood as "QU" than "QI".

and to see it done wrong, check out "ThickButtons" for Android devices.Wrong because the keys move around as the sizes change, which means you have to closely watch the keyboard before typing any key! I tried it, it's amusing!