
Your keyboard shouldn’t connect to the internet.
We are building a modern keyboard that respects your privacy and security. 100% offline and 100% private, the FUTO Keyboard is equipped with all of your favorite features including but not limited to swipe typing, offline voice input, smart autocorrect, theme selection, and predictive text.
The FUTO Keyboard costs $6.99 if purchased through FUTO Pay or $11.99 if purchased through the Google Play Store. Pay for it if you like it.
This guide will walk you through every aspect of the FUTO Keyboard, including important settings and options, various actions and how they can be used and accesed, basic controls and how they can be changed, best practices for migrating from other popular keyboards, how to submit a good bug report or feature request, and the present and future trajectory of the keyboard.
Settings: Every Important Setting and Option
The keyboard settings menu is categorized into the following sub-menus:
-
Languages & Models - The menu in which you add new languages as well as the dictionaries, voice input models, transformer models, and layouts associated with them
-
Keyboard & Typing - The menu in which you set your keyboard and typing preferences, such as the keyboard size and key behavior
-
Text Prediction - The menu in which you set your preferences for auto-correct and personalized suggestions
-
Voice Input - The menu in which you set your voice input preferences, such as input length and speech-to-text settings
-
Personal Dictionary - The menu in which you create your personal dictionary of words that the keyboard will remember and suggest
-
Theme - The menu in which you select your preferred theme for the keyboard
-
Help & Feedback - The menu in which you access the keyboard documentation portal, Discord server, Zulip chat, GitHub Issue tracker, and support email.
-
Developer Settings - The menu in which you can access additional settings that are tailored to developers
-
Custom Layouts - A guide on how to make custom layouts
Languages & Models
In this menu, you can manage languages, their resources (such as dictionaries), and active keyboard layouts.
Add language
Tap Add language, search for your language, and select the layout.
The application currently does not ship with a dictionary for most languages. You will need to manually download one by tapping the Explore link. See the video below:
Switch language
There are two ways you can switch languages:
- The globe icon in the action bar - tap for next, long-press for list
- The space-bar - long-pressing will open a list by default
You can customize this behavior. Some common customizations:
- Replace the emoji key with the globe icon. This is available in Settings -> Actions, or search "Language switch key"
- Swipe the space bar to switch languages. This is available in Settings -> Keyboard & Typing -> Long-Press Keys & Spacebar -> Spacebar Behavior, or search "Spacebar behavior"
Enable multilingual typing
You can get autocorrect and predictions for multiple languages simultaneously. Enable the Multilingual typing for two or more languages (e.g. English and German).
The languages and their layouts will remain as separate options in the language selector, but you will get predictions in multiple languages when using them, without needing to manually switch layouts.
For example, you can type "Guten Morgen everyonr" and it will autocorrect to "everyone". Likewise, you can swipe those words, no layout switching needed.
Voice input will use the model of your currently selected language. If it's a multilingual model, it will automatically detect and pick the language between your enabled multilingual languages. Note the default English model is English-only
Keyboard & Typing
The menu in which you set your keyboard and typing preferences, such as the keyboard size and key behavior.
Resizing Keyboard
You can change the height and width of the keyboard through our interactive resizing interface by clicking on Resize Keyboard.
Number Row
Toggles the number row in supported layouts.
Arrow Keys
Toggles a row of four arrow keys (up, down, left, right) in supported layouts.
Symbol Hints
In Long-Press Keys & Spacebar
Toggles the hints displayed on keys to indicate additional characters that are is accessible by long-pressing the key.
Layout of Long-Press Keys
In Long-Press Keys & Spacebar
You can switch around the order of long-press keys in supported layouts. For example, you can make numbers always the first key, or you can disable symbols.
Long-Press Duration
In Long-Press Keys & Spacebar
You can change the amount of time it takes for a key to be pressed to be considered a long-press. You can either drag the slider, or tap the number to bring up the keyboard for entering a specific value.
Backspace Behavior
In Long-Press Keys & Spacebar
You can switch between deleting single characters or deleting entire words when long-pressing or swiping the backspace key.
Spacebar Behavior
In Long-Press Keys & Spacebar
You can enable swiping the spacebar to change languages here.
Action and Suggestions Bar
Disabling this will hide the suggestion bar. If you do disable this, it's recommended you also disable autocorrect and type precisely since there's no easy way to work without it.
The suggestion bar may force show in certain cases, like when inline password suggestions need to be shown.
Inline Autofill
You can disable this to avoid seeing password manager autofill. Some apps also provide smart replies; disabling this will also disable those.
Automatic Spaces
You can set the keyboard to automatically insert spaces after typing punctuation and/or inserting suggestions, or set it to not automatically insert spaces after either of those, by going to Automatic spaces mode and choosing your preferred setting.
Swipe Typing
You can enable the ability to swipe from key to key to write words by toggling on Swipe Typing.
Emoji Suggestions
You can enable the ability to suggest emojis while you’re typing by toggling on Emoji Suggestions.
Auto-Correct
You can enable the ability to automatically correct mistyped words when pressing the spacebar or typing punctuation by toggling on Auto-correction.
Auto-Capitalization
You can enable the ability to automatically capitalize the first word of each sentence by toggling on Auto-capitalization. Note: auto-capitalization only works in text fields that require it (e.g. in messaging apps) but not in fields where it doesn’t require it (e.g. in a url search bar).
Double-Space Period
You can enable the ability to insert a period followed by a space by double-tapping the spacebar by toggling on Double-space period.
Popup on Keypress
You can enable the ability to make keys pop up on each key press by toggling on Popup on keypress.
Vibrate on Keypress
You can enable the ability for your device to vibrate on each key press by toggling on Vibrate on keypress.
Vibration Intensity
You can change the level of vibration intensity of key presses by dragging the slider to your desired number of milliseconds.
Sound on Keypress
You can enable the ability to make a sound on each key press by toggling on Sound on keypress.
Sound Volume
Text Prediction
The menu in which you set your preferences for auto-correct and personalized suggestions.
Transformer Language Model
You can have the keyboard predict the next word you’ll type or make more intelligent auto-corrections, which uses a pre-trained transformer language model based on publicly-available data sets, by toggling on Transformer LM. Note: This only currently works for English, but we are working on making it working for other languages.
Transformer Fine-Tuning
You can have the keyboard remember what you type and what suggestions you select, which trains the language model (while your phone is idle) to predict which words to suggest and auto-correct while you’re typing by toggling on Transformer fine-tuning. Note: This is your own personal language model and FUTO does not view or store any of your data.
Transformer Language Model Strength
You can make autocorrect behave more like the AOSP keyboard or more like the neural network by going to Advanced Parameters -> Transformer LM strength and dragging the slider to either a lower value (which will make autocorrect behavior more like the AOSP keyboard) or a higher value (which will make autocorrect more dependent on the neural network).
Auto-Correct Threshold
You can change the threshold of autocorrect to make autocorrect occur more or less often by going to Advanced Parameters -> Autocorrect Threshold and dragging the slider to either a lower value (which will make autocorrect occur more often but also miscorrect more often) or a higher value (which will make autocorrect occur less often but also miscorrect less often).
Word Blacklisting
You can blacklist word suggestions, which will prevent the keyboard from continuing to suggest blacklisted words, by going to Blacklisted Suggestions and adding words you’d like to blacklist.
Offensive Words
You can block offensive words, such as common cuss words, by going to Blacklisted Suggestions and toggling on Block offensive words. Note: Block offensive words is toggled on by default.
Auto-Correct
You can enable the ability to automatically correct mistyped words when pressing the spacebar or typing punctuation by toggling on Auto-correction.
Correction Suggestions
You can enable the ability to display suggested words while you’re typing by toggling on Show correction suggestions.
Word Suggestions
You can enable the ability to learn from your communications and typed data to improve suggestions by toggling on Personalized suggestions. Note: Toggling Personalized suggestions off also disables Transformer fine-tuning.
Voice Input
Built-In Voice Input
You have two options for voice input in FUTO Keyboard - either use the built-in voice input (recommended), or use one provided by an external app (on most devices, this will be Google's).
The toggle Disable built-in voice input will disable the built-in voice input.
Indication Sounds
Plays start/stop sound.
Verbose Progress
Currently has no effect.
Bluetooth Microphone
Will use bluetooth microphone if enabled.
Audio Focusing
Pauses videos/music when voice input is being used.
Symbol Suppression
By default, voice input will only transcribe basic text and punctuation. You can toggle off Suppressing symbols in order to unrestrict voice input from transcribing special characters (.e.g. @, $, or %). Note: This does not affect how voice input interprets literal words (e.g. “comma”, “period”).
Long-Form Voice Input
You can disable the default 30-second limit for voice input by toggling on Long-form voice input.
Note: The output quality may be degraded with long inputs (e.g. words may repeat)
Auto-Stop on Silence
You can have voice input automatically stop when silence is detected by toggling on Auto-stop on silence.
Note: If there is too much noise in the background, you may need to manually stop voice input regardless. Please also enable long-form voice input to prevent stopping after 30 seconds.
Theme
The menu in which you select your preferred theme for the keyboard.
Change Theme
You can select from a variety of themes for the keyboard. Custom themes will come eventually.
Key Borders
You can enable key borders by scrolling down to the bottom and toggling on Key borders.
Help & Feedback
The menu in which you access the keyboard wiki, Discord server, Zulip chat, GitHub Issue tracker, and support email.
Version Name
You can see the version name at the top of the menu.
Version Code
You can also see the version code at the top of the menu.
Developer Settings
You can activate Developer Settings by clicking on the Version Code eight times.
Documentation Portal
You can access the FUTO Keyboard Documentation Portal to familiarize yourself with every aspect of the keyboard, how to submit a good bug report or feature request, and the present and future trajectory of the keyboard, by clicking on Documentation portal (coming soon).
Discord Server
You can access the FUTO Discord Server, in which you can chat with a community of users about bug fixes, feature requests, beta testing, and other topics, by clicking on Discord Server.
Zulip Chat
You can access the FUTO Zulip Chat, in which you can chat with a community of users about a variety of topics regarding all of FUTO’s apps, by clicking FUTO Chat.
GitHub Issue Tracker
You can access the FUTO GitHub Issue Tracker, in which you can submit bug reports and feature requests, by clicking Public issue tracker.
User Support
You can email us with private feedback or requests for help at [email protected] by clicking on Email [email protected].
Developer Settings
The menu in which you can access additional settings that are tailored to developers. You can activate Developer Settings by clicking on the Version Code eight times.
Developer Mode
You can disable the Developer Settings menu by toggling off Developer mode. To re-able it, you need to once again go into the Help & Feedback menu and click on the Version Code eight times.
Update Reminders
You can disable reminders to update the keyboard by toggling on Disable all update reminders.
Touch-Typing Mode
If you remember the positioning of all keys on the keyboard, you can hide all of the keys in order to reduce AMOLED screen burn-in.
Migration Notice
If you dismiss automatic update reminders, you can un-dismiss them by toggling off Dismissed migration notice. Note: This is exclusive to the non-Play Store version of the keyboard.
Old Action Bar
You can enable the action bar that was in place in previous versions of the keyboard by toggling on Old action bar.
Crash Keyboard
You can intentionally crash the keyboard and send a crash report by clicking on Crash the app.
Layout List
You can search the list of all the keyboard layouts you have installed by clicking on Layout list.
Keyboard Paid Indication
You can display a notice on the menu screen indicating that you paid for the keyboard by toggling on Is paid.
Keyboard Payment Pending Indication
You can display a notice on the menu screen indicating that you haven’t yet paid for the keyboard by toggling on Is payment pending.
Show Notice
You can display the notice about paying for FUTO Keyboard on the settings menu by toggling on Force show notice. Note: The notice normally displays 30 days after you install the keyboard.
Reminder Time
If you dismissed the notice about paying for the keyboard with a set reminder time, you can reset the reminder time by toggling off Reminder Time.
Payment URL
You can set which url will open to pay for the keyboard in the Payment URL text field.
Custom Layouts
In the FUTO Keyboard, you can create custom keyboard layouts if the included ones are insufficient. These are defined in YAML.
Going to Custom Layouts Menu
The Custom Layouts menu is currently only accessible in Developer Settings.
To get started, enable Developer Settings within the FUTO Keyboard. This is done by going to the Help & Feedback menu and tapping the version code a eight times. Once you've done that, you should see Developer Settings in your FUTO Keyboard settings. Note: This is not related to Android's developer settings; the FUTO Keyboard has its own developer settings menu in its own settings.
Once in Developer Settings, you will see an option for Custom layouts, which will take you to the custom layouts menu. In there, you can create custom layouts.
Adding a Custom Layout
Tap Create new layout and you will be taken to the yaml editor. By default, it will be an alphabetical layout. You can tap in the test field below the editor to preview the current layout.
name: Example Alphabet Layout
rows:
- letters: a b c d e f g h i j
- letters: k l m n o p q r s '
- letters: t u v w x y z
You can modify the letters to construct a different layout. For example, this is how QWERTY can be defined:
name: QWERTY
rows:
- letters: q w e r t y u i o p
- letters: a s d f g h j k l
- letters: z x c v b n m
Features
This section will only touch on a few common features. Please see the Layout Specification for a full description of how to define layouts. You can also explore the FUTO Keyboard Layouts for examples of how layouts can be defined.
Custom Long-Press Keys
If you want to add custom letters to long-press keys, you will need to make sure your row is a list instead of a single line, and then you can write the extra keys like so:
name: "QWERTY"
rows:
# list with extra keys
- letters:
- [q, ą] # q is the key, and long-pressing will let you access ą
- [w, č]
- [e, ę, ė] # long-pressing will include ę and ė
# .. and so on
# single line with no extra keys
- letters: a s d f g h j k l
By default, long-press keys are still added automatically (numbers on the top row and symbols). If you don't want this, include this just below your layout name. You can also include it in specific rows or in specific keys (as described later).
attributes: { moreKeyMode: OnlyExplicit }
The term "moreKeys" refers to long-press keys.
Custom Bottom Row
You can customize the bottom row too. If you don't explicitly define it, the default is used.
name: QWERTY
rows:
- letters: q w e r t y u i o p
- letters: a s d f g h j k l
# Note: You need to specify where to put shift and delete when you're customizing bottom row
- letters: $shift z x c v b n m $delete
- bottom:
- $symbols
- "," # Comma and some other symbols need to be quoted since they can conflict with other meanings in yaml
- $action
- $space
- .
- $enter
For example, you can customize the long-press keys of the period key (though this is not the intended long-term solution for that).
- bottom:
- $symbols
- ","
- $action
- $space
# Using long-form definition of a key so that we can specify to disable default moreKeys for this key
- type: base
attributes: { moreKeyMode: OnlyExplicit }
spec: .
moreKeys: [a, b, c]
- $enter
Layout Errors
If you make a mistake in the definition of your layout, you will see the "error" layout with a button to view error details, and a button to switch layouts. You can view the error details to figure out where the problem is. Often it's something simple like a typo, or you need to quote a certain symbol, or incorrect syntax.
Using Custom Layouts
Once you're done editing your custom layout, hit Save and switch to a different app or different text field. You will still be in your normal layout, but if you long press the space bar or language button you will see your custom layout in the language list. Now you can daily-drive your custom layout.
Contributing
If you believe your layout should be included by default (e.g. because it is a common layout for your language), consider contributing it. See the README for more information on how to contribute.
Actions: What They Are, What They Do, and How They Can Be Accessed
Actions are shortcuts to specific features of the keyboard, each with a corresponding icon for easy access.
-
Currently Supported Actions - The actions that the keyboard currently supports and what they do
-
Accessing and Assigning Actions - How to access actions and assign their location on the keyboard
Currently Supported Actions
Actions are shortcuts to specific features of the keyboard, each with a corresponding icon for easy access. The actions currently supported are the following:
Emojis
Accesses the emoji selection menu.
Voice Input
Accesses voice-to-text.
Language Switch Key
Switches languages (by tapping) or opens language switch menu (by long-pressing). to the next language, you can long-press it to open the language switch menu.
Text Editor
Accesses the Text Editor.
Clipboard Manager
Accesses the Clipboard Manager.
Paste from Clipboard
Pastes text to the clipboard (sends CTRL+V command).
Cut to Clipboard
Cuts text into your clipboard (sends CTRL+X command).
Copy to Clipboard
Copies text into your clipboard (sends CTRL+C command).
Theme Switcher
Switches themes.
Keyboard Modes
Accesses the keyboard mode selection menu (Standard, One Hand, Split, or Float).
Select All
Selects all text input (sends CTRL+A command).
Undo
Undoes last text input (sends CTRL+Z command).
Redo
Redoes last text input (sends CTRL+Y command).
Arrow Up
Moves the cursor up.
Arrow Down
Moves the cursor down.
Arrow Left
Moves the cursor left.
Arrow Right
Moves the cursor right.
Debug Info
Shows info that helps resolve bugs (Editor Info, Keyboard State, Screen State Info, and Memory Use).
Settings
Accesses the settings menu.
Accessing and Assigning Actions
Actions can be accessed in the All Actions menu by pressing the ellipsis key (...) in the top left of the keyboard. The location of each action on the keyboard can be edited by clicking Edit Actions after navigating to the All Actions menu.
In the Edit Actions menu, you can drag and drop the actions to the following locations:
Action Key
This action will appear directly to the left of the Spacebar. You can only assign one key as the Action Key.
Pinned Action(s)
These actions will appear on the right side of the keyboard, directly below the Action Bar and directly above the Keyboard Layout.
Favorite Actions
These actions will appear in the Action Bar located at the top of the keyboard.
More Actions
These actions will appear in the All Actions menu, accessed by clicking the ellipsis key (...).
Hidden Actions
These actions will not appear anywhere on the keyboard.
Gestures: Basic Keyboard Gestures and How They Can Be Changed
There are basic gestures you should know about that will make your experience using the FUTO Keyboard seamless.
-
Spacebar Cursor Movement - Sliding the spacebar key to move the cursor
-
Backspace Highlight-to-Delete - Sliding the backspace key to delete the entire text field
-
?123 Key Symbol Selection - Sliding the ?123 key to select a symbol and auto-switch back to alphabet
-
Enter Key Action Shortcuts - Long-pressing the enter key to access key actions
-
Blacklisting Word Suggestions - Long-pressing a word suggestion to blacklist that word
Spacebar Cursor Movement
Slide Spacebar to Move Cursor
When you slide the spacebar left or right, it will move the cursor left or right.
If you’d prefer to change the spacebar behavior, you can do so by going to Settings -> Keyboard & Typing -> Long-Press Keys & Spacebar -> Spacebar Behavior. You can set the spacebar to swipe to move the cursor and long-press to switch the language, swipe to switch the language and long-press to move the cursor, or swipe and long-press only to move the cursor.
Backspace Key Highlight-to-Delete
Slide Backspace to Highlight and Delete Text
When you slide the backspace key to the left, it will highlight your selected amount of text and delete that selection.
If you’d prefer to change the backspace key behavior, you can do so by going to Settings -> Keyboard & Typing -> Long-Press Keys & Spacebar -> Backspace behavior when holding/swiping. You can set the backspace key to either delete individual characters or delete entire words.
?123 Key Symbol Selection
Slide ?123 Key to Type Symbol and Switch Back to Alphabet
When you slide the ?123 key to the right, the symbol menu will open, allowing you to select one symbol, then switch back to the alphabet after you select that symbol.
Enter Key Action Shortcuts
Long-Press Enter Key to Access Key Actions
If you hold down the Enter key, you can access key actions including undo, redo, switch language, text editor, clipboard, and emojis.
Blacklisting Word Suggestions
Long-Press Word Suggestion to Blacklist That Word
When a word suggestion appears in the suggestion bar that you don't want to appear in the suggestion bar again, you can blacklist that word by long-pressing it and pressing Blacklist.
Migration: Migrating From Other Popular Keyboards
It's important that you have a smooth transition to the FUTO Keyboard from other keyboards such as Gboard or SwiftKey. Below are some of the key settings to be aware of to facilitate your transition.
-
Gboard Migration - Key things to know when migrating from Gboard
-
SwiftKey Migration - Key things to know when migrating from SwiftKey
Gboard Migration
Automatically Add Spaces After Punctuation
If you don’t want spaces automatically added after punctuation, you can set the keyboard to not do so by going to Settings -> Keyboard & Typing -> Automatic spaces mode and choosing your preferred setting.
Importing Personal Dictionary
Importing your personal dictionary from Gboard is not yet supported but is in the cue for us to implement.
SwiftKey Migration
Switch Language by Swiping Spacebar
If you want to switch the language by swiping the spacebar, go to Settings -> Keyboard & Typing -> Long-Press Keys & Spacebar -> Spacebar Behavior.
Arrow Keys
You can show arrow keys by going to Settings -> Keyboard & Typing -> Show Arrow Keys.
Importing Personal Dictionary
Importing your personal dictionary from SwiftKey is not yet supported but is in the cue for us to implement.
Improvements: Bug Reports and Feature Requests
We review all bug reports and feature requests. We appreciate your time and effort in helping us improve your keyboard experience. Here are some best practices for reporting bugs and requesting features:
If you want to try more experimental builds, see Nightly Version.
How to Submit a Good Bug Report
We fix bugs as soon as possible to keep your keyboard experience seamless, and the more information you can give us about the issue you're experiencing, the easier it will be for us to fix.
An ideal bug report will include the following information:
- A detailed explanation of the bug you are reporting
- The version of the keyboard you are using, which you can find by going to Settings -> Help & Feedback
- A video of the bug being reproduced (or photos if you cannot provide a video)
- If it's an issue with a specific text field, the info provided by the Debug Info action, which you can enable by going to Settings -> Keyboard & Typing -> Edit Actions
The best way to report bug is either by submitting a ticket in our GitHub Issues Tracker or by sending us an email at [email protected].
How to Submit a Good Feature Request
We consider implementing feature requests to better your keyboard experience, and the more information you can give us about the feature you're requesting, the easier it will be for us to assess.
An ideal feature request will include the following information:
- A detailed proposal of the feature you are requesting
- The different use cases the proposed feature is applicable to
- Any references to similar features in existing keyboards that are comparable, ideally with a video of the feature being used (or photos if you cannot provide a video)
The best way to request a feature is either by submitting a ticket in our GitHub Issues Tracker or by sending us an email at [email protected].
Nightly Version (Dev Build)
We provide a nightly version of the keyboard as a faster release cycle. It will receive updates and improvements faster, but may be less stable.
If you're testing it, please make sure to let us know if you experience any instabilities. See How to Submit a Good Bug Report. For a more synchronous chat with the developer you can also join the FUTO Keyboard Discord or the Zulip chat.
You can download the nightly version at: https://keyboard.futo.org/nightly.apk. Like the standalone version, this won't automatically update, so you have to manually check for updates by tapping the "Check for updates manually" option in the keyboard settings. You can check for the current version here.
Automatic Updates with Obtainium
If you have Obtainium, you can try using this link to import it into Obtainium with automatic update checking.
Roadmap
We're always improving the keyboard. Our current short-term priorities are as follows:
- Adding input-related features common in other keyboards
- Improving personal dictionary and word learning
- Implementing a spellchecker
- Improving the performance of the app
- Improving swipe swipe typing
- Japanese IME support
- Fixing bugs and improving stability of the app
Mid-term:
- Improving behavior related to physical keyboards
- Improving autocorrect accuracy
- Adding custom theming
Long-term:
- Adavnced theming system with shareable themes
This roadmap is not set in stone, it's fluid and may change. This page was last updated August 1, 2025. If we forget to update it or you want to see something added, please open an issue!