Edit: Check out Dasher for a much better interface to enter text with a cursor, compared to a virtual keyboard.<p><a href="https://dasher.acecentre.net/" rel="nofollow noreferrer">https://dasher.acecentre.net/</a> , source at <a href="https://github.com/dasher-project/dasher">https://github.com/dasher-project/dasher</a><p>---<p>I remember seeing a program years ago, which used the mouse cursor in a really neat way to enter text. Seems like it would be far better than clicking on keys of a virtual keyboard, but I can't remember the name of this program nor seem to find it...<p>Will probably get some of this wrong, but just in case it rings a bell (or someone wants to reinvent it - wouldn't be hard):<p>The interface felt like a side-scrolling through through a map of characters. Moving left and right controlled speed through the characters; for instance moving to the left extent would backspace, and moving further to the right would enter more characters per time.<p>Up and down would select the next character - in my memory these are presented as a stack of map-coloured boxes where each box held a letter (or, group of letters?), say 'a' to 'z' top-to-bottom, plus a few punctuation marks. The height of each box was proportional to the likelihood that letter would be the next you'd want, so the most likely targets would be easier+quicker to navigate to. Navigating in to a box for a character would "type" it. IIRC, at any instant, you could see a couple levels of letters, so if you had entered c-o, maybe 'o' and 'u' would be particularly large, and inside the 'o' box you might see that 'l' and 'k' are bigger so it's easy to write "cool" or "cook".<p>(I do hardware+firmware in Rust and regularly reference Richard Hamming, Fred Brooks, Donald Norman, Tufte. Could be up for a change)