Ask / Submit

Swype-like virtual keyboard

asked 2013-12-24 18:09:29 +0300

updated 2016-02-02 12:56:12 +0300

meldolion gravatar image

Coming from an N9, I would like to have a "swype-like", "slide keyboard" input method on my Jolla, it greatly improves the speed and accuracy of typing, especially in one-handed use. Android also has this by default, but N9's swype is/was better.


Any news from dev team? Would it ever be possible to add a third-party keyboard at least?

Edit Third Party Keyboard

Hi all, Swype like Keyboard is working as already stated in some of these answers here before. Our dear community got it implemented and i am very happy that this missing feature is now with us. :-D So everybody who need this feature can download "OKboard" via openrepos and also select its language package, if it is already available

edit retag flag offensive close delete



Coming from N900 & Communicator series I found Swype to be absolutely essential on N9.

Faz ( 2013-12-24 19:11:52 +0300 )edit

I could not live without it at this point. I find myself swyping all the time on Jolla's keyboard, only to realise that it doesn't work :( It's become second nature to me.

Orologiaio ( 2013-12-24 19:39:57 +0300 )edit

Surely a swype keyboard would be a natural fit for the entirely gesture-based Sailfish interface. I have to say I was surprised that it was not included.

strongm ( 2013-12-24 21:39:55 +0300 )edit

There's an existing thread at Swype's official forums here. Would recommend adding to it to show level of interest & support.

Faz ( 2013-12-24 23:36:31 +0300 )edit

I'm also swyping all the time on My Jolla. Can't wait to get it on My Precious!!! On N9 it was working perfectly!

matimilko ( 2013-12-25 21:17:59 +0300 )edit

17 Answers

Sort by » oldest newest most voted

answered 2013-12-24 20:09:23 +0300

lbt gravatar image

We're thinking about it :)
This non-answer just stops vote questions from clogging up the 'Unanswered' section

edit flag offensive delete publish link more



I appreciate that you are thinking about it.. Swype is extremely essential for average (mainstream) consumers if physical qwerty keyboard is not available.

LaruX ( 2013-12-26 00:08:53 +0300 )edit

Great! Because it would make the whole wiping experience complete. Actually, Swype was the first thing I installed on my old N8 four years ago.

ramppa ( 2014-02-13 15:17:11 +0300 )edit

An unlike swype-ish keyboard would make typing a breeze with the smaller Jolla phone I'm hoping for. Wouldn't matter much that the keys are small. Painting words like that was really nice on my old Nokia 700. ...and much smaller than that is hard to find.

vattuvarg ( 2014-02-22 22:43:45 +0300 )edit

would even pay 50 cent for buying an "official" swype licence per download/device ;)

tronicum ( 2014-03-22 01:49:35 +0300 )edit

As tronicum said, I would even pay a little bit more to be able to swype on the keyboard. That's a must! =)

petaqui ( 2014-05-09 16:36:48 +0300 )edit

answered 2014-05-20 04:21:52 +0300

Dinesh gravatar image

updated 2014-06-07 11:34:59 +0300

Hey folks..

Just wanted to let everyone here know that I'm looking at writing a Maliit plugin for a gesture based keyboard.. I spent the last weekend coming up with a basic Demo of such a keyboard in Qt/QML ... Apparently it's really not that difficult.

This was really a quick and dirty project to test the waters and I'd say i'm pleasantly surprised how easy and how performant this was. Even on my 5 year old Samsung Galaxy Captivate( 1Ghz processor, 370MB RAM), there was absolutely no visible lag in predicting ~5 words from a dictionary of around 30000 words.

And here is the demo of what's working so far:

What works:

1) A basic disambiguation algorithm, which says how likely "hgfdedfghjklo" is to be the word "Hello".

2) A basic prediction function which ranks words like "Hello" "He" "Hell" ... in the increasing likelihood that they generally appear.

3) All the necessary infrastructure to parse keyboard definition files and create a virtual keyboard. ( I am designing this with multiple languages/keyboard layouts in mind )


1) Improve the word disambiguation algorithm and the feedback system. (quite interesting, probably - priority 1) (In progress . Done with the feedback system)

2) Improve the prediction precision by analyzing more real world text and analyzing user's error model - priority 3)

3) Add a gesture to support inputting repeating characters. (priority 2)

4) Implement a proper state machine in engine to support things like backspace, arrow keys, auto capitalization etc.. (priority 2 - looks like it's better done after making this a Maliit plugin)

5) Make a Maliit plugin out of it. (priority 1 - mainly because it seems like it would be faster to develop and test the demo than the whole Maliit plugin) (In progress. Currently I'm quite busy, so that's why this is on a pause)

