An Android Input Method Engine (IME) that supports bilingual typing in Amharic (Ge'ez script) and English, built entirely with Jetpack Compose (Canvas-rendered keys) and Kotlin.
# Bilingual Amharic & English Keyboard
An Android Input Method Engine (IME) that supports bilingual typing in **Amharic (Ge'ez script)** and **English**, built entirely with **Jetpack Compose** (Canvas-rendered keys) and **Kotlin**. Features a **secure vault**, **word prediction**, **custom theming**, **on-device translation**, **clipboard manager**, and **voice dictation**.
| Keyboard (Amharic QWERTY) | Keyboard (English QWERTY) |
|:---:|:---:|
| | |
| Keyboard (Amharic QWERTY) DarkOrange | Keyboard (Amharic QWERTY) HighContrast |
| | |
## Features
- **Dual-language input** — Toggle between Amharic (Ge'ez syllabary) and English (QWERTY) via space swipe or dedicated key
- **Ge'ez syllabary** — Full 34-consonant × 7-vowel-order grid; tap a consonant to reveal vowel-modifier keys inline
- **Dynamic derivative keys** — Consonant tap replaces vowel keys with the corresponding series (ሀ, ሁ, ሂ, ሃ, …); labels update in-place without layout swap
- **Word prediction** — SQLite-backed via Room (`prediction_cache_db` v5) with an in-memory `LruCache(200)`; 106K English + 10K Amharic word asset dictionary
- **Secure vault** — AES-256-GCM encrypted credential storage (`androidx.security:security-crypto:1.1.0-alpha06`) with PIN autofill from the keyboard
- **Custom themes** — 15+ built-in keyboard themes, create and edit your own with a visual builder; import/export as JSON
- **Voice dictation** — Speech-to-text via `android.speech.SpeechRecognizer` with automatic locale switching (`en-US` / `am-ET`)
- **On-device translation** — Amharic ↔ English translation via `android.view.translation` API (API 31+) with auto-commit; accessible via the Toolbox strip (🌐 button on ActionBar)
- **Clipboard manager** — History tracking with inline panel; syncs with system clipboard
- **Rich text tools** — Case transformation, date/time insertion, greeting/thank-you templates
- **Plugin system** — Extendable settings plugins loaded via reflection (extensible architecture)
## Table of C …