A KOReader plugin for Android that replaces KOReader's built-in virtual keyboard with the system IME (your default Android keyboard).
Android only — this plugin does nothing on Kindle, Kobo, or other non-Android devices.
Experimental — tested on Android with KOReader. Behaviour may vary across devices, Android versions, KOReader versions, and keyboard apps.
- Replaces KOReader's built-in keyboard with your Android system keyboard
- Predictive text suggestions through the Android IME
- Autocorrection support
- Improved compatibility with Microsoft SwiftKey
- Basic composing-text support used by modern Android keyboards
- Full text input including backspace
- Minimal KOBoard UI under Tools → KOBoard with an enable/disable toggle
- Update checker with optional background notifications
- Dispatcher actions for automation
Input is routed through a file-based bridge between the Android IME and KOReader. Basic typing, backspace, composing text, suggestions, and autocorrection are supported, but selection and cursor movement may vary across keyboard apps. Swipe-to-select and swipe-to-delete are not supported.
- Download
koboard.koplugin.zipfrom the latest release and unzip it, or clone this repo. - Copy the
koboard.kopluginfolder to/sdcard/koreader/plugins/on your device. - Restart KOReader.
- Enable the plugin from the KOBoard UI under Tools → KOBoard.
Once enabled, KOBoard activates automatically whenever a text field is opened. To temporarily use KOReader's built-in keyboard, open Tools → KOBoard and turn Enable KOBoard off.
KOBoard includes controls under Tools → KOBoard:
- Enable KOBoard turns the Android keyboard bridge on or off.
- Notify on wake when update available controls background update checks.
- Installed version: vX.Y.Z checks GitHub releases for a newer version.
KOBoard also registers dispatcher actions: koboard_enable, koboard_disable, and koboard_toggle.
KOBoard embeds a small compiled Java component loaded at runtime with DexClassLoader. It registers a custom InputConnection with Android's InputMethodManager. Input operations are written to a file, which KOReader polls and forwards to the active VirtualKeyboard instance.
Requirements: Android SDK (android.jar for API 34), a JDK, and d8.
javac -cp /path/to/android.jar -d build/android/classes android_src/org/koreader/koboard/*.java
d8 --output build/android/dex build/android/classes/org/koreader/koboard/*.class
base64 -i build/android/dex/classes.dex | tr -d '\n' > build/koboard_ic.dex.b64Replace the DEX_B64 string in koboard.koplugin/main.lua with the contents of build/koboard_ic.dex.b64, then rebuild koboard.koplugin.zip.
MIT