6) Look into multi language support. (priority 5 - kind of too much for me)

7) Make it prettier (priority 4) (DONE)

I'm hoping to make this FOSS... But I haven't yet decided if I would want to put a price on this => the code stays behind closed doors for now. So if you don't hear any updates from from me about this in 1-2 months from now (I'm only working on this during weekends, and spare time as of now...), feel free to ping me and I'll open up the source code immediately.


Update: You can follow my progress in here: ---------

edit flag offensive delete publish link more



I'm following the progress of your efforts closely as this type of text input is more or less a necessity if there is to be a smaller jolla phone in the future. ...and I'm very much hoping there will be.

vattuvarg ( 2014-06-07 20:35:16 +0300 )edit

Thanks for your efforts on this. If you are willing to open the code I'm sure you would get some help even if it is just with layouts and dictionaries.

stevexley ( 2014-06-10 08:46:18 +0300 )edit

Yep... The code would definitely be open - once it is ready OR if i get too busy with other projects. I'm hoping to get some progress with making a maliit plugin out of this for this weekend . So will regularly post updates on this.

Dinesh ( 2014-06-10 18:11:07 +0300 )edit

Where can I donate?

Nilux ( 2014-07-02 10:45:19 +0300 )edit

Hopefully in the About dialog of the app? :)

So here is the quick update: Last week was a little too busy for me => a bit slow for Skeyer... So the one line report for last week: The build system issues were fixed. I am planning to soon do the development in the open once the basic plugin is in a working condition (~2 more weekends)?

Dinesh ( 2014-07-02 21:47:52 +0300 )edit

answered 2013-12-25 21:07:29 +0300

gabriel gravatar image

For those of you who will be ready to potentially pay for it, you may want to make some noise here:

Some folks (and myself) have been doing so.

edit flag offensive delete publish link more


gabriel, thank you for the idea, i have voted to swype forum with swiss french keyboard but is look like better to use swiftkey not free for foreign language support french language

redge73 ( 2013-12-31 04:08:10 +0300 )edit

Sadly Swype have stated "At this time we don't have any plans to create a Sailfish OS specific version of Swype". I still think Jolla should be talking to them to help encourage them to do it. I'll repeat again that the Swype keyboard is a much more natural match for Sailfish's gesture-based interface than a traditional hunt'n'peck VKB

strongm ( 2014-01-20 17:57:11 +0300 )edit

strongm: must be in response to the email I sent to their PR (or maybe somebody else's). Ah well, we can only wait/hope ;-)

gabriel ( 2014-01-21 11:34:05 +0300 )edit

I would love swype-it was such a key feature on the n9 and made my Apple friends take notice

martinhsl68hw ( 2014-02-08 14:13:52 +0300 )edit

In the thread linked above Swype have now commented that, as a result of the thread, they are looking at this forum to help gauge the level of support for a Swype keyboard on Jolla. Whilst in no way a commitment to providing one, it is good to hear.

strongm ( 2014-02-23 11:57:29 +0300 )edit

answered 2014-02-22 17:25:53 +0300

ErikDK gravatar image

I totally agree on the above mentioned requests. Without a SWYPE-like feature Sailfish cannot call itself a truly swipe based interface ;-) - But still the best mobile OS in the world though.

But please Jolla, either elaborate your own version or convince SWYPE to port the N9 SWYPE keyboard to Sailfish. I would be more than willing to pay for it. The lack of this feature is the biggest hindrance from making Sailfish perfect in my view.

edit flag offensive delete publish link more


This should be a comment, not an answer ;)

Orologiaio ( 2014-02-22 17:30:47 +0300 )edit

UPS - you are right. Sorry :-~

ErikDK ( 2014-02-22 17:50:54 +0300 )edit

answered 2015-12-23 14:43:42 +0300

vattuvarg gravatar image

OKBoard in openrepos. Needs testing.

edit flag offensive delete publish link more

answered 2014-07-01 13:52:56 +0300

ApB gravatar image

Someone did it.

edit flag offensive delete publish link more



One can contact the author on TMO:

zlatko ( 2014-07-01 14:09:35 +0300 )edit

I'm the author of this keyboard. If you want to help, please visit the link posted by zlatko.

eber42 ( 2014-07-06 22:50:04 +0300 )edit

Any update?

strongm ( 2014-11-24 02:59:20 +0300 )edit

