Conversation
|
Impressive! I think we will likely not want to bundle the dictionaries but load them from the internet on user request, like how many Android keyboards handle dictionary downloads. The dictionaries could be in We can also implement a UI for the user to pick the desired word, as well as a way to render a trail line (@oo8dev might have ideas about the latter) |
|
Yup, I've implemented |
|
Ok, the feature is pretty much done now, (apart from the swipe trail) and there are some important caveats: It only works for qwerty keyboards, and only English, but the predictions are much better now. this is because its now using ML (models are cached at runtime in /tmp) instead of a normal algorithm like before. Because its ML, it depends on ort now which is why the builds are failing, you'd need to build on a more modern version of Ubuntu. Anyway Here's the new demo: |
|
i wonder if i'm doing something wrong, for me it just presses the button like normal. the recommendations field is empty |
|
You have to hold the pointer down and drag across the keys to trigger it, but if you're already doing that then maybe its something to do with your keymap? It should work as long as the first string in |

I found this new library a few days ago which supports swipe to type for rust, so Ive forked it here, adding some improvements to the prediction selection alg, and laying the groundwork for multi language support.
You can see a some debug output showing the predictions based on the swipe data here:
for example the output
is showing that I swiped over the keys "tyuiopoiuytre" in that order and its correctly predicting that I meant to type the word "type"
Before I continue to implement it properly with the gui and stuff I have a question:
Ive currently implemented the library such that it precompiles word counts and word bigrams into binaries for each language (currently only english) in the crate itself, so the engine can load faster at runtime. its too big for crates.io so it has to be installed via git. This also means the builds will be substantially larger for example the release build binary is now 70mb, compared to 43mb before. I estimate this will increase by about ~30mb per language added. is this acceptable?