Technical specifications
How CleverKeys works under the hood, feature by feature.
Implementation details, calibrated thresholds, code references, and test coverage. Each spec is paired with a user-facing wiki page.
Install, enable, and start typing.
First Time Setup - Technical Specification
Initial keyboard configuration flow including language pack download and preference initialization.
Installation - Technical Specification
CleverKeys distribution through F-Droid, GitHub, and Obtainium with per-ABI APK builds.
Swipe typing, autocorrect, emoji, special characters.
Autocorrect - Technical Specification
Adjacency-weighted dictionary scorer with structural guards (non-prose context, possessives, inflections), Damerau transpositions, and a rule-based tiebreak.
Emoji - Technical Specification
Native emoji search, font support filtering, and usage history
Next-Word Prediction — Technical Specification
Two-tier next-word generation (shipped static model + learned n-grams), tier gating, provenance, and the four suggestion-bar call-sites
Smart Punctuation - Technical Specification
Auto-space tracking, closing-punctuation space swallowing, and opening-punctuation leading-space suppression (SAS-1)
Special Characters - Technical Specification
Special character access through long-press popups, short swipe subkeys, and symbol keyboard layers.
Swipe Typing - Technical Specification
CTC and geometric routing, canonical display, and commit boundaries
User Dictionary - Technical Specification
The user dictionary system stores custom words with their original capitalization and applies this case to both tap and swipe predictions. T
8-direction swipes, circles, trackpoint mode.
Circle Gestures - Technical Specification
Planned feature for detecting circular finger movements to trigger undo/redo actions.
Cursor Navigation - Technical Specification
Spacebar-slider continuous cursor and discrete arrow-key navigation.
Full Trackpad Mode — Design Specification
Planned feature converting the entire keyboard surface into a virtual trackpad for cursor navigation. Design proposal in response to issue
Gesture System Overview - Technical Specification
Architectural overview of the multi-layered gesture recognition pipeline (short swipes, long swipes, circles, sliders) and the hasLeftStartingKey routing gatekeeper
Selection Delete - Technical Specification
Backspace swipe-and-hold joystick that selects text and deletes it on release.
Short Swipes - Technical Specification
Short swipe gesture detection for quick subkey access in 8 directions from any key.
Subkey Popover - Technical Specification
Hold-then-select popover of a key's eight subkey slots, with assign and edit screens
TrackPoint Mode - Technical Specification
Joystick-style cursor control activated by holding a navigation key.
Per-key actions, extra keys, timestamp keys, themes.
Command Palette - Technical Specification
Localized command search and assignment for custom gestures
Extra Keys - Technical Specification
Predefined key catalog, preference storage, responsive configuration and layout placement
Per-Key Actions — Technical Specification
Full short-swipe customization system covering all 8 directions per key with TEXT/COMMAND/KEY_EVENT/INTENT/TIMESTAMP/TEMPLATE action types and 200+ command registry
Quick Settings Tile — Technical Specification
KeyboardTileService quick-settings tile for fast keyboard switcher access
Themes - Technical Specification
Built-in theme catalog, the custom-theme (DIY) pipeline, and how every Theme Creator field reaches the renderer.
Timestamp Keys — Technical Specification
Customizable timestamp keys that insert formatted date/time strings via SimpleDateFormat patterns
Custom layouts, multi-language, profiles, language packs.
Adding Layouts - Technical Specification
The layout management system handles installing, configuring, and organizing keyboard layouts from built-in sources, language packs, and cus
Greek Language Support — Design Specification
Plan for Greek (el) word suggestions + dictionary via wordfreq, an "Import dictionary from file" feature, and (phase 2) swipe via transliteration. Issue
Language Packs - Technical Specification
Offline dictionary pack import, bounded validation, and model eligibility
Multi-Language Input - Technical Specification
Primary and secondary dictionaries, auto-detection, and per-layout language binding
Switching Layouts - Technical Specification
Layout cycling, the narrow/wide layout selection, and language changes on bound layouts
Appearance, input behavior, haptics, accessibility.
Appearance Settings - Technical Specification
| Fact | Source File | Line(s) | Value |
Haptics Settings - Technical Specification
Per-event haptic feedback via VibratorCompat — system performHapticFeedback by default, opt-in custom vibration duration, and the
Input Behavior Settings - Technical Specification
The Input Behavior section owns text-processing behavior (capitalization, smart punctuation,
Settings System Architecture - Technical Specification
Architectural overview of the CleverKeys settings system — Defaults singleton, Config, ConfigurationManager, and Material 3 Compose UI.
History, shortcuts, text selection.
Clipboard History - Technical Specification
Persistent clipboard tabs, size filters, persistent selection with bulk actions, and capture catch-up
Clipboard Privacy - Technical Specification
Password manager exclusion, Android 13+ IS_SENSITIVE handling, and media gating for the clipboard history system.
Private Copy — Technical Specification
Copy selected text into CleverKeys' private clipboard history without ever touching the Android system clipboard
Text Selection - Technical Specification
Text selection integrates with Selection-Delete mode, TrackPoint navigation, and modifier key shortcuts to provide efficient text selection
URL Sanitization — Technical Specification
ClearURLs-format ruleset engine for stripping tracking parameters from clipboard URLs. Provider-aware, regex-based, with optional system-clipboard write-back and custom-rules SAF loader.