Something happened. It was said on Jolla Pioneer fans Facebook page that eber42 is working on a newer version and the link to source code can be found there, too!

bennypr0fane ( 2014-12-29 20:46:08 +0300 )edit

answered 2015-12-24 19:08:59 +0300

cy8aer gravatar image

Now I tried to get okboard running for german. And: It works (sort of). Because this is only a POC I try to explain what I did. You need to clone the source of the okb-engine:

git clone git://

you also need a german corpus file. You can find some german and other languages at the same place as the french ones at enter the captcha at "Download Corpora". I took the latest Wikipedia one. Gunzip the file and bzip2 it. Rename the file to corpus-de.txt.bz2 (yes it is a tarball but do not think about it) and put it into some new created corpus directory. Define the environment variable CORPUS_DIR pointing to your corpus directory. Define another environment variable WORK_DIR pointing to some temporary directory.

Debian: you need some packages. For me it was minimum: lbzip2, qtbase5-dev, qt5-qmake, python3-dev. Because I had some trouble on compile time I changed two symbolic links: /usr/bin/qmake -> /usr/lib/x86_64-linux-gnu/qt5/bin/qmake and /bin/sh > /bin/bash. Please remember to set the original links after running!! qmake -> qtchooser and sh -> dash!

Change to your okb-engine folder. Run

cp db/ db/
db/ de

and wait. If everything works fine you will find the following files in your WORK_DIR:

de.tre, and predict-de.db. Gzip these files and put the .gz files to Jolla's /usr/share/okboard.

Try the german keyboard. BUT: it is not perfect. It would be better to combine more than one corpus tarball. But I do not know how this works. Any suggestions?

What about licenses? Questions over questions...

edit flag offensive delete publish link more


I tried your guide and I got an alert:

make: ***  No rule to make the target "/home/francesco/okboard/corpus/corpus-it.txt.bz2", needed by "it-learn.txt.bz2".  Stopped.

Any suggestion?

fravaccaro ( 2015-12-26 16:40:11 +0300 )edit

Thank you for your explanation. Unfortunately it didn't work for me yet. I get the following error:

Building for languages:  de
~/sailfish/okboard/okb-engine/ngrams ~/sailfish/okboard/okb-engine/db
running build
running build_ext
running build
running build_ext
~/sailfish/okboard/okb-engine/cluster ~/sailfish/okboard/okb-engine/db
make: Nothing to be done for 'first'.
make: '.depend-de' is up to date.
set -o pipefail ; lbzip2 -d < de-learn.txt.bz2 | /home/olaf/sailfish/okboard/okb-engine/db/../tools/ de-full.dict | sort -rn | lbzip2 -9 > grams-de-full.csv.bz2.tmp
Traceback (most recent call last):
  File "/home/olaf/sailfish/okboard/okb-engine/db/../tools/", line 209, in <module>
  File "/home/olaf/sailfish/okboard/okb-engine/db/../tools/", line 64, in parse_line
    raise Exception("Line contains invalid characters: %s" % line)
Exception: Line contains invalid characters: deu_wikipedia_2010_1M-co_n.txt0000644000000000000000004332467211570554667015100 0ustar  rootroot715        132
        21      18.76
/home/olaf/sailfish/okboard/okb-engine/db/makefile:43: recipe for target 'grams-de-full.csv.bz2' failed
make: *** [grams-de-full.csv.bz2] Error 1

Which corpus file did you use? I tried this one:
Olsen ( 2015-12-28 00:26:14 +0300 )edit

Corpus files are compressed plain text files (.txt.bz2) and not tar files. So you can just join different sources before compression. They should contain only sentences separated with dots and/or blank lines, and with proper capitalization.

If you produce and distribute your own language files, I suppose you can use the license you like.

