[RELEASE] FUTO Keyboard (with Swipe and Offline Voice Input)

FUTO Keyboard for Sailfish OS

A feature-rich native keyboard for Sailfish OS, based on FUTO Keyboard and designed to work across both native Sailfish applications and Android AppSupport.

This project brings the FUTO typing experience to Sailfish OS while adding many new features and integrations made specifically for the platform.

Features

Smarter typing
  • Multilingual predictions for every included language with an available offline dictionary

  • Automatic per-word language detection

  • Spelling corrections and next-word predictions

  • Context-aware suggestions and compound-word support

  • Swipe typing with a smooth visual trail

  • Cursor control by holding and dragging the space bar

  • Fully offline voice input with live transcription and push-to-talk

  • Optional URL history and suggestions

Make the keyboard yours
  • The full set of directly typed FUTO language layouts

  • A separate layout can be selected for each language

  • Full-size, thumb, left-handed, and right-handed modes

  • Separate keyboard modes for portrait and landscape

  • Adjustable keyboard height

  • Optional number row and secondary symbols

  • Adjustable long-press timing

  • Customizable sounds, vibration, and key previews

  • Customizable Quick Settings menu

Emoji and symbols
  • Complete Emoji 17 collection

  • Emoji search using your enabled languages

  • Categories, favourites, recently used emoji, and skin tones

  • Twemoji, OpenMoji, and Noto Color Emoji styles

  • Large categorized symbol collection

  • Favourite symbols for quick access

Privacy and useful tools
  • Manual and automatic Incognito mode

  • Privacy Switch integration

  • Automatic protection while entering passwords

  • Encrypted learned words and URL history

  • Encrypted password manager protected by your device code or fingerprint

  • Password import and export, with optional AES-256 ZIP protection

  • Clipboard history with pinned entries and automatic cleanup

  • No account or online service required for typing, predictions, or voice input

Hardware keyboards
  • Automatic hardware-keyboard detection

  • Option to keep the virtual keyboard visible

  • Dead-key support for entering accented characters

Getting started
  1. Download and install FUTO Keyboard.
  2. Open Settings → Text input → Keyboards.
  3. Enable FUTO.
  4. Open Settings → Text input → FUTO Keyboard settings to choose your languages and customize the keyboard.

You can also open the settings directly from the keyboard by holding the 123 button and selecting Settings.

Downloadable content

Open FUTO Keyboard settings → Downloadable content to install the content you want:

  • Language dictionaries

  • Emoji artwork

  • Offline voice input

Content can also be removed again from the same menu.

Privacy

Typing, predictions, learned words, clipboard history, voice recognition, and saved passwords are handled locally on your phone.

Clipboard history, URL learning, and the password manager are optional. Incognito mode prevents the keyboard from learning or collecting clipboard content while it is active.

Saved passwords and protected learned data can be secured using the existing device code or fingerprint authentication.

Source and licensing

This project contains modified and newly developed components under their respective licenses.

The source code is available on GitHub.

This project contains modified and newly developed components under their respective licenses. Upstream sources and revisions are documented in UPSTREAM.md. Details of the modifications are available in MODIFIED-NOTICE.md, with additional license information in the LICENSES directory.

Changelog

0.1.0
  • Initial Release
0.2.0

New Features

  • Added a new Fn keyboard page with arrow keys, Esc, Tab, Ctrl, Alt, AltGr,
    the Sailfish key, F1-F12, Home, End, Page Up, Page Down, Insert, Delete, and
    more.
  • Added an optional and customizable extra-key row.
  • Modifier keys can be used once for the next key or locked by tapping them
    twice.
  • Added predictions for Greek, Russian, Serbian Cyrillic, and Serbian Latin.
  • Added Slovenian QWERTZ, Croatian/Serbian Latin QWERTZ, and Serbian Cyrillic
    layouts.
  • Added a keyboard-sound toggle to Quick Settings.
  • Holding the language/layout item in Quick Settings can now switch to another
    active Sailfish OS keyboard.

Improvements

  • Spacebar cursor control can now move the cursor horizontally and vertically.
  • A second finger can be held during cursor movement to select text.
  • Quick Settings and extra keys can be reordered by holding and dragging.
  • Added Restore defaults to the Quick Settings and extra-key organizers.
  • Improved typing compatibility in terminal and console applications.
  • Fixed predictions, swipe typing, and FUTO Settings being unavailable after
    a new installation until the keyboard service was restarted.
  • Fixed the language/layout Quick Settings item being hidden when another
    Sailfish keyboard was enabled but FUTO itself used only one letter layout.
  • Improved compatibility with Sailfish OS 5.1, fixing swipe typing, Quick
    Settings, missing symbol and emoji tabs, and blank emojis.
