WM Keyboard

com.wasimaster.wmkeyboard
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

First release: Sep 14, 2026, 6 total releases.

Most recent release: Sep 25, 2026.

Website Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Sep 25, 2026 0.5.12
    <details open> <summary><h2>What's new in 0.5.12</h2></summary> Backups go to any number of places and keep your devices in sync, the keyboard is quicker under your fingers, T9 keypads reach over 300 languages, and the voice, translate, clipboard and sticker tools each pick up a feature people asked for. ### Backup and sync - **Back up to any number of locations at once**: a folder, WebDAV, S3, FTP,
    More…
    SFTP, SMB, a Git repository, an IMAP mailbox, Google Drive (hidden app data or a folder you can see), Dropbox and OneDrive, with presets for Nextcloud, ownCloud and the common S3 hosts. Each location has its own sign-in, a connection test and its status on its card. - **Restore straight from a location**: pick any automatic backup there, from this device or another. - **Sync settings between devices** through those locations, or over Tailscale, and keep the toolbar or the layouts different on each device ([#308](https://github.com/wasi-master/wmkeyboard/issues/308)). - An offline run no longer asks you to sign in again, OneDrive stays signed in past 90 days, and big backups upload to Drive and OneDrive in pieces. ### Speed - **Typing does less work per key.** A keystroke no longer lays out the whole keyboard window, every key draws on a layer of its own, the long-press popup is built before the hold fires, and suggestions run one pass at a time instead of one per core ([#313](https://github.com/wasi-master/wmkeyboard/issues/313)). - **Less memory**: layouts load when used and the big word indexes are packed ([#296](https://github.com/wasi-master/wmkeyboard/issues/296)). - **Less on the main thread while you type**: autocorrect works out a word's correction as it is typed instead of on the space, Chinese and Japanese conversion candidates decode in the background, and the clipboard history and the learned words save off the main thread. The typing-path code is also kept small enough for Android to compile ahead of time, and the keyboard starts without waking the download scheduler. - **Settings respond faster**: a change redraws only its own row, not the whole screen. - **Accessibility › Settings app › Screen transitions** turns off the flying row-to-heading animation, which is what makes settings lag on a slower phone. ### Voice - **Dictation listens for your own words**: names and jargon the keyboard has learned come back spelled your way ([#305](https://github.com/wasi-master/wmkeyboard/issues/305)). - **Dictate into the keyboard's own fields**: the AI chat, the searches, Find and replace, the clip editor and the rest carry a mic on their strip ([#353](https://github.com/wasi-master/wmkeyboard/issues/353)). - The mic stops looking open the moment it stops hearing, so no words are lost talking into a finished recording ([#315](https://github.com/wasi-master/wmkeyboard/issues/315)). ### Translate, AI and look-ups - **DeepL Translate and DeepL Write** with your own API key or a proxy ([#331](https://github.com/wasi-master/wmkeyboard/issues/331)). - **On-device language menus list what you downloaded first**, and keep the list short ([#324](https://github.com/wasi-master/wmkeyboard/issues/324)). On Google Play, translation is on the device by default. - **Ask the AI about a passage**: Wikipedia, Dictionary, Vocabulary and Grammar check hand selected text to the AI chat, with Explain simply, Summarise and Hard words to start from ([#348](https://github.com/wasi-master/wmkeyboard/issues/348), [#352](https://github.com/wasi-master/wmkeyboard/issues/352)). - **Synonyms from the held-word menu** on the suggestion strip ([#321](https://github.com/wasi-master/wmkeyboard/issues/321)). The Dictionary tool asks a chain of sources, installed vocabulary packs and Wiktionary among them, instead of one that was often down. - **Search by photo** from the camera tool or the image search panel, with Lens, a search site, or the share sheet ([#349](https://github.com/wasi-master/wmkeyboard/issues/349)). Web and image search keep their results until you start a new search ([#347](https://github.com/wasi-master/wmkeyboard/issues/347)). - **The text scanner reads Bengali, Arabic, Cyrillic, CJK and more** with Tesseract, in the full build ([#306](https://github.com/wasi-master/wmkeyboard/issues/306)). ### Layouts and languages - **T9 keypads for over 300 languages**, laid out the way the phone standard has them, Indic, Southeast Asian and tone-marked scripts included, so switching language keeps you on a keypad ([#332](https://github.com/wasi-master/wmkeyboard/issues/332)). Four languages that downloaded a word list in the wrong script get the right one. - **Layouts are picked from cards that preview the real keyboard** in your theme. - **The 🌐 key sits in the same place on every layout** ([#310](https://github.com/wasi-master/wmkeyboard/issues/310)), and can go back to the last language like Alt+Tab ([#311](https://github.com/wasi-master/wmkeyboard/issues/311)). - **Hold a number-row digit for the other numeral system**, 0-9 on an Arabic keyboard and the other way round ([#309](https://github.com/wasi-master/wmkeyboard/issues/309)). - **Japanese**: edit a key's flick directions, a key that doubles as 小゛゜ while composing, and a full-width space ([#339](https://github.com/wasi-master/wmkeyboard/issues/339), [#340](https://github.com/wasi-master/wmkeyboard/issues/340), [#341](https://github.com/wasi-master/wmkeyboard/issues/341)). - **Keyman keyboards type what their rules say**, keep every layer they define, and fall back to a checked copy of the rules when keyman.com does not answer. - A key map for Avro and Hindi phonetic on the language screen. - **Bangla**: the downloaded word list is kept whole instead of stopping at ব, so "sorasori" gives সরাসরি again, and a new "Correct to dictionary words" switch stops space turning a typed reading into a sound-alike word. Avro's q types ক, and 145 romanized spellings that read worse than Avro's own were dropped or fixed ([#77](https://github.com/wasi-master/wmkeyboard/discussions/77)). - A spacebar flick moves one language at a time, and the language name lingers for less time after it. - An Arabic or Hebrew phone language no longer mirrors the keyboard ([#336](https://github.com/wasi-master/wmkeyboard/issues/336)), and an English auto-shift no longer carries onto Arabic. ### Typing - **Brackets can close themselves** ([#319](https://github.com/wasi-master/wmkeyboard/issues/319)), and a closing bracket wraps a selection too ([#338](https://github.com/wasi-master/wmkeyboard/issues/338)). - **Hyphenated words compose whole**: "well-pai" completes to "well-paid". - **Glide**: a loop is the one way to draw a doubled letter, while a pause or a wiggle marks a letter you mean, so write, wire and wrote come apart ([#337](https://github.com/wasi-master/wmkeyboard/issues/337)). A word drawn in full beats a guess ([#317](https://github.com/wasi-master/wmkeyboard/issues/317)), leaving Automatic resets what it had learned ([#316](https://github.com/wasi-master/wmkeyboard/issues/316)), word-list stutters like "n-no" stay off the strip ([#304](https://github.com/wasi-master/wmkeyboard/issues/304)), and the number of shapes kept per word is a setting ([#326](https://github.com/wasi-master/wmkeyboard/issues/326)). - **Up-flick for a capital, a 🌐 typing guard and 🌐-drag shortcuts**, all off by default. Dragging from shift shows the capitals and lights the key ([#345](https://github.com/wasi-master/wmkeyboard/issues/345)). - **Trackpad magnifier**: a bubble over the caret while the trackpad or the spacebar moves it ([#303](https://github.com/wasi-master/wmkeyboard/discussions/303)). - Holding a shifted Enter offers the field's Send or Search action. - **Hold enter for emoji**, for a bottom row with no emoji key, and a key action that switches straight to another keyboard app ([#354](https://github.com/wasi-master/wmkeyboard/issues/354)). - No automatic space after the dot inside an email address, and URL fields keep the comma key. ### Clipboard and stickers - **Undo after deleting a clip** ([#327](https://github.com/wasi-master/wmkeyboard/issues/327)), and a switch to turn off swipe-to-delete ([#344](https://github.com/wasi-master/wmkeyboard/issues/344)). - Clip card options, a per-clip length limit, and rounded keyboard corners. - **Your own stickers are offered as you type** a title, keyword or emoji, on a sticker row of their own ([#329](https://github.com/wasi-master/wmkeyboard/issues/329)). ### Tools - **The app launcher opens apps floating or in split screen**, and pairs two apps side by side, in ColorOS's floating window too. - **Hide a tool from the toolbox** without turning it off. - The symbol row: hold an entry for a menu ([#323](https://github.com/wasi-master/wmkeyboard/issues/323)). - An ask-first chip on the strip shows its whole question, and holding it opens the setting ([#312](https://github.com/wasi-master/wmkeyboard/issues/312)). - A held Trackpad tool no longer hides the toolbox while you customize it ([#320](https://github.com/wasi-master/wmkeyboard/issues/320)). ### Themes and settings - **Any theme can follow the wallpaper colours.** An imported FlorisBoard theme moves with the wallpaper the way FlorisBoard draws it, and any other theme can switch it on, keeping each colour's lightness so it stays legible. - **Import Gboard themes and Rboard packs** from a ZIP, or browse Rboard's collection in the GitHub and F-Droid builds. - **Pick the app's own language** in About ([#322](https://github.com/wasi-master/wmkeyboard/issues/322)). - An icon on every setting row, and an Icons in settings switch for plain rows. - Motion across the keyboard and the settings app: panels fade in, layer changes ease in, and the emoji tabs switch in one smooth step. ### Automation and privacy - **Let Tasker, adb and other apps control the keyboard**: switch layout or language, back up and more, behind a master switch and one switch per action, all off by default. Typing text is left out of the Play build. - **Builds without the internet permission**: every network feature steps aside cleanly ([#292](https://github.com/wasi-master/wmkeyboard/issues/292)). - One-time camera and mic grants work, instead of sending you to Settings ([#351](https://github.com/wasi-master/wmkeyboard/issues/351)). ### Fixes - **Bottom padding**: no empty band above three-button navigation on Android 15, gesture navigation keeps its padding on ColorOS 15, and a reset returns it to automatic ([#343](https://github.com/wasi-master/wmkeyboard/issues/343)). - A floating keyboard stays put after a drag and while resizing ([#342](https://github.com/wasi-master/wmkeyboard/issues/342)). - Tool panels can grow the keyboard again, so the AI chat and Translate are not squeezed. - Landscape: tool panels give way to the keys, and space swipes stay swipes ([#333](https://github.com/wasi-master/wmkeyboard/issues/333)). - No full-screen editor on tablets and unfolded foldables. - On a TV the keyboard is a floating card, like Gboard's. - KDE Connect says when the computer cannot do something, and an unpair always reaches the other device. </details> ## Download There are two choices to make, and the second one is easy. **full or lite?** **full** is the whole keyboard. **lite** leaves out ML Kit and the on-device models (handwriting, OCR, document scanning, Whisper voice input and the local LLM) for a far smaller download. **Which languages?** This is about the words the app *shows* you, on its settings screens and its panels. **all** has them in 48 languages besides English. **English** has English alone and is around 41 MB smaller. What you can *type* is identical: every layout and every dictionary is in both. You can swap one for the other later without uninstalling or losing a setting. Almost every phone sold since 2017 takes an **arm64-v8a** build, so start here: | arm64-v8a | all languages | English only | |:---|:---|:---| | **⭐ full** | **[132 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-arm64-v8a.apk)** | **[86 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-arm64-v8a.apk)** | | **lite** | [58 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-intl-arm64-v8a.apk) | [12 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-en-arm64-v8a.apk) | <details> <summary><b>Other architectures</b> (older 32-bit phones, emulators, ChromeOS, or if the above refuses to install)</summary> | Architecture | full · all | full · English | lite · all | lite · English | |:---|:---|:---|:---|:---| | armeabi-v7a<br><sub>Older 32-bit phones and watches</sub> | [96 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-armeabi-v7a.apk) | [50 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-armeabi-v7a.apk) | [58 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-intl-armeabi-v7a.apk) | [12 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-en-armeabi-v7a.apk) | | x86_64<br><sub>Emulators, ChromeOS, x86 tablets</sub> | [143 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-x86_64.apk) | [96 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-x86_64.apk) | [58 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-intl-x86_64.apk) | [12 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-en-x86_64.apk) | | universal<br><sub>All three in one file. Only if the others refuse to install</sub> | [296 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-universal.apk) | [249 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-universal.apk) | [58 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-intl-universal.apk) | [12 MB](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-en-universal.apk) | </details> <details> <summary><b>Checksums, R8 mappings and native symbols</b></summary> For verifying a download, and for reading a crash report from these APKs. | File | Size | What it is | |:---|:---|:---| | [`SHA256SUMS.txt`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/SHA256SUMS.txt) | 3 KB | Checksums for everything above | | [`wmkeyboard-0.5.12-vc25-fdroid.apk`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-fdroid.apk) | 57 MB | The F-Droid build, **lite · all languages**. F-Droid rebuilds it from source and publishes it only if the two match, so it is the same APK F-Droid serves, byte for byte. Installs over an F-Droid install from 0.5.10 on | | [`wmkeyboard-0.5.12-vc25-full-intl-mapping.txt.gz`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-mapping.txt.gz) | 15 MB | R8 mapping, **full · all languages**. Retraces a stack trace | | [`wmkeyboard-0.5.12-vc25-full-en-mapping.txt.gz`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-mapping.txt.gz) | 15 MB | R8 mapping, **full · English** | | [`wmkeyboard-0.5.12-vc25-lite-intl-mapping.txt.gz`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-intl-mapping.txt.gz) | 12 MB | R8 mapping, **lite · all languages** | | [`wmkeyboard-0.5.12-vc25-lite-en-mapping.txt.gz`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-lite-en-mapping.txt.gz) | 12 MB | R8 mapping, **lite · English** | | [`wmkeyboard-0.5.12-vc25-play-mapping.txt.gz`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-play-mapping.txt.gz) | 15 MB | R8 mapping, **Play build**. The Play channel flags change what R8 renames, so this is the only one that reads a crash from a Play install | | [`wmkeyboard-0.5.12-vc25-full-intl-native-symbols.zip`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-intl-native-symbols.zip) | 18 KB | Native debug symbols, **full · all languages** | | [`wmkeyboard-0.5.12-vc25-full-en-native-symbols.zip`](https://github.com/wasi-master/wmkeyboard/releases/download/v0.5.12/wmkeyboard-0.5.12-vc25-full-en-native-symbols.zip) | 18 KB | Native debug symbols, **full · English** | Verify a download before installing it: ```sh sha256sum -c SHA256SUMS.txt --ignore-missing ``` Retrace a crash with the mapping from the same build and version. The flavour has to match on both axes, because R8 renames the two language builds independently: ```sh gunzip -k wmkeyboard-0.5.12-vc25-full-intl-mapping.txt.gz retrace wmkeyboard-0.5.12-vc25-full-intl-mapping.txt stacktrace.txt ``` A crash from the Play build takes `wmkeyboard-0.5.12-vc25-play-mapping.txt.gz` instead: that build is compiled with different flags, so R8 renames it differently and none of the four above fit it. Or paste the crash into a bug report and let the [retrace workflow](https://github.com/wasi-master/wmkeyboard/blob/main/.github/workflows/retrace.yml) do all of this for you — it reads the `version:` line, fetches the matching mapping from this release, and comments the retraced trace on the issue. </details> 177 commits since [0.5.11](https://github.com/wasi-master/wmkeyboard/releases/tag/v0.5.11). [See every one](https://github.com/wasi-master/wmkeyboard/compare/v0.5.11...v0.5.12).
  • Sep 23, 2026 0.5.11
  • Sep 22, 2026 0.5.10
  • Sep 19, 2026 0.5.9
  • Sep 16, 2026 0.5.8
  • Sep 14, 2026 0.5.7