The README file has been updated a lot lately and there is some additional information in the TMO thread (

eber42 ( 2015-12-30 11:06:34 +0300 )edit

@Olsen: I used - like you. Maybe I need to rebuild and test my description again. According to @eber42 we need to unpack the tarball and prepare deu_wikipedia_23010_1M-sentences.txt (deleting the counters - cut -d $'\t' -f 2 deu-wikipedia_2010_1M-sentences.txt).

cy8aer ( 2016-01-07 13:12:23 +0300 )edit

@cy8aer I think @Olsen already stripped the counters, because id tried to build that corp too, also stripping the counters. But I am getting almost the same error.

xllndr ( 2016-01-07 16:59:19 +0300 )edit

answered 2013-12-24 21:42:14 +0300

updated 2013-12-25 14:00:08 +0300

Swype keyboard is not opensource, and all swipe like keyboard too, meaning that it is not easy for a third-party (or someone at Jolla) to provide a support. We need to wait for people editing swype-like keyboard to provide it to Sailfish OS. Or some developer can step up and provide an (opensource ?) swype-like keyboard.

EDIT: clarified the distinction between Swype and swype-like.

edit flag offensive delete publish link more


That's why I wrote "swype-like" ;) It doesn't need to necessarily be Swype (the plugin with that name), but some sort of "slide keyboard" input method. Maybe developed internally.

Orologiaio ( 2013-12-25 00:49:43 +0300 )edit

For example Android has an input method similar to Swype, but developed internally and available as an option to the stock keyboard (at least in my Nexus 7 with Jellybean/Kitkat, my first android device, and I hope the last).

Orologiaio ( 2013-12-25 00:50:13 +0300 )edit

Edited my answer. Indeed Google's keyboard provides similar swype-like keyboard, but it is not opensource either.

Sfiet_Konstantin ( 2013-12-25 14:00:43 +0300 )edit

How did Swype end up on the N9? Presumably as the result of some negotiation between Nokia and Swype. Is this not something Jolla can consider? Or at least gently suggesting to Swype that it might be worth their while making a Jolla version. It just seems such a natural fit to me.

strongm ( 2013-12-26 18:23:28 +0300 )edit

This is not an essential feature to me, I understand others may feel differently. It is just that predictive text does not work tht well if you have use more than one language... Half my communication is in Italian and half is in English, and more often than not, words are not in a dictionary.

In any case...

  • Swipe^TM is going to be expensive to license
  • swipe-like is going to require resources developing...
  • I still have hopes for a keyboad other half :-)
  • Resources at Jolla are limited. Budgeting for this means something else will need to be postponed or scrapped...

From my point of view, this is a feature better offered by a third party.

mikelima ( 2013-12-30 17:38:09 +0300 )edit

answered 2014-02-22 20:48:47 +0300

mikma gravatar image

Android also has this keyboard available: Minuum Keyboard. The functionality and the idea is nice, but it still requires Finnish dictionary in order to work and complete correct words.

edit flag offensive delete publish link more


The minuum keyboard looks nice. Have you tried it, @mikma?

vattuvarg ( 2014-02-23 12:43:53 +0300 )edit

I did, for a short moment (because I funded the software and I own it because of that). Because it did not support Finnish dictionary, it was not that usable for me :(

mikma ( 2014-03-23 11:27:57 +0300 )edit

How did it feel when typing? Was it accurate?

vattuvarg ( 2014-03-23 11:41:12 +0300 )edit

Wow, this could be even faster than swiping - nice. Also I assume this shouldn't be to hard to implement on top of the existing dictionaries (not knowing the implementation details). Just wanted to try it on my Android tablet, but it requests some permissions it dfinitely should not need. (Off topic: this just reminds me of how cool it was to have app permissions at all.. ahem ;-))

tokaru ( 2014-03-23 13:25:35 +0300 )edit

It was quite odd to use for the start, but any new unknown software is :) I can't tell what it was like because it's been a long time, and now it's changed abit from the beta I used. Maybe I should install it in the old phone and retest it again to see what's it like.

mikma ( 2014-03-27 20:56:40 +0300 )edit

answered 2014-03-23 11:08:53 +0300

bokal gravatar image

If I'm not mistaken, Jolla uses maliit keyboard. One willing to help bringing swype to Jolla would implement it as a maliit plugin.

edit flag offensive delete publish link more


Swype needs to be licensed as far as I know. And please clarify - are you suggesting YOU can implement it or just pointing that it must be done as mallit plugin?

zlatko ( 2014-03-23 11:37:28 +0300 )edit

Would it be possible to implement the stringing of words at all within the maliit framework?

vattuvarg ( 2014-03-23 11:44:09 +0300 )edit

I can't implement it. Lack of time for sure, and most likely skills. Swype implemented it closed source for the N9. I was indeed pointing that it must be done in a similar way, opensource would be better and could benefit all the devices using maliit.

bokal ( 2014-03-23 12:20:20 +0300 )edit

There is also TouchPalX and FREE.

Maybe that one?

matimilko ( 2014-03-25 20:43:26 +0300 )edit
Login/Signup to Answer

Question tools



Asked: 2013-12-24 18:09:29 +0300

Seen: 14,976 times

Last updated: Feb 02 '16