keyjawn --help

Common questions, bug reporting, and known limitations.

cat faq.txt

How do I install KeyJawn?
Download the APK from GitHub releases, install it via ADB or by opening it on your phone, then enable it in Settings > System > Languages & input > On-screen keyboard. Full walkthrough in the manual.
Why don't keys work in my browser terminal?
Some web-based terminals (like Cockpit's shell or browser SSH clients) use JavaScript to capture keyboard events. Android's commitText method doesn't trigger the same key events as physical keypresses. This is a known Android limitation -- KeyJawn sends proper key events where possible, but some WebView-based terminals only respond to commitText. Terminal emulator apps like Termux and JuiceSSH handle key events correctly.
How do I set up SCP upload?
Open KeyJawn settings, add a host with hostname, port, username, password, and remote upload directory. Then tap the upload button in the extra row, pick a photo, and KeyJawn handles the rest. Details in the SCP upload section of the manual.
Can I use this with Termux?
Yes. KeyJawn works with any app that accepts keyboard input. Termux, JuiceSSH, ConnectBot, and any other terminal emulator will work. The terminal key row (Esc, Tab, Ctrl, arrows) is designed for exactly this.
Is my SSH password stored securely?
Yes. SSH credentials are encrypted using AndroidX EncryptedSharedPreferences with AES-256 encryption. The keys are stored in the Android Keystore, which is hardware-backed on most modern devices.
Why is autocorrect off by default?
Autocorrect uses setComposingText, which breaks web-based terminals and many SSH clients. In a shell, autocorrect turning git into got is worse than having no autocorrect at all. Long-press the spacebar to enable it per app -- turn it on for Slack, keep it off for Termux.
Will there be an iOS version?
Not planned. iOS doesn't allow third-party keyboards to send key events (like Escape or Ctrl sequences) the way Android does. The level of system integration KeyJawn needs isn't possible on iOS.
Is this open source?
Yes. MIT license. Full source at github.com/jamditis/keyjawn. Both the lite and full versions are built from the same codebase.

report --bug

Found a problem? File an issue on GitHub with the following info:

  • Your device model and Android version
  • The app you were typing in (Termux, Chrome, Slack, etc.)
  • What happened vs. what you expected
  • Steps to reproduce, if possible
Open an issue on GitHub

cat known-issues.txt

No swipe-to-type

Gesture typing (sliding your finger across keys to spell words) requires Google's proprietary gesture decoder library. KeyJawn doesn't include it because it's closed-source and would add significant APK size. Swipe gestures in KeyJawn are for actions (delete word, space, layer switch), not word input.

Basic autocorrect only

KeyJawn's autocorrect handles simple corrections but doesn't include word prediction, next-word suggestions, or a suggestions bar. This is intentional -- the keyboard is built for terminal use where autocorrect is usually harmful.

SCP upload is full version only

SCP upload requires the JSch library and network permissions. To keep the lite version permission-free, SCP is exclusive to the full version.

WebView terminal compatibility

Some browser-based terminals don't respond to Android key events the way native terminal apps do. If keys like Esc or Tab don't work in a web terminal, the issue is usually on the web app's side, not KeyJawn's. Native terminal apps (Termux, JuiceSSH) work reliably.

contact

GitHub Issues is the best way to report bugs or request features. All issues are tracked publicly.