[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 across 21 available languages

  • 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
  • 17 keyboard 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

  • 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

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.16.

Ported to Sailfish OS with additional features by HtheB.

47 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!

6 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.

1 Like

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.

2 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.

1 Like

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:

2 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.