FUTO Keyboard
  • Java 39.8%
  • C++ 30.6%
  • Kotlin 18.3%
  • C 10.8%
  • CMake 0.3%
  • Other 0.1%
Find a file
2026-05-05 11:22:08 +03:00
.ci Update CI 2025-10-20 00:16:05 +01:00
.github/ISSUE_TEMPLATE fix: typo 2025-06-19 20:37:54 +02:00
common/src/org/futo/inputmethod Separate ASCII emojis with spaces 2025-10-14 19:12:25 +01:00
dictionaries Update LatinIME to comply with Android's inclusive language guidance 2020-08-12 13:07:02 +02:00
gradle/wrapper Update AGP, Gradle, CI 2025-07-20 05:57:51 +03:00
java Fix search menu constantly recreating text field 2026-05-05 11:22:08 +03:00
libs@12e6a93490 Update rime to v1.16.1 2026-04-14 05:04:04 +03:00
native Add NUM_RESULTS 2025-12-19 23:55:48 +02:00
tests Fix Japanese language switch key issue 2026-04-16 16:16:37 +03:00
tools Update hi__Latn texts 2026-04-30 16:09:09 +03:00
translations@f2b58d1d4d Update translations 2025-12-21 21:04:00 +02:00
voiceinput-shared Implement voice input model loading error screen 2025-10-08 21:07:22 +01:00
.clang-tidy Fix some linter warnings 2024-05-16 17:18:08 -05:00
.gitignore Add KeyboardTextsTable.java to gitignore 2026-04-06 19:19:03 +03:00
.gitlab-ci.yml Add signingReport to CI 2025-11-28 19:24:33 +02:00
.gitmodules Add res-large for large resources 2025-12-20 00:49:51 +02:00
build.gradle Update navigation-compose and compose-bom to resolve a recomposition loop 2026-04-16 19:52:32 +03:00
gradle.properties Port 20 layouts to new system and fix some inconsistencies 2024-09-18 18:47:04 +03:00
gradlew Initial working build of fork 2023-07-06 21:57:49 +03:00
gradlew.bat Initial working build of fork 2023-07-06 21:57:49 +03:00
LICENSE.md Update LICENSE.md 2024-10-14 13:29:15 +03:00
lint.xml Update layout docs, resolve some bugs 2024-10-18 23:32:12 +03:00
NOTICE Add license 2023-08-15 19:44:22 +03:00
proguard-rules.pro Update libraries, remove unused pocketfft 2025-10-01 22:54:09 +01:00
README.md Add translation link to README 2025-07-23 12:01:26 +03:00
sendZulipMessage.sh Add webhook to CI and update image version 2023-08-31 23:53:30 +03:00
settings.gradle Initial voice input implementation 2023-08-27 19:08:44 +03:00
setUpPropertiesCI.sh Add crash reporting file to CI 2023-08-31 22:48:35 +03:00
syncTranslations.sh Update syncTranslations 2025-12-20 01:35:44 +02:00
uploadNightly.sh Fix uncached download URL for nightly 2025-03-20 21:13:13 -05:00
uploadNightlyBranch.sh Update CI 2025-07-03 00:24:10 +03:00

FUTO Keyboard

The goal is to make a good modern keyboard that stays offline and doesn't spy on you. This keyboard is a fork of LatinIME, The Android Open-Source Keyboard, with significant changes made to it.

Check out the FUTO Keyboard website for downloads and more information.

The code is licensed under the FUTO Source First License 1.1.

Issue tracking and contributing

Please check the GitHub repository to report issues: https://github.com/futo-org/android-keyboard/

The source code is hosted on our internal GitLab and mirrored to GitHub. As registration is closed on our internal GitLab, we use GitHub instead for issues and pull requests.

Due to custom license, pull requests to this repository require signing a CLA which you can do after opening a PR. Contributions to the layouts repo don't require CLA as they're Apache-2.0

If you want to help translate the app, please do so via our Pontoon instance: https://i18n-keyboard.futo.org/

Layouts

If you want to contribute layouts, check out the layouts repo.

Building

When cloning the repository, you must perform a recursive clone to fetch all dependencies:

git clone --recursive https://gitlab.futo.org/keyboard/latinime.git

If you forgot to specify recursive clone, use this to fetch submodules:

git submodule update --init --recursive

You can then open the project in Android Studio and build it that way, or use gradle commands:

./gradlew assembleUnstableDebug
./gradlew assembleStableRelease