LeanType combines a lightweight, privacy-focused keyboard foundation with cutting-edge productivity tools: Multi-Provider Cloud & Offline AI, On-Device Whisper Voice Typing, Handwriting Recognition, Dual-Engine In-Keyboard Translation, Rich Text Utilities, and Deep UI Customization.
| Section | Description |
|---|---|
| 🆕 Summary of New Features | Complete matrix of all features & settings locations |
| 🤖 Multi-Provider Cloud AI | Google Gemini, Groq, and OpenAI-compatible inference |
| 🧠 Custom AI Keys & Keywords | 10 custom toolbar prompt keys, personas, and themed capsules |
| 🛡️ Offline Neural Proofreading (GGUF) | 100% on-device private LLM execution via llama.cpp |
| 🌐 Dual-Engine In-Keyboard Translation | AI Translation vs Google Translation Plugin with auto-fallback |
| 🎙️ On-Device Whisper Voice Typing | Fast speech-to-text with quantized multilingual Whisper models |
| ✍️ Handwriting Input | Draw letters directly on a handwriting canvas (ML Kit) |
| 🧭 Dedicated Text Editing Panel | Gboard-style precision DPAD arrow navigation & selection mode |
| 📐 Smart Auto-Spanning Toolbar | Symmetrical dynamic toolbar key expansion across screen widths |
| 🖱️ Touchpad Mode & Gestures | Spacebar swipe gesture & full-screen laptop-style touchpad |
| 🪟 Native IME Floating & Resizable Keyboard | Touch-passthrough, bottom dock bar, and zero dead space floating window |
| ⌨️ Dual Toolbar & Split Suggestions | Split toolbar actions and word suggestions into separate rows |
| 📝 Text Expander | Shortcut expansion with dynamic template placeholders |
| 📋 Searchable Clipboard, Editing & Gestures | Real-time search, swipe-to-edit inline, swipe-to-delete undo, pinned folding, and sliding select |
| 📸 Screenshot Suggestions & Capture | Recent screenshot suggestion strip and clipboard storage |
| 🔎 Emoji Search | Search for emojis by keyword with an Emoji Dictionary |
| 🚫 Blocked Words & Regex Blacklist | Filter out offensive or unwanted words using custom regex patterns |
| ✉️ Privacy-First OTP Auto-Fill | Notification-based OTP extraction from messaging apps without SMS permissions |
| 📚 Adaptive Personal Dictionary Learning | Customizable repeat learning thresholds & session word boosting |
| 👆 Gesture / Glide Typing | Smooth swipe typing powered by native C++ library |
| ⌨️ Direct Switch Target IME | Switch directly to a specific target keyboard with keycode -10076 |
| 🎨 Custom Layout Profiles | Save up to 5 custom layout profiles with persistent slot tracking |
| 🔄 In-App Update Checker & Release Viewer | Direct GitHub release checks and 1-tap release viewer (standard flavor) |
| 📦 Flavor Architecture & Privacy | Breakdown of Standard and Offline flavors |
| 📷 Offline Camera OCR & Screenshot Extraction | In-keyboard camera viewfinder, automated screenshot extraction pill, and advanced formatting cleaners |
| 🔢 Inline Math Calculation Suggestions | High-precision arithmetic expression evaluator on typing = with 1-tap replacement |
| 🎵 Custom Sound Packs & Audio Customization | Zero-latency key audio engine, 12+ built-in presets, remote repository catalog, and .zip imports |
| ⚙️ Per-App Profiles & Compatibility Engine | Per-app composing rules, symbol composing for Tasker, auto-incognito, and Enter overrides |
| ⌨️ Hardware & Physical Keyboard Support | External Bluetooth/USB keyboard suggestions, shortcuts (1,2,3), D-PAD emoji navigation |
| 🎨 Advanced Appearance & Key Ergonomics | Independent corner radii (normal, functional, action), key gaps, padding scales, Shift icons |
| ⌨️ Comprehensive Keycodes & Actions Reference | Complete reference table of all functional, navigation, editing, AI, and hardware keycodes |
| Feature | Description | Settings Location |
|---|---|---|
| Multi-Provider Cloud AI | Proofread, rewrite, and fix grammar via Gemini, Groq, or OpenAI-compatible custom endpoints. | AI Integration > Set AI Provider |
| Custom AI Keys | 10 customizable toolbar keys with prompt templates, hashtags (#editor, #proofread), and tag capsules. |
AI Integration > Custom Keys |
| Offline Proofreading (GGUF) | Zero-network, on-device neural proofreading powered by embedded llama.cpp. |
Advanced > GGUF Model (.gguf) |
| Multi-Mode In-Keyboard Translation | Translate text on-device (Offline ML Kit), via Translation Plugin, or Cloud/Local AI with auto-fallback. | Translation > Translation Mode |
| Whisper Voice Typing | On-device speech-to-text with quantized multilingual Whisper models and audio visualizer. | Voice typing > Whisper Speech Models |
| Handwriting Recognition | Draw characters on a dedicated canvas with in-app model manager (supported across all flavors via plugin). | Handwriting > Handwriting recognition |
| Offline Camera & Screenshot OCR | Live in-keyboard camera scanner and screenshot suggestion pill with rich text cleaners (casing, join styles, dehyphenation). | OCR & Text Extraction / Plugins > OCR |
| Inline Math Calculation | Instant arithmetic calculation suggestions on typing = with 1-tap expression replacement. |
Text correction > Inline math calculation |
| Custom Sound Packs | Zero-latency key audio engine with 12+ built-in presets, remote catalog downloads, and .zip import. |
Plugins > Sound / Preferences > Sound on keypress |
| Text Editing Panel | Precision DPAD arrow navigation, Shift selection mode, and clipboard shortcuts. | Toolbar > Text Editing Icon |
| Auto-Spanning Toolbar | Dynamically expands and balances toolbar keys symmetrically across device widths. | Appearance > Toolbar auto-spacing |
| Touchpad Mode | Swipe up on Spacebar to activate full cursor control and laptop-style touchpad gestures. | Gesture typing > Vertical spacebar swipe |
| Native IME Floating Window | Moveable floating keyboard window with touch-passthrough, bottom dock bar, resize handle, zero dead space, and persistent memory. | Toolbar > Floating Keyboard / Preferences > Remember floating mode |
| Per-App Profiles & Quirks | Fine-tune composing behavior per app (Tasker symbol composing, web editor compatibility, auto-incognito, and Enter action overrides). | Preferences > App Profiles |
| Hardware Keyboard Support | Full predictive suggestions, auto-correction, candidate shortcuts (1, 2, 3), and D-PAD emoji navigation for external keyboards. |
Languages > Physical keyboard / Auto-detected |
| Appearance & Key Ergonomics | Independent key corner radius sliders, adjustable key gaps, customizable padding scales, and distinct Shift/Caps visual indicators. | Appearance > Key borders / Theme |
| Split Toolbar & Suggestions | Separates suggestions from the toolbar into a dual-row view. | Appearance > Split toolbar & suggestions |
| Versatile Text Expander | Expand shortcuts with dynamic variables, citation stripper (%clipboard:clean%), and modifiers. |
Text correction > Text Expander |
| Clipboard History & Inline Edit | Search history, swipe-right to edit inline, swipe-left to delete with undo, fold pinned clips, and slide-select. | Clipboard Toolbar > Search / Swipe items |
| Screenshot Suggestions | Instant 1-tap sharing of recently taken screenshots via the suggestion strip. | Text correction > Suggest recent screenshots |
| Emoji Search | Search emojis by name/keyword directly from the emoji palette. | Emoji Key > Search Icon |
| Blocked Words Blacklist | Prevent unwanted words from being suggested with regex pattern matching. | Text correction > Blocked words blacklist |
| Privacy-First OTP Auto-Fill | Extracts OTP verification codes from incoming notifications with app package selector. | Text correction > OTP Auto-Fill |
| Smart Learning & Boost | Adjustable personal dictionary learning threshold (1-5 times) and temporary session word boost. | Text correction > Dictionary learning threshold |
| Gesture Typing | Swipe typing powered by native C++ spatial scoring engine. | Gesture typing > Enable gesture typing |
| Direct Switch Target IME | Fast 1-tap switching to another configured IME using custom keycode -10076. |
Preferences > Direct Switch Target IME |
| Custom Layout Profiles | Store up to 5 custom keyboard layouts with persistent slot tracking. | Languages > Custom layouts |
| In-App Update Checker | Checks GitHub releases with changelogs and 1-tap release viewing (standard flavor). |
Settings > Updates |
LeanType connects directly with top AI providers for ultra-fast proofreading, grammar corrections, tone adjustments, and rewrites.
| Provider | Privacy Level | Setup Speed | Free Tier | Best For |
|---|---|---|---|---|
| Groq | 🟡 Average | 🟢 Fast | High RPM | Lightning-fast inference speeds |
| Google Gemini | 🔴 Standard | 🟢 Fast | Generous | High-quality general reasoning |
| OpenAI-Compatible | ⚙️ Custom | 🟡 Moderate | Custom | Any custom endpoint (OpenRouter, DeepSeek, Mistral) |
- Obtain an API key:
- Google Gemini: Google AI Studio (key starts with
AIzaSy...). - Groq: Groq Console (key starts with
gsk_...). - OpenAI-compatible: OpenRouter, DeepSeek Platform, or your local LLM server.
- Google Gemini: Google AI Studio (key starts with
- In LeanType, open Settings → AI Integration → Set AI Provider.
- Select your provider, paste your API token, and pick your preferred model and target language.
You can assign custom prompts, personas, and custom label tags to 10 dedicated toolbar keys.
- Assign custom labels (e.g.
French,Rephrase,Reply) in Settings → AI Integration → Custom Keys. - Enable Show tags on keyboard to render them as themed pill capsules directly on the keyboard toolbar.
Include these hashtags in your custom prompts to enforce strict system roles:
| Keyword | Persona / Role | System Instruction Injected |
|---|---|---|
#editor |
Text Editor | "Output ONLY the edited text. Do not add any conversational filler." |
#outputonly |
Strict Output | "Output ONLY the result. Do not add introductions or explanations." |
#proofread |
Proofreader | "Fix grammar and spelling errors. Output ONLY the fixed text." |
#paraphrase |
Rewriter | "Rewrite using different words while preserving original meaning." |
#summarize |
Summarizer | "Provide a concise, direct summary." |
#expand |
Content Writer | "Expand on the text with more details." |
#toneshift |
Tone Adjuster | "Adjust the tone as requested." |
#append |
Append Mode | Adds output to the end of the text field instead of replacing. |
#showthought |
Show Thinking | Preserves reasoning output (<think>...</think>) from reasoning models. |
Important
Zero-Network Guarantee: This feature runs 100% locally via the companion LeanType Offline AI Plugin powered by llama.cpp and is available in the Offline build flavor (-offline-release.apk). No internet permission exists in the manifest.
- Download
ai_plugin-arm64-v8a.apk(orai_plugin-x86_64.apk) from the LeanType Offline AI Plugin Releases. - In LeanType, open Settings → Plugins → Offline AI and tap Load Offline AI plugin to load the
.apk. - Download a compact GGUF model:
- Qwen 2.5 0.5B Instruct (Q4_K_M): Extremely lightweight & fast (~350 MB).
- Llama 3.2 1B Instruct (Q4_K_M): High-quality compact reasoning (~900 MB).
- Qwen 2.5 1.5B Instruct (Q4_K_M): High intelligence for modern devices (~1.1 GB).
- Open Settings → Advanced → GGUF Model (.gguf) and select the
.gguffile from your storage. - Configure sampling temperature, Top-K, Top-P, and custom system instructions.
LeanType offers a flexible translation architecture supporting all app flavors:
- Translation Plugin (Supported across all flavors):
- High-speed, private translation powered by the companion LeanType Translation Plugin.
- In-app model downloads for online builds, and browser download + local file importing for offline builds.
- Built-in Offline Translation (ML Kit):
- 100% On-Device & Private translation on supported builds.
- Download 59+ language translation models directly inside keyboard settings (~30 MB per language pack).
- Cloud & Local AI Translation:
- Uses your configured AI Provider (Google Gemini, Groq, OpenAI, Ollama, or local GGUF models) with customizable translation prompts.
- Online Flavors (
Standard/Standard Full): Open Settings → Translation and tap Download Plugin to install the LeanType Translation Plugin automatically. - Offline Flavors (
Offline/Offline Lite): Downloadtranslation_plugin-arm64-v8a.apkfrom GitHub Releases and load it in Settings → Plugins → Translation. - Download or import your required source and target language pairs.
- Tap the Translate icon on the keyboard toolbar to instantly translate selected text or entire input fields.
LeanType integrates high-accuracy, private speech-to-text powered by OpenAI's Whisper architecture via whisper.cpp and the LeanType Voice Plugin.
- Tiny (
ggml-tiny.bin): ~39 MB — Ultra-fast, minimal memory usage, 99+ languages. - Base (
ggml-base.bin): ~74 MB — Best balance of accuracy and speed for daily typing. - Small (
ggml-small.bin): ~244 MB — High accuracy for complex vocabulary and accents. - Custom Model: Import any standard
.binGGML Whisper model from device storage.
- Download and install the LeanType Voice Plugin APK on your Android device (installed as a background IPC service).
- Grant Microphone permission to the LeanType Voice Plugin.
- In LeanType, open Settings → Voice typing (or Settings → Plugins → Voice) and tap Whisper Speech Models.
- Download or import your preferred model (e.g. Multilingual Base ~74 MB).
- Configure voice options:
- Voice Recognition Language: Choose Follow keyboard language (Default), Auto-detect spoken language (
auto), or pick from 99+ specific Whisper languages. - Audio Visualizer: Displays a real-time sound waveform directly on the keyboard toolbar.
- Silence Detection: Configurable auto-stop sensitivity slider.
- Keep Model in Memory: Prevents model reload latency during consecutive voice typing sessions.
- Voice Recognition Language: Choose Follow keyboard language (Default), Auto-detect spoken language (
- Tap the Microphone icon on the toolbar to start voice typing.
Draw letters, words, or symbols directly on a handwriting recognition canvas using your finger or stylus via the companion LeanType Handwriting Plugin (supported across all flavors).
- Online Flavors: Open Settings → Handwriting and tap Download Plugin to install the LeanType Handwriting Plugin.
- Offline Flavors: Download
handwriting_plugin-arm64-v8a.apkfrom GitHub Releases and load it in Settings → Plugins → Handwriting. - Use the Offline Handwriting Models dialog to download recognition packs directly (or import downloaded
.zipmodel packs on offline builds). - Customize stroke width, stroke fade timeout, and recognition sensitivity.
- Tap the Handwriting (Pencil) icon on the keyboard toolbar to open the drawing canvas and write naturally.
A precision editing panel designed for frictionless text manipulation and directional selection:
- DPAD Arrow Keys: Move cursor character-by-character or line-by-line (
←,→,↑,↓). - Persistent Selection Mode (
Select): TapSelectto lock selection mode on. While active, any directional arrow expands or contracts text selection. - Directional Jump Selection: Tap
Select, then tap Jump to Start (|<) or Jump to End (>|) to instantly highlight all text from the current cursor position all the way to the start or end of the document. - Quick Selection: 1-tap Select Word (
code: -34) and Select All (code: -35). - Clipboard Actions: Direct Cut, Copy, and Paste buttons within the panel.
- Navigation Shortcuts: Jump directly to start or end of document (
code: -25/-26) or line (code: -27/-28).
LeanType includes 3 prebuilt text editing layouts (switchable in Settings -> Languages -> Secondary layouts -> Text editing layout):
- Gboard (Default) (
editing_gboard): Modern D-Pad cluster with centeredSelecttoggle,✕(Close / exit),Cut,Copy,Paste,Undo,Redo,Select all, Jump to Start (|<), Jump to End (>|), and Backspace. - Standard (
editing): Full grid with Undo/Redo, Word/All selection, Cut/Copy/Paste, DPAD arrows, and line jumps. - Classic (
editing_classic): Vintage layout with extended navigation keys and symbol shortcuts.
You can create and import your own text editing layout JSON files in Settings -> Languages -> Secondary layouts -> Text editing layout -> Load from file (or paste directly in the layout editor).
An editing layout is defined as a 2D JSON array representing rows of keys:
[
[ /* Row 1 Keys */ ],
[ /* Row 2 Keys */ ],
[ /* Row 3 Keys */ ],
[ /* Row 4 Keys */ ]
]| Property | Type | Description |
|---|---|---|
code |
Integer | Action or character keycode (e.g. -21 for Left Arrow). Required for functional keys. |
label |
String | Visible text or glyph on the key cap. |
width |
Float | Relative width fraction. The sum of all key widths in each row must equal 1.0 (e.g. 4 keys of 0.25). |
type |
String | Optional styling tag. Use "function" for action button styling, or "placeholder" for blank spacer gaps. |
- Escape Pipe Delimiters (
|): The pipe character|is a reserved delimiter in LeanType's key specification parser (used to separate labels and keycodes). In key labels, always escape it with a backslash ("\\|<"and">\\|") or use Unicode arrows (⇤and⇥). Bare unescaped pipes will cause parser validation errors. - Flat Structure: Avoid complex nested popup objects in custom editing layouts. Keep key definitions flat with
code,label,width, and optionaltype. - No Empty Rows: Every row must contain at least one key or spacer; rows cannot be left empty.
- Spacers: To create empty visual gaps without placing interactive buttons, use
{ "type": "placeholder", "width": 0.25 }.
| Keycode | Constant Name | Description |
|---|---|---|
-201 |
ALPHA |
Closes text editing mode and returns to normal keyboard (✕). |
-21 |
ARROW_LEFT |
Moves cursor left. In selection mode, expands/contracts selection left. |
-22 |
ARROW_RIGHT |
Moves cursor right. In selection mode, expands/contracts selection right. |
-23 |
ARROW_UP |
Moves cursor up one line. |
-24 |
ARROW_DOWN |
Moves cursor down one line. |
-25 |
MOVE_START_OF_PAGE |
Jumps to start of document. In selection mode, highlights to start (` |
-26 |
MOVE_END_OF_PAGE |
Jumps to end of document. In selection mode, highlights to end (`> |
-27 |
MOVE_START_OF_LINE |
Jumps to start of the current line (⇱). |
-28 |
MOVE_END_OF_LINE |
Jumps to end of the current line (⇲). |
-31 |
CLIPBOARD_COPY |
Copies the currently selected text. |
-32 |
CLIPBOARD_CUT |
Cuts the currently selected text. |
-33 |
CLIPBOARD_PASTE |
Pastes text from the clipboard. |
-34 |
CLIPBOARD_SELECT_WORD |
Selects the word currently under the cursor. |
-35 |
CLIPBOARD_SELECT_ALL |
Selects all text in the current input field. |
-306 |
TOGGLE_SELECTION_MODE |
Toggles persistent selection mode (Select). |
-131 |
UNDO |
Triggers undo (Ctrl+Z). |
-132 |
REDO |
Triggers redo (Ctrl+Shift+Z). |
-7 |
DELETE |
Backspace deletion key. |
[
[
{ "code": -201, "label": "✕", "type": "function", "width": 0.25 },
{ "code": -23, "label": "↑", "width": 0.25 },
{ "code": -32, "label": "Cut", "type": "function", "width": 0.25 },
{ "code": -35, "label": "Select all", "type": "function", "width": 0.25 }
],
[
{ "code": -21, "label": "←", "width": 0.25 },
{ "code": -306, "label": "Select", "type": "function", "width": 0.25 },
{ "code": -22, "label": "→", "width": 0.25 },
{ "code": -31, "label": "Copy", "type": "function", "width": 0.25 }
],
[
{ "code": -131, "label": "Undo", "type": "function", "width": 0.25 },
{ "code": -24, "label": "↓", "width": 0.25 },
{ "code": -132, "label": "Redo", "type": "function", "width": 0.25 },
{ "code": -33, "label": "Paste", "type": "function", "width": 0.25 }
],
[
{ "code": -25, "label": "\\|<", "width": 0.375 },
{ "code": -26, "label": ">\\|", "width": 0.375 },
{ "code": -7, "label": "delete", "type": "function", "width": 0.25 }
]
]The Auto-Spanning Toolbar dynamically measures available screen width and proportionately balances toolbar keys symmetrically.
- Eliminates awkward blank space on large screens, tablets, and landscape orientation.
- Unifies alignment between standard toolbar keys and clipboard action rows.
- Configure via Settings → Appearance → Toolbar auto-spacing.
Turn the entire keyboard space into a fluid laptop-style trackpad:
- Activate via Swipe: Swipe up on the Spacebar to toggle Touchpad Mode.
- Activate via Toolbar: Tap the Touchpad icon in the toolbar.
- 1-Finger Drag: Smooth, pixel-perfect cursor movement.
- 1-Finger Double Tap: Selects the word under the cursor.
- 1-Finger Long Press & Drag: Starts continuous text selection.
- 2-Finger Drag Left/Right: Jumps word-by-word.
- 2-Finger Swipe Up / Down: Undo / Redo.
- 2-Finger Tap: Inserts a space.
- 2-Finger Double Tap: Copies selected text (or Pastes if nothing is selected).
- 2-Finger Long Press: Continuous backspace deletion.
LeanType features an advanced Native IME Floating Window architecture that runs directly within the Android Input Method window rather than relying on invasive SYSTEM_ALERT_WINDOW system overlays. This delivers seamless background touch passthrough, zero extra permissions, and robust stability across multi-window and split-screen setups.
- Native Window Migration (v4.2.5): Floating mode operates directly inside the native Android Input Method window using
TOUCHABLE_INSETS_REGION. Touches outside the floating keyboard bubble pass directly to underlying applications (allowing simultaneous typing, reading, and scrolling) with zeroSYSTEM_ALERT_WINDOWpermission overhead. - Floating Bottom Dock: A dedicated, clean control bar anchored beneath the key rows:
[✕]Close / Dock Button: 1-tap return to standard docked keyboard mode.- Center Drag Pill: Smooth, fluid multi-touch drag handle to position the keyboard anywhere on the screen.
[⤢]Corner Resize Handle: Proportional live resizing (0.5×–1.8× scale) with instantaneous key scaling and zero layout jumps.
- Zero Dead-Space Layout (v4.2.6): Insets interception, deferred layout recalculation, and dynamic padding clamping completely eliminate docked-mode vertical dead space in apps like Telegram, ensuring the keyboard frame tightly wraps keys and controls across all display densities.
- Persistent Floating Memory: Optionally preserve floating mode and window coordinates across keyboard dismissals and app switches (Settings → Preferences → Remember floating mode).
- Instant Activation: Tap the Floating Keyboard icon on the toolbar or trigger it via custom shortcuts.
Split your toolbar and suggestion strip into two independent rows for fast, unhindered access to both word predictions and quick actions.
- Configure via Settings → Appearance → Split toolbar & suggestions.
Define custom abbreviations that instantly expand into rich text templates with dynamic variables, citation cleaning, and chained text modifiers:
%date%: Inserts current date (YYYY-MM-DD).%time%: Inserts current local time (HH:MM).%tomorrow%: Inserts tomorrow's date.%clipboard%: Inserts latest copied clipboard content.%cursor%: Places typing cursor at this exact position after expansion.%greeting%: Inserts time-appropriate greeting (Good morning, Good afternoon, Good evening).%bullets%/%list%: Inserts templated bulleted or numbered lists.%custom_variable%: Prompts an interactive popup to fill in custom text on the fly.
Transform clipboard content on the fly by appending modifiers (%clipboard:<mod1>:<mod2>%):
%clipboard:clean%/%clipboard:nocite%: Automatically strips bracketed Wikipedia / academic citations ([1],[1][2],[note 1],[citation needed]) and cleans formatting.%clipboard:singleline%/%clipboard:oneline%: Flattens multi-line text into a single line.%clipboard:title%: Converts clipboard text to Title Case.%clipboard:slug%/%clipboard:kebab%: Converts text into a kebab-case URL slug (e.g.my-awesome-post).%clipboard:snake%/%clipboard:camel%: Converts text tosnake_caseorcamelCase.%clipboard:upper%/%clipboard:lower%: Converts text to UPPERCASE or lowercase.%clipboard:trim%: Removes leading and trailing whitespace.%clipboard:unquote%: Strips outer quotation marks.%clipboard:nourl%: Removes URLs from text.%clipboard:replace(pattern, replacement)%: Performs custom regex find-and-replace.
- Open Settings → Text correction → Text Expander.
- Tap + (Add), define the shortcut (e.g.
cite), and enter your expansion template (e.g.%clipboard:clean%).
LeanType features a comprehensive, privacy-first clipboard manager with rich gestural editing:
- 🔍 Real-Time Search: Filter through your entire clipboard history instantly using the inline search bar on the toolbar.
- ✏️ Swipe-Right Inline Editing: Swipe right on any clipboard snippet to edit its text directly inside the keyboard toolbar (
[Text│] [✔] [✕]):- Tap-to-Position Cursor: Tap anywhere in the text strip to place the cursor accurately.
- Gesture Support in Edit Buffer: Swipe on the spacebar to glide the cursor horizontally, or swipe left from Backspace to delete words in the edit strip.
- In-Place Layout Switching: Toggle
?123Symbols,Shift, and Caps Lock directly on the bottom row without losing your active edit session.
- 🗑️ Swipe-Left to Delete with Undo: Swipe left on any clip to remove it, backed by a 5-second timed undo bar to restore accidental deletions.
- 📌 Pin / Unpin & Folding: Long-press any snippet to pin it permanently. Enable Fold pinned items to keep pinned clips collapsed under an expandable
▶ Pinned (N)header. - 👆 Sliding Clipboard Selection: Hold the Clipboard key, slide your finger over the desired clip, and release to paste and return to typing immediately.
- 🖼️ Image & Screenshot History: Captures and displays copied images and screenshots with rich visual thumbnails.
- Instant Suggestion: Automatically detects newly captured screenshots (within 4 minutes) and presents a thumbnail preview in the suggestion strip for 1-tap insertion.
- Clipboard Sync: Automatically saves captured screenshots into your clipboard image history.
- Enable via Settings → Text correction → Suggest recent screenshots.
- Search through thousands of emojis by keyword or name directly inside the emoji palette.
- Setup: Ensure an Emoji Dictionary (e.g. Emoji English) is enabled under Settings → Text correction → Dictionary.
Prevent offensive, sensitive, or unwanted words from ever appearing in the suggestion strip:
- Supports literal words and custom regular expression (regex) patterns.
- Manage rules via Settings → Text correction → Blocked words blacklist.
- Zero SMS Permissions (
RECEIVE_SMS): Uses Android's secureNotificationListenerServiceto parse verification codes directly from incoming notifications without accessing private SMS message stores. - Dynamic Messaging App Selector: Choose which specific messaging apps (Google Messages, Signal, WhatsApp, Telegram, etc.) LeanType should monitor for OTP codes.
- 1-Tap Insertion: Automatically detects OTP codes and offers them in the suggestion strip for instant 1-tap pasting.
- Manage via Settings → Text correction → OTP Auto-Fill.
LeanType learns your vocabulary organically as you type while providing deep granular control over the suggestion scoring pipeline:
- Adjustable Learning Threshold: Choose how many times a new word must be typed (1 to 5 times) before it is automatically added to your personal dictionary.
- Session Word Boost: Temporarily boosts recently typed, verified words for immediate next-word ranking during active typing sessions.
- Suggestion Balance Master Sliders: Fine-tune the exact scoring weights between unigram frequency, bigram/ngram context, and dictionary matches (Settings → Suggestions → Suggestion Balance).
- SuggestTrace & ScoreAudit Telemetry: Built-in developer/power-user instrumentation to audit why specific words are being predicted or auto-corrected, backed by early beam pruning (
BEAM_DELTA = 60) for optimal typing latency. - Google Dictionary Import: Import existing user dictionaries exported from Gboard.
- Configure via Settings → Suggestions and Settings → Text correction → Dictionary learning threshold.
- Smooth swipe typing powered by native C++ spatial scoring (
libjni_latinime.so). - Supports floating preview text, customizable trail colors, and space-aware gesture input.
- In
standardbuilds, the gesture library is downloaded automatically via Settings → Gesture typing.
Map the custom keycode -10076 (SWITCH_TO_USER_IME) to any toolbar key:
- Switches directly to a designated secondary input method (e.g. Japanese, Korean, or Voice IME) without opening the system IME selection dialog.
- Configure via Settings → Preferences → Direct Switch Target IME.
- Create and save up to 5 persistent custom layout profiles.
- Switch between layout profiles seamlessly while preserving active slot indices across orientation and symbol states.
- Manage via Settings → Languages → Custom layouts.
Note
Available in the Standard (-standard-release.apk) build flavor.
- Automatically checks GitHub releases for updates in the background.
- Eliminates sensitive package installation permissions (
REQUEST_INSTALL_PACKAGES) by redirecting to official GitHub Releases for safe and verified APK updates. - View single-version changelogs directly inside the update screen.
- Configure check frequency under Settings → Updates.
LeanType is published in two purpose-built flavors to balance cloud AI capabilities and strict air-gapped offline operation:
Note
Flavor Consolidation:
In v4.2.6, standardfull has been completely merged into standard. Users previously using standardfull can transition directly to standard.
| Flavor | Cloud AI | Offline AI | Voice Input | Handwriting | OCR Extraction | Translation | Update Checker | Internet Permission | Min SDK | Approx Size |
|---|---|---|---|---|---|---|---|---|---|---|
| Standard (Recommended) | ✅ | ❌ | ✅ (Plugin) | ✅ (Plugin) | ✅ (Plugin) | ✅ (Plugin/AI) | ✅ (View Release) | 🌐 Optional (Opt-in) | SDK 23 (6.0+) | ~10.8 MB |
| Offline | ❌ | ✅ (Plugin on 8.0+) | ✅ (Plugin) | ✅ (Plugin) | ✅ (Plugin) | ✅ (Plugin) | ❌ | 🚫 None | SDK 21 (5.0+) | ~9.8 MB |
Tip
Concurrent Installation: The offline (com.leanbitlab.leantype.offline) build uses a unique package ID, allowing you to install it alongside standard on the same device!
- Zero-Permission Privacy Overhaul (v4.2.5): LeanType removed
READ_CONTACTS(contact dictionary eliminated entirely),SYSTEM_ALERT_WINDOW(floating mode runs natively in the IME window), andREQUEST_INSTALL_PACKAGES(update checks link directly to verified GitHub releases). Theofflineflavor contains zero network permissions in its manifest. - Ultra-Lightweight Modular Plugin Architecture (v4.1.4 / v4.1.6): Heavy machine learning dependencies—including ML Kit (Handwriting, OCR, Translation) and on-device LLM inference (
llama.cpp)—are completely unbundled into standalone companion plugins. This preserves a sub-11 MB core APK footprint while granting users total on-demand control over local AI models.
LeanType features an on-device OCR engine powered by ML Kit via the LeanType OCR Plugin (supported across all flavors), enabling instant text extraction from live camera feeds or captured screenshots with zero internet connectivity.
- Tap the Camera / OCR key on the toolbar to open a live camera viewfinder embedded directly inside the keyboard window.
- Controls: Top flash toggle, real-time autofocus, shutter capture button, and gallery image picker fallback.
- Instant Result Strip: Displays recognized text immediately with 1-tap options to copy, insert into the current input field, or apply transformations.
- Automatically detects screenshots captured on your device (within 4 minutes) and renders a unified compact pill on the suggestion strip:
[OCR] [Screenshot] [X]. - Tap
[OCR]to extract text directly from the screenshot without leaving your current app. - Tap
[Screenshot]to paste or share the image directly. - Tap
[X]to dismiss the suggestion.
Customize how extracted text is processed and formatted before insertion:
- Casing Transformations: Original, UPPERCASE, lowercase, Title Case, or Sentence case.
-
Line Joining Modes: Keep original line breaks, merge all lines into a single continuous paragraph, or automatically rejoin hyphenated words split across lines (
anti-+gravity$\rightarrow$ antigravity). - Punctuation Normalization: Cleans irregular punctuation marks, curly quotes, and repeated spaces.
-
Bullet & List-Marker Stripping: Cleans away bullet characters (
•,-,*,1.,a)) for clean paragraph flow. - Whitespace & Noise Filtering: Automatically strips leading/trailing blank spaces and filtered OCR noise artifacts.
- Configurable Preferences: Auto-copy recognized text to clipboard, auto-insert directly into text fields, persistent camera flash state, and search indexing support.
Perform calculations instantly while typing in any app without switching to an external calculator:
- Type any arithmetic expression followed immediately by an equals sign (
=). - The evaluated result appears instantly as a clean suggestion chip in the suggestion strip (e.g. typing
25*4=offers100). - Tap the chip to replace the entire typed math expression in-place with the evaluated answer.
-
Basic Arithmetic: Addition (
+), subtraction/unary negation (-,−), multiplication (*,×), division (/,÷). -
Percentages: e.g.
500-15%=$\rightarrow$ 425,200+10%=$\rightarrow$ 220. -
Exponents & Powers: e.g.
2^8=$\rightarrow$ 256. -
Grouping Parentheses: e.g.
(12+8)/4=$\rightarrow$ 5. -
High Precision: Built with a pure Kotlin
BigDecimalparsing engine with robust scientific formatting and division-by-zero protection.
- Enable or disable via Settings → Text correction → Inline math calculation.
LeanType includes a zero-latency native keypress audio feedback engine that delivers rich auditory tactile response:
- iOS Tap: Crisp, modern Apple-style click sound.
- Mechanical Cherry MX: Classic mechanical keyboard tactile switch clicks.
- Thocky Mechanical: Deep, resonant mechanical switch sound profile.
- Vintage Typewriter: Authentic acoustic typewriter key strikes and carriage feel.
- Retro CRT Terminal: Nostalgic 80s phosphor green terminal clicks.
- Bubble Pop: Playful, gentle bubble popping sounds.
- Soft Velvet / Pudding: Muted, low-profile quiet typing experience.
- Woodblock Minimal: Clean organic wooden percussion clicks.
- Acoustic Marimba: Melodic wooden bar acoustic chime feedback.
- Modern Crisp Tick: Subtle, high-frequency modern key tick.
- Sci-Fi Cyberpunk: Futuristic electronic digital interface hums.
- 8-Bit Chiptune Arcade: Retro arcade game console key blips.
- Remote Catalog: Download additional physical modeling and synthesized instrument packs on demand from the official GitHub sound pack repository (
LeanBitLab/LeanType-Sound-Packs). - Unbundled Light Footprint: Sound packs are unbundled from the core APK to keep download sizes under 11 MB.
- Custom
.zipPack Import: Import custom sound packs packaged as a.zipcontaining asoundpack.jsonmanifest and keypress audio files (.wavor.ogg). - Live Audition & Volume: Audition sounds with live sample playback (
▶️ ) and fine-tune keypress audio volume independently from system media volume. - Dedicated Settings Screen: Access via Settings → Plugins → Keypress Audio / Sound or Settings → Preferences → Sound on keypress.
Certain Android apps, terminal emulators, code editors, automation tools, and web-based input fields handle text entry in non-standard ways. LeanType features a dedicated Per-App Profiles & Compatibility Engine that lets you customize composing, auto-correction, and key behaviors on a granular per-application basis.
Access via Settings → Preferences → App Profiles.
| Quirk / Setting | Description & Use Case |
|---|---|
| 🌐 Web Editor Compatibility | Forces web-safe backspace, batch sync, and internal cache bypass for text fields. Ideal for web-based text editors (e.g. Google Docs in Chrome, Notion, Obsidian web clips) that suffer from duplicated or stuck text. |
| 🕵️ Automatic Incognito | Forces LeanType into incognito mode whenever this specific app is active. Never learns typed words, disables personal dictionary boosting, and leaves zero trace in history. |
| 🔓 Force Non-Incognito | Overrides aggressive system incognito flags (such as IME_FLAG_NO_PERSONALIZED_LEARNING) set by certain apps or search fields, restoring full personal dictionary suggestions and auto-correction. |
| ⚡ Force Direct Text Commit | Bypasses composing spans completely and commits characters directly to the input connection. Resolves input glitches in custom apps and games with broken TextWatcher implementations. |
| 🧩 Allow Symbol Composing | Keeps punctuation and symbols (such as % and _) inside the active composing word instead of immediately committing them. Essential for automation tools like Tasker where variables such as %var_name would otherwise break composing. |
| 🚫 Strip No-Enter Flag | Ignores IME_FLAG_NO_ENTER_ACTION set by apps (e.g. Pixel Launcher search or specific chat inputs) to ensure an Enter / Action key is always available. |
| 🔘 Action Key Override | Overrides the bottom-right Enter key action for the target app. Options include System Default, Force Newline (None), Force Send, Force Search, Force Go, Force Next, or Force Done. |
| ✏️ Auto-Correction Overrides | Force-enable or force-disable auto-correction specifically for an app (e.g. always disabled for terminal emulators like Termux, always enabled for messaging apps). |
| ␣ Disable Auto-Spacing | Prevents automatic space insertion before or after punctuation and symbols in sensitive coding or terminal environments. |
| 📄 Allow on Non-Editable Fields | Keeps the keyboard available and interactable even when an app specifies a non-editable text field (InputType.TYPE_NULL). |
TYPE_NULLOut-of-the-Box Support (v4.2.6): Explicit show-request tracking allows LeanType to commit text seamlessly in dialer search bars, launchers, and custom non-editable views that normally block soft keyboards.- Tasker & Macro Integration: "Allow Symbol Composing" enables
%var_namedynamic placeholders for Tasker automation without prematurely breaking composing spans. - Instant Search & Filter: Filter apps by name or package identifier, or toggle Configured only to review your active overrides.
- Visual Status Badges: Each application card displays colored status chips (
Web,Incognito,Direct Commit,Symbol Composing,Action,Auto-Correct) for immediate at-a-glance auditing. - 1-Tap Reset: Easily revert any custom profile back to default with the Reset to Default option.
LeanType provides a premium, fully-integrated experience for external Bluetooth keyboards, USB keyboards, tablet folio keyboards, and foldable devices. Unlike standard IMEs that disable their UI when a physical keyboard is attached, LeanType adapts intelligently:
- Persistent Suggestion Pipeline: Full predictive text, auto-correction, and next-word suggestions remain active and visible on the candidate strip.
- Candidate Shortcuts: Rapidly select predictions using physical keyboard number keys (
1,2,3). - Full D-PAD Navigation: Seamlessly navigate and select emojis, clipboard history entries, and toolbar actions using physical arrow keys and Enter/Space.
- Smart Toolbar Elevation: The smart toolbar automatically elevates above the system navigation bar and IME switcher buttons when a physical keyboard is detected.
- Advanced Keycode Resolution: Native support for physical numpad keycodes, NumLock modifier composing, and dead-key combining for complex international layouts.
- Language Switching Shortcuts: Seamless Ctrl+Space and Shift+Space keyboard shortcut handling to toggle active subtypes without UI interruptions.
Go beyond simple color themes with granular, user-level control over the keyboard's physical geometry, border radiuses, and visual feedback:
- Independent Corner Radii: Independent sliders to control the corner rounding of Normal Keys, Functional Keys (Shift / Backspace / Symbols), and Action Keys (Enter / Search / Go) when key borders are active (Settings → Appearance → Key borders).
- Dynamic Key Gaps & Padding: Adjust horizontal and vertical key gaps, as well as independent side and bottom padding scales to match your hand ergonomics and screen dimensions.
- Shift & Caps State Distinction: Enhanced visual clarity through three distinct icon states for the Shift key:
- Outline Arrow: Inactive / lowercase.
- Filled Arrow: Single Shift active.
- Underlined Arrow: Caps Lock locked.
- Auto-Spanning Key Balance: Proportionately expands toolbar keys symmetrically across wider displays and landscape orientations (Settings → Appearance → Toolbar auto-spacing).
LeanType provides an extensible keycode architecture that allows customizing keys in:
- Custom JSON Layouts: Map keys via
"code": <value>(e.g.{"code": -9, "label": "Del"}). - Simple Text Layouts: Defined directly in custom layout
.txtfiles. - Toolbar Customization: Custom primary and long-press codes via Settings → Preferences → Customize toolbar key codes.
- Popup Keys: Extended keys revealed on long-pressing any primary keyboard key.
Tip
All negative keycodes listed below are actively recognized and validated by KeyCode.checkAndConvertCode(). Positive integer codes correspond to standard Unicode codepoints (or ASCII values like 10 for Enter, 32 for Space, 9 for Tab).
| Keycode | Constant Name | Action / Description |
|---|---|---|
-7 |
DELETE |
Backspace; deletes the character preceding the cursor. |
-8 |
DELETE_WORD |
Backspace word; deletes the word preceding the cursor (Ctrl + Backspace). |
-9 |
FORWARD_DELETE |
Forward delete; deletes the character after the cursor (KeyEvent.KEYCODE_FORWARD_DEL). |
-10 |
FORWARD_DELETE_WORD |
Forward delete word; deletes the word following the cursor (Ctrl + Forward Delete). |
-131 |
UNDO |
Reverts the last text modification (Ctrl + Z). |
-132 |
REDO |
Re-applies the last undone modification (Ctrl + Y). |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-21 |
ARROW_LEFT |
Moves cursor left by one character (DPAD_LEFT). |
-22 |
ARROW_RIGHT |
Moves cursor right by one character (DPAD_RIGHT). |
-23 |
ARROW_UP |
Moves cursor up by one line (DPAD_UP). |
-24 |
ARROW_DOWN |
Moves cursor down by one line (DPAD_DOWN). |
-27 |
MOVE_START_OF_LINE |
Moves cursor to the start of the current line (MOVE_HOME). |
-28 |
MOVE_END_OF_LINE |
Moves cursor to the end of the current line (MOVE_END). |
-10015 |
WORD_LEFT |
Moves cursor one word to the left (Ctrl + DPAD_LEFT, RTL aware). |
-10016 |
WORD_RIGHT |
Moves cursor one word to the right (Ctrl + DPAD_RIGHT, RTL aware). |
-10010 |
PAGE_UP |
Scrolls or moves cursor up by one page (PAGE_UP). |
-10011 |
PAGE_DOWN |
Scrolls or moves cursor down by one page (PAGE_DOWN). |
-25 |
MOVE_START_OF_PAGE |
Moves cursor to the start of the document/page. |
-26 |
MOVE_END_OF_PAGE |
Moves cursor to the end of the document/page. |
-305 |
TOGGLE_TEXT_EDIT_MODE |
Toggles the dedicated Text Editing navigation pad. |
-306 |
TOGGLE_SELECTION_MODE |
Toggles persistent Shift selection mode for arrow navigation keys. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-31 |
CLIPBOARD_COPY |
Copies the current text selection to the clipboard. |
-32 |
CLIPBOARD_CUT |
Cuts the current text selection to the clipboard. |
-33 |
CLIPBOARD_PASTE |
Pastes text from the primary clipboard clip. |
-34 |
CLIPBOARD_SELECT_WORD |
Automatically selects the entire word under the cursor. |
-35 |
CLIPBOARD_SELECT_ALL |
Selects all text in the active editor field. |
-10009 |
CLIPBOARD_COPY_ALL |
Selects all text and immediately copies it to the clipboard. |
-36 |
CLIPBOARD_CLEAR_HISTORY |
Clears unpinned history entries from the in-app clipboard history. |
-213 |
CLIPBOARD |
Opens the rich Clipboard History browser view. |
-10071 |
CLIPBOARD_SEARCH |
Focuses the inline search bar within the clipboard manager. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-201 |
ALPHA |
Switches to the standard Alphabet keyboard view. |
-202 |
SYMBOL |
Switches to the primary Symbols keyboard view. |
-10001 |
SYMBOL_ALPHA |
Toggles between Alphabet and Symbols views. |
-205 |
NUMPAD |
Switches to the dedicated numeric Numpad keyboard view. |
-206 |
VIEW_PHONE |
Opens the telephone dialer layout. |
-207 |
VIEW_PHONE2 |
Opens the secondary phone symbols layout. |
-212 |
EMOJI |
Opens the interactive Emoji & Media palette. |
-113 |
SPLIT_LAYOUT |
Toggles split keyboard mode for wide screens and landscape. |
-10072 |
TOGGLE_FLOATING_KEYBOARD |
Toggles the moveable native IME floating keyboard window. |
-10073 |
TOGGLE_TOUCHPAD_MODE |
Toggles the full-keyboard touchpad / trackpad cursor surface. |
-10002 |
TOGGLE_ONE_HANDED_MODE |
Toggles one-handed keyboard mode (compact docked to left or right). |
-10004 |
SWITCH_ONE_HANDED_MODE |
Switches the one-handed dock side between left and right. |
-10074 |
HANDWRITING |
Toggles the on-device handwriting drawing canvas. |
-10075 |
CLEAR_HANDWRITING |
Clears all current drawing strokes from the handwriting canvas. |
-10077 |
OCR |
Opens the live camera viewfinder and screenshot OCR scanner. |
-10076 |
SWITCH_TO_USER_IME |
Instantly switches to the user's configured target IME keyboard. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-10052 |
PROOFREAD |
Triggers AI proofreading / grammar correction on the current input. |
-10053 |
TRANSLATE |
Translates the active field or selection using configured translation engine. |
-10054 |
SHOW_TRANSLATE_LANGUAGES |
Opens the quick language selector for in-keyboard translation. |
-10061 |
CUSTOM_AI_1 |
Executes prompt template assigned to Custom AI Key #1. |
-10062 |
CUSTOM_AI_2 |
Executes prompt template assigned to Custom AI Key #2. |
-10063 |
CUSTOM_AI_3 |
Executes prompt template assigned to Custom AI Key #3. |
-10064 |
CUSTOM_AI_4 |
Executes prompt template assigned to Custom AI Key #4. |
-10065 |
CUSTOM_AI_5 |
Executes prompt template assigned to Custom AI Key #5. |
-10066 |
CUSTOM_AI_6 |
Executes prompt template assigned to Custom AI Key #6. |
-10067 |
CUSTOM_AI_7 |
Executes prompt template assigned to Custom AI Key #7. |
-10068 |
CUSTOM_AI_8 |
Executes prompt template assigned to Custom AI Key #8. |
-10069 |
CUSTOM_AI_9 |
Executes prompt template assigned to Custom AI Key #9. |
-10070 |
CUSTOM_AI_10 |
Executes prompt template assigned to Custom AI Key #10. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-10005 |
SHIFT_ENTER |
Sends Shift+Enter (forces a literal newline in chat apps that send on Enter). |
-10006 |
ACTION_NEXT |
Performs the IME_ACTION_NEXT editor action (jump to next form field). |
-10007 |
ACTION_PREVIOUS |
Performs the IME_ACTION_PREVIOUS editor action (jump to previous field). |
-227 |
LANGUAGE_SWITCH |
Cycles to the next enabled language subtype. |
-232 |
IME_HIDE_UI |
Dismisses / closes the soft keyboard window. |
-233 |
VOICE_INPUT |
Initiates voice typing (Whisper on-device or system voice IME). |
-244 |
TOGGLE_INCOGNITO_MODE |
Toggles incognito private mode (disables dictionary learning). |
-245 |
TOGGLE_AUTOCORRECT |
Instantly toggles auto-correction on or off. |
-301 |
SETTINGS |
Opens LeanType Settings. |
-10043 |
TIMESTAMP |
Inserts the current localized date and time stamp at cursor. |
-10051 |
INLINE_EMOJI_SEARCH_DONE |
Confirms and closes inline emoji search. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-11 |
SHIFT |
Shift modifier; capitalizes next character or shifts symbols. |
-13 |
CAPS_LOCK |
Locks keyboard in uppercase state. |
-1 |
CTRL |
Control modifier (KeyEvent.META_CTRL_ON). |
-2 |
CTRL_LOCK |
Locks Control modifier. |
-3 |
ALT |
Alt modifier (KeyEvent.META_ALT_ON). |
-4 |
ALT_LOCK |
Locks Alt modifier. |
-5 |
FN |
Function modifier. |
-6 |
FN_LOCK |
Locks Function modifier. |
-10012 |
META |
Meta / Super / Windows modifier. |
-10013 |
META_LOCK |
Locks Meta modifier. |
-10044 |
CTRL_LEFT |
Left Control key specifically. |
-10045 |
CTRL_RIGHT |
Right Control key specifically. |
-10046 |
ALT_LEFT |
Left Alt key specifically. |
-10047 |
ALT_RIGHT |
Right Alt key specifically. |
-10048 |
META_LEFT |
Left Meta key specifically. |
-10049 |
META_RIGHT |
Right Meta key specifically. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-10014 |
TAB |
Tab key (KeyEvent.KEYCODE_TAB). |
-10017 |
ESCAPE |
Escape key (KeyEvent.KEYCODE_ESCAPE). |
-10018 |
INSERT |
Insert key (KeyEvent.KEYCODE_INSERT). |
-10040 |
BACK |
Android Back button (KeyEvent.KEYCODE_BACK). |
-10019 |
SLEEP |
System Sleep key (KeyEvent.KEYCODE_SLEEP). |
-10020 |
MEDIA_PLAY |
Media Play (KeyEvent.KEYCODE_MEDIA_PLAY). |
-10021 |
MEDIA_PAUSE |
Media Pause (KeyEvent.KEYCODE_MEDIA_PAUSE). |
-10022 |
MEDIA_PLAY_PAUSE |
Media Play/Pause toggle (KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE). |
-10023 |
MEDIA_NEXT |
Next Track (KeyEvent.KEYCODE_MEDIA_NEXT). |
-10024 |
MEDIA_PREVIOUS |
Previous Track (KeyEvent.KEYCODE_MEDIA_PREVIOUS). |
-10025 |
VOL_UP |
Volume Up (KeyEvent.KEYCODE_VOLUME_UP). |
-10026 |
VOL_DOWN |
Volume Down (KeyEvent.KEYCODE_VOLUME_DOWN). |
-10027 |
MUTE |
Audio Mute (KeyEvent.KEYCODE_VOLUME_MUTE). |
-10028 .. -10039 |
F1 .. F12 |
Function keys F1 through F12 (KeyEvent.KEYCODE_F1 .. KEYCODE_F12). |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-10081 |
CUSTOM1 |
Activates Custom Layout Profile #1. |
-10082 |
CUSTOM2 |
Activates Custom Layout Profile #2. |
-10083 |
CUSTOM3 |
Activates Custom Layout Profile #3. |
-10084 |
CUSTOM4 |
Activates Custom Layout Profile #4. |
-10085 |
CUSTOM5 |
Activates Custom Layout Profile #5. |
-801 .. -806 |
CURRENCY_SLOT_1 .. _6 |
Inserts the currency symbol assigned to slots 1 through 6. |
| Keycode | Constant Name | Action / Description |
|---|---|---|
-20000 |
SEND_INTENT_ONE |
Dispatches user-configured broadcast Intent #1. |
-20001 |
SEND_INTENT_TWO |
Dispatches user-configured broadcast Intent #2. |
-20002 |
SEND_INTENT_THREE |
Dispatches user-configured broadcast Intent #3. |
1600 |
KESHIDA |
Arabic Tatweel / Keshida elongator (\u0640). |
8204 |
ZWNJ |
Zero-Width Non-Joiner (\u200C). |
8205 |
ZWJ |
Zero-Width Joiner (\u200D). |
12288 |
CJK_SPACE |
CJK Fullwidth Ideographic Space (\u3000). |
-902 |
MULTIPLE_CODE_POINTS |
Special container key producing multi-character text sequences. |
-10008 |
NOT_SPECIFIED |
Structural dummy spacer key (disables key interaction, renders blank). |