I just went to a plenary talk about
Dasher, which is very cool. It's an alternate character entry interface that uses either the mouse pointer (using a variety of different mice), 3 button, 1 button, breath input. It's based on
arithmetic coding [wikipedia] for its entry system via navigation.