Find a file
KaKi87 30919ec940
Some checks are pending
Build APK / build (push) Waiting to run
Sign APKs with the Soul Browser release keystore.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 00:28:47 +01:00
.ci Update CI 2025-10-20 00:16:05 +01:00
.github Sign APKs with the Soul Browser release keystore. 2026-11-10 00:28:47 +01:00
common/src/org/futo/inputmethod Swipe library integration 2026-05-27 11:02:08 +00: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 Add keyboard action to toggle autocorrect (#4) 2026-09-18 18:11:26 +02:00
libs@be4362cf82 Update swipe library 2026-06-18 04:43:46 +03:00
native Fix beam search using wrong parent probability [#2157] 2026-07-27 17:02:09 +02:00
tests Add setting and fix caps after single-letter periods. 2026-09-18 17:16:07 +02:00
tools Treat Russian ie as a language long-press key 2026-08-24 16:45:43 +01:00
translations@8cd47ae043 Update translations 2026-06-22 08:47:49 +03:00
voiceinput-shared Update translation filter 2026-07-02 22:52:11 +03: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 Swipe library integration 2026-05-27 11:02:08 +00:00
build.gradle Sign APKs with the Soul Browser release keystore. 2026-11-10 00:28:47 +01: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 Swipe library integration 2026-05-27 11:02:08 +00:00
README.md Update contributing section 2026-08-28 02:57:47 +02: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.

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

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

Please do not submit AI-generated pull requests, as these tend to make the codebase more difficult to understand. Pull requests made with clear heavy use of AI may be closed without comment. Please also avoid using AI to write issues, and try to explain it in your own words instead.

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

APK signing

For official FUTO Keyboard versions, you can verify the APK's signing key fingerprint for integrity.

Signing key fingerprint for all versions except Google Play:

MD5: 3A:BB:71:C6:BB:E4:92:27:B1:E3:5D:81:01:48:6A:B0
SHA1: 5D:15:B3:6E:C9:6A:96:28:41:09:DD:62:93:0D:9C:39:9F:5F:06:43
SHA-256: 74:3F:AD:58:64:AB:C4:26:50:0B:2D:C2:C4:7C:8A:D3:24:CB:CD:16:03:3F:80:16:99:48:41:35:63:74:F9:95