0.2.1

New Feature

  • Added an optional Show keyboard action to the Sailfish OS Top Menu, allowing the keyboard to be opened in Android apps that normally do not show a keyboard.

Fixes

  • Holding the language/layout button in Quick Settings now switches to another enabled Sailfish OS keyboard.
  • Secondary characters no longer appear when briefly holding over a letter during swipe typing.
0.2.2

New features

  • Added Hungarian predictions, available through Downloadable content.
  • When automatic language detection is disabled, the Switch language/layout action can now cycle through selected languages that use the same keyboard layout.

Fixes

  • Fixed a startup problem that could prevent FUTO Keyboard from appearing on armv7hl and i486 devices.
  • Cursor-control mode now correctly hides the keys on the number and symbol pages.
0.3.0

New features

  • Added Arabic predictions and a Persian keyboard with predictions.
  • Languages sharing the same layout can now remain separate and be switched manually.
  • Keyboard sounds can now be set to Off, On or System default from Settings or Quick Settings.

Fixes

  • Reworked swipe typing, with improved recognition and word ranking across supported languages.
  • Improved contractions such as “I’m” and “can’t”, capitalization and short swiped words.
  • Fixed the first swipe after switching languages not being recognized.
  • Reduced memory usage when opening, scrolling and switching emoji categories.
  • Fixed the suggestion strip jumping back while browsing predictions.
  • Added the missing Polish ą and Ą characters.
  • Improved double-space periods and removal of unwanted spaces before punctuation.
  • The current clipboard can now be pasted into password fields without enabling clipboard history.
  • Fixed incorrectly grouped symbols by reorganizing the symbol picker into clearer categories.

Download

The download is available via OpenRepos.net or the OpenRepos app Storeman

0.4.0

New features

  • Expanded language and layout support with additional FUTO layouts, their proper key order, and language-specific long-press characters.
  • Added predictions and swipe typing for additional languages where an offline dictionary is available.
  • Added native Sailfish font support for scripts such as Amazigh, Sinhala, Myanmar, and Khmer.
  • Improved the Arabic and Persian layouts with appropriate punctuation, numerals, and alternative letters.
  • Added the new Saudi Riyal symbol and improved the rendering of Arabic Rial and Jalla Jalaluhu symbols.
  • Added an optional “Add space after punctuation” setting (this excludes web and email addresses).

Fixes

  • Greatly reduced emoji-picker memory usage and improved scrolling performance, especially in long categories such as flags.
  • Improved emoji search so unrelated results are no longer shown for searches such as “happy”.
  • Spacebar cursor control now works smoothly in both native Sailfish and Android applications.
  • The optional number row now matches the letter-row height and no longer overlaps it.
  • Swipe vibration now occurs only on the first touched letter.
  • Swiped words receive a space only after accepting the suggestion or beginning the next swipe.
  • Swipe typing stays disabled until the required FUTO Swipe content has been downloaded.
  • Pressing Space now accepts the visibly highlighted correction instead of an unseen suggestion.
  • System-default keyboard sounds now respect both Sailfish Touch sounds and Silent mode.
  • The current system clipboard entry can be pasted into password fields without enabling clipboard history.
  • Corrected duplicated and misplaced secondary symbols across keyboard layouts.
0.4.1

New features

  • Numpad in the 123 page layout can now be placed left or right

