[Announcement]Open source text prediction input plugin

asked 2018-03-22 23:51:05 +0200

Hello all,

We have started a new sailfishos_keyboard development team at https://github.com/sailfish-keyboard. The team is happy to announce a new version from the presage based alternative text prediction solution.

Currently we offer the following keyboards for downloading at openrepos: https://openrepos.net/content/sailfishkeyboard/english-us-keyboard-layout-presage-based-text-prediction https://openrepos.net/content/sailfishkeyboard/swedish-keyboard-layout-presage-based-input-predictor https://openrepos.net/content/sailfishkeyboard/estonian-keyboard-layout-presage-based-text-prediction https://openrepos.net/content/sailfishkeyboard/hungarian-keyboard-layout-presage-based-input-predictor

If you are using a community supported language pack or a ported device you should definitely try it out.

If you cannot find your language in the supported list please read through this documenation about how can you add support for your language: * https://github.com/sailfish-keyboard/presage#generation-of-n-gram-database-for-marisa-based-predictor * https://github.com/sailfish-keyboard/sailfishos-presage-predictor/tree/master/utils/keyboard

If you are having problems with the packaging or distribution at openrepos let us know (preferabliy in the form of a github issue), we are more than happy to help with it.

In this release we have been mainly focusing on performance improvements. We are satisfied with the results thanks to moving the internal database format from SQLite to MarisaDb and the asynchronous prediction handling.

Other than the performance improvements we have implemented the following:

  • Added Hunspell based prediction engine: if you mistype a word the predictor will offer the corrected version in the predictions. (The plugin does not do any auto-correction, just predicts the corrected word.)
  • Added ability to forgot the learned words: presage learns what you type to be able to make more accurate predictions. Now you can delete the mistyped which have been learned from your text input by long tapping on the predictions. (The forgot feature does not works on the words coming from the preinstalled database, but it is on our TODO list).
  • We have renamed the plugin to make the naming more consistent, and we get rid from the external library dependencies by statically linking to them, and removed some unnecessary configuration packages.

Important message to the users of the former revision Because of the structural changes please follow the instructions below before installing the new plugin:

  • Deselect presage keyboards in Settings/Text input/Keyboards
  • Uninstall in command line (pkcon or zypper) all presage packages. Use zypper se presage to see which packages are installed
  • Refresh repositories (pkcon refresh or zypper ref)
  • Reboot
  • Enable sailfish_keyboard repository at OpenRepos
  • Install keyboard(s) of interest

Please report back if you have any issues, problems!

Wishing you happy Sailing, @ljo, @martonmiklos, and @rinigus

edit retag flag offensive close delete


I would like to contribute on Armenian and Russian keyboard. I still have no experience programming on SFOS. Is there a step-by-step explanation on how to create a new keyboard layout and add text prediction to it?

mdidaryan ( 2018-03-23 15:00:55 +0200 )edit


You should start with getting a good corpus (see: https://en.wikipedia.org/wiki/Text_corpus) for your language.

Be sure to have good quality one, (for e.g. grabbing subtitles from opensubtitles will contain a lot of swearing text) and novels, and other literature contains very few first person singular texts (according to my experience).

From this point we can take care of the packaging, and distribution. We will need to work together in the testing phase.

BTW. is Armenian keyboard layout already exists?

martonmiklos ( 2018-03-23 15:37:58 +0200 )edit

Thank you. there's one Armenian keyboard however I would like to create a new one with different layout

mdidaryan ( 2018-03-23 15:54:32 +0200 )edit

What about CJK support?

GreatEmerald ( 2019-10-05 22:21:32 +0200 )edit