Fixes

  • 123 and {&= pages has a better layout
  • Same accented letters whatever languages are enabled
  • Symbols are showing now above the top row when the number row is on
  • Dot key shows ,!?
  • Space added after a swiped word
  • Smaller symbol picker tabs
  • Swipe only works at the start of a new word to prevent false swipe detection (due to a bug in Sailfish OS)
  • Haptic feedback is fixed
  • Paste button now shows when predictions are off as well
0.4.2

New features

  • Added option for “Vibrate while swiping”
  • Added “Uninstall FUTO Keyboard” to Maintenance
  • Added option for holding the space bar to choose between doing nothing, moving the cursor, or switching languages

Fixes

  • Tibetan letters are now visible, on the keyboard and in the rest of the system
  • Danish keyboard uses the Danish letter order instead of the Norwegian one
  • Norwegian keyboard is now a separate layout
  • Portuguese keyboards carry ç instead of the Spanish ñ
  • Dot key no longer draws a border around it
  • Swiping can start after punctuation, not only after a space
  • Much lower memory use for all languages
0.5.0

New features

  • Added an option to correct typos when pressing punctuation.
  • Added adjustable number-row height.
  • Added QWERTY (Regional) as a separate layout option that has no accent keys.
  • Added a scrollbar to the keyboard layout picker.

Fixes

  • The selected language is remembered after a reboot.
  • Incognito no longer accidentally turns on in ordinary text fields.
  • “Numbers across the top” on the 123 page works with all layouts.
  • Catalan is labeled correctly.
  • Long layout names scroll in Quick Settings instead of being cut off.
  • Pressing Space now keeps short forms like “I’m” and “I’ve” instead of removing the apostrophe.
0.6.0

New features

  • Choose from six offline FUTO voice models, with English and multilingual
    options prioritizing speed or accuracy.
  • Language switching and cursor control can share opposite halves of the space
    bar, in either order.
  • Arabic and Persian include common diacritics through long-press menus.
  • Persian includes joining and text-direction controls.

Fixes

  • Arabic and Persian use appropriate punctuation, with Latin alternatives
    available by holding the keys.
  • Persian ژ is available by holding ز, giving the bottom row more
    comfortable key sizes.
  • Unfinished Arabic and Persian words appear on the correct side of the text
    field.
  • Returning from the 123 page no longer opens a shifted Arabic or Persian
    layout.
  • Quick Settings no longer overlaps cursor-control or voice-input status.
  • Voice typing cannot be enabled without an installed model and directs the
    user to Offline voice when one is needed.
  • Existing offline voice installations remain available after upgrading.
  • Voice-model downloads can fall back to FUTO’s official download source.
0.6.1

Fixes

  • The layout selector now uses the full available keyboard area instead of
    appearing compressed.
  • Applications now recognize typed text immediately, without waiting for Space
    to be pressed.
  • The final word is no longer lost when sending a message without a trailing
    space.
  • Typed text is no longer shown as unfinished or underlined when word
    suggestions are disabled.
0.6.2

Fixes

  • Automatic first-letter capitalization and one-tap Shift work correctly again.
  • The first Backspace after automatic correction restores the original word without deleting the following space or punctuation.
  • Uninstalling restores Sailfish’s original font rendering immediately, without requiring a reboot.
0.7.0

New features

  • Added an optional downloadable context-aware English prediction model for better corrections and next-word suggestions.
  • Joined words can now be split into natural phrases, such as ihave > I have, across supported dictionary languages.

Fixes

  • Revealing a password with an eye button no longer allows its contents to be learned.
  • Swipe typing now produces fully uppercase words while Caps Lock is enabled.
  • The hidden keyboard no longer keeps maliit-server active, reducing idle CPU usage and battery drain.
0.7.1

New features

  • Added the official Bulgarian BDS keyboard layout alongside the existing Bulgarian phonetic layout.
  • Added downloadable prediction dictionaries for Afrikaans, Azerbaijani, Belarusian, Bulgarian, Bengali, Catalan, Esperanto, Estonian, Basque, Galician, Hindi, Hinglish, Armenian, Icelandic, Indonesian, Georgian, Kabyle, Kazakh, Khmer, Kannada, Macedonian, Malayalam, Marathi, Nepali, Punjabi, Slovak, Tamil, Telugu, Thai, Filipino, Toki Pona, Ukrainian, Urdu and Standard Moroccan Tamazight.
  • Added a switch for the downloadable context prediction model, so it can be turned off without removing the downloaded model.
  • The uninstall screen now lets you choose which settings, learned data, passwords and downloaded content should be deleted or kept.
0.8.0

New features

  • Added optional Android™ AppSupport autofill for saving and filling logins, with device authentication before using a saved login.
  • Saved passwords are now listed in alphabetical order.
  • Added an option to turn off suggestions containing spaces.

Fixes

  • Improved saved-login detection and filling for websites and applications.
  • Fixed the missing FUTO Keyboard settings entry under Text input on some devices.
  • Fixed the download size-mismatch error when downloading FUTO Swipe.
  • Fixed language layouts changing after an update, including Danish appearing as Welsh.
  • Fixed downloaded dictionaries not being used for predictions and swipe typing in some languages, including Icelandic.

Download

Downloads are available at OpenRepos.net or the OpenRepos app Storeman

Choose the RPM that matches your device: aarch64, armv7hl, or i486.
The new Jolla Phone uses the aarch64 package.

This is an independent community project and is not an official FUTO product.
This release was made and tested on the new Jolla Phone running Sailfish OS 5.2.0.17.

Ported to Sailfish OS with additional features by HtheB.

65 Likes

works well on xperia 10 iii, except i cannot get swipe/gestures to work at all. i installed a dictionary, made sure swipe typing was enabled, restarted maliit, etc. when i swipe, i see no trail and get no suggestions. everything else seems to work tho.
going back to okboard for now, looks cool tho!

1 Like

Using it right now, it’s fantastic! So configurable!great to have swipe back and working well. double tap space to get a full stop is also great. missing capitalisation after a new sentence though? Does it allow me to write cunt? Shit, fuck, bastards!

Yay, no stupid ios censorship here. Oh now it capitalised after a new sentence. I might have screwed up earlier.

Kudos, this is brilliant! How abut some emojis. :star_struck::heart_eyes::flexed_biceps::pirate_flag::partying_face::spoon::clinking_glasses::bottle_with_popping_cork:

Many thanks!

8 Likes

Well this is just the cat’s pajamas. Much appreciated!

I note the Emoji keyboard isn’t showing me the characters. Just blank boxes. This is both for the built -in and the downloadable. J2 on 5.2.0.17

2 Likes

Indeed it is the cat’s pajamas. Didn’t know what FUTO was before this, but it’s pretty cool. Can’t pretend it’s not an improvement over stock.

I do have an issue however - I can’t seem to activate the quick settings(?) by holding the “123” button. Holding the “⏎” key gets me emoji just fine, but holding “123” does nothing.

After a quick read through the settings it appeared to me I might be able to edit my keyboard layout away from QWERTY and back to Colemak in there (“Assign layouts visually from the keyboard: hold 123 and choose Edit layouts.”), however I can’t seem to get any menu when holding 123. So for now, I’ll have to stick with this Colemak keyboard or else learn to type again.

2 Likes

Glorious. Few things: Keyboard sound

Glorious. Few things: keyboard sound doesn’t respect the phone sound settings, it always makes sound. And every keyboard swipe vibrates all keys it passes over.

3 Likes

First off, awesome to see, nicely done.
A question about the FUTO name, tough, do you have the right to use it?

Right to modify and share modifications

Users must be allowed to modify the software they are running for their own use and have the right to redistribute it for non-commercial purposes. This does not include the right to strip out payment links or use trademarks in modified versions of software.

Taken from Source First - FUTO, emphasis mine.

EDIT: An additional point, FUTO do seem like well-intentioned guys. You might try to talk to them, and work to get this to become their first official product for SFOS. I think that would be nice.

2 Likes

Vety nice, thank you. I am also not able to open the settings from the keyboard directly. Another thing is that swyping doesn’t follow a dictionary or a language, i am getting strange words or the suggestions are all english. For example swyping ‘hallo’ gives me ‘hello’. But overall this keyboard works very well.

PS: Another thing i found is that i am not able to delete old entries from the clipboard manager.

PPS: Deletion of clipboard entries works, after reopening the clipboard manager the deleted entry is gone.

1 Like

That’s a good point. Not just for that reason (and not wishing to sound ungrateful), but I wonder if he might have been better to port a truly open source keyboard like HeliBoard:

3 Likes

It is unfortunate that FUTO is not open source. Their swipe model is, though!

1 Like

Whether it’s unfortunate or not depends on your viewpoint. Yes, it’d be nice to simply have the option of porting or modifying without any fuss, but I also respect their business model and think it’s a damn sight better than closed-source.

It is at least, less unethical.

1 Like

Legend!

Thank you for this app :folded_hands:

1 Like

Sounds pretty cool! But (as other mentioned before):

  • no chance to open settings while holding “123” / “abc”
  • no swipe
  • emojis are not visible
  • can’t switch to other keyboards when FUTO is selected

Will have an eye on this project for the next updates. Btw.: Installed on Jolla C2, 5.1.0.11.

4 Likes

I have submitted a bug report and potential fix to GitHub for the no swipe issue and no prediction item too :wink:

4 Likes

For me swype works, but its not useable since the suggestions are totally off( Swyping ‘are’ gives me ‘Adeste’). Emojis work for me, after installing an Emoji pack.

1 Like

Swipe slowly. It sounds silly but I swipe fast on iOS and it’s 99% responsive and does what I need. But on the Jolla 2026, I have to smoothly swipe for suggestions to work. When it does, it’s like 80% good (apparently it will get better as it learns the words we use… so just need to swipe slowly for now

2 Likes

I’m starting to guess swype only works on sos 5.1 and uninstall didn’t remove the app

Swiping works for me, but there is some goofiness if multiple languages are enabled. It seems to switch languages in the middle of swiping, thus leading to incorrect results.

1 Like