Kwiq Keyboard IME

A complete virtual keyboard with offline suggestions in 3 languages, local dictionary, Mustache templates, Markdown tools, emoji, WASD arrows and anonymous mode.

1 Activation

To use Kwiq's keyboard as your default input method:

  1. Open Android Settings > System > Keyboard > Virtual Keyboard.
  2. Enable "Kwiq Keyboard" in the list of available keyboards.
  3. Select "Kwiq Keyboard" as the default input method.

Alternatively, in Kwiq Settings, go to "Keyboard" and tap "Enable Keyboard". This opens the Android keyboard settings directly.

Note the keyboard works in ANY app, regardless of which launcher you use. You do not need Kwiq as your default launcher to use the keyboard.

2 Supported Languages

The keyboard supports 3 languages with complete offline dictionaries:

Portuguese (PT)

Locale pt_BR. QWERTY layout with accents and ç. Dictionary with Brazilian Portuguese words.

English (EN)

Locale en_US. Standard American QWERTY layout. Dictionary with English words.

Spanish (ES)

Locale es_ES. QWERTY layout with ñ. Dictionary with Spanish words.

Switching language: tap the language button on the spacebar to quickly cycle through PT, EN, and ES. The cycle order is PT → EN → ES → PT.

The language can also be changed via the system's InputMethodSubtype, if configured.

3 Offline Dictionary

Kwiq has a complete offline dictionary system, built on Room Database:

  • BundledDictionaryStore: dictionaries bundled in the app assets, loaded into a DictionaryTrie structure (a trie for efficient prefix lookups).
  • KeyboardDictionaryDatabase: a Room database with words, bigrams (word pairs), and learning_history tables.
  • DictionaryTextNormalizer: strips accents and normalizes text for consistent lookups.
  • DictionaryLocaleMapper: normalizes locale tags (pt_BR, pt-PT, en_US, es_ES).

The dictionary learns new words you type and suggests based on your local usage history — all on the device, without sending data to any server.

Dictionary Management

Kwiq offers broadcasts to manage the dictionary programmatically:

  • ActionClearLearning — clears the entire learning history.
  • ActionAddWord — adds a word to the dictionary.
  • ActionRemoveWord — removes a word from the dictionary.

4 Suggestions and Autocorrect

The suggestion engine (KeyboardSuggestionEngine) offers:

  • Bigram matches: suggests the next word based on the history of word pairs (e.g., after "good", it suggests "morning").
  • Prefix matches: dictionary words that start with what you have typed.
  • Fuzzy correction: uses Levenshtein distance to correct words with 3+ characters that are not in the dictionary.
  • Autocorrect: automatically corrects words not found in the dictionary (can be disabled in settings).
  • Smart rejection: undoing an autocorrection with backspace prevents that same correction from being applied again, even if you press space right after. The keyboard respects your choice.

Suggestions appear in a bar above the keyboard. Tap a suggestion to accept it.

5 Layouts and Pages

The keyboard has 18 pages of keys, organized into categories:

Page Content
LettersAlphabet letters in QWERTY layout + number row. PT has ç, ES has ñ.
NumbersDigits, common symbols, parentheses, operators.
MathMathematical symbols: ±, ×, ÷, √, ∞, etc.
CurrencyCurrencies: $, €, £, ¥, ¢, R$, etc.
ArrowsArrows: ←, ↑, →, ↓, ↔, ⇐, ⇒, etc.
ShapesGeometric shapes: diamonds, circles, squares, stars.
CardsCard suits: spades, hearts, diamonds, clubs.
GreekGreek alphabet: α, β, γ, Δ, etc.
TechnicalTechnical symbols: ©, ®, ™, §, ¶, etc.
SmileysEmoticons and smileys: ∼), :D, ;), etc.
PeoplePeople emoji with skin tone support.
NatureAnimals, plants, natural phenomena.
FoodFood and drinks.
TravelTransport, places, flags.
ActivitiesSports, activities, objects.
ObjectsMiscellaneous objects, tools, technology.
HeartsHearts and affection symbols.
FlagsCountry flags.

The keyboard automatically adapts to the field type: text, number, decimal, or phone (ImeKeyboardKind).

6 Key Variants (Long-Press)

Every key has variants accessible with a long press. For example:

The long-press response time can be adjusted in the keyboard settings (short, medium, long).

Hand and people emoji also have variants with skin tones.

7 Emoji

The keyboard has 9 emoji pages with full categories: Smileys, People, Nature, Food, Travel, Activities, Objects, Hearts, and Flags.

  • Each page can be accessed from the page selector next to the spacebar. Swipe horizontally between them or tap the category icons.
  • Emoji are inserted directly into the text field as Unicode characters.

8 Markdown Tools

A Markdown toolbar is available above the keyboard (configurable) to make text formatting easier:

Wrap

Selects the typed text and wraps it in formatting:

Prefix

Inserts formatting prefixes at the start of the line:

Link

Opens a dialog to insert a formatted link: [text](url).

The Markdown toolbar can be turned on or off in the keyboard settings.

9 Arrows, WASD and Analog

The keyboard offers 3 modes of arrow-key navigation:

Above Keyboard

Directional arrows (← ↑ ↓ →) appear ABOVE the keyboard. Great for text editing.

Below Keyboard

Directional arrows appear BELOW the keyboard, near the spacebar.

Hidden

Arrows are hidden. Use gestures or shortcuts for navigation.

WASD Mode

When enabled, the W, A, S, D keys act as directional arrows. This is especially useful for:

  • Text-based games or Termux.
  • Navigation in text editors.
  • Use with a physical keyboard in Desktop mode.

Analog Stick

Support for an analog joystick for navigation. When a controller with an analog stick is connected, you can use it to navigate text or the interface.

10 Mustache Templates

Kwiq has a Mustache template system for quickly pasting text with customizable fields.

What are they?

Mustache templates are texts with placeholders in the format {{ field_name }}. When you paste a template, the keyboard shows a form to fill in the fields before inserting the final text.

Example

Template:

When pasted, the keyboard shows fields to fill in: Name, Subject, Deadline. After filling them in, the text is rendered with the substituted values.

How to create templates

  • Create a Markdown note in Kwiq's File Manager with the desired text and {{ field }} placeholders.
  • Pin the note to the home screen (it will appear as a card).
  • In the keyboard, the note will appear in the list of available templates (accessible from the note icon in the toolbar).

Paste actions

  • Cancel: discards the template.
  • Paste Normal: pastes the text with placeholders replaced by the filled-in values.
  • Paste Special: pastes the text with custom rendering (when applicable).

11 Anonymous Mode

Anonymous mode (private mode) is a privacy option that, when enabled:

  • Does not learn newly typed words.
  • Does not send typing data anywhere (the keyboard already does not send it, but anonymous mode also disables local learning).
  • Does not suggest words based on your recent history.
  • Visual indicator: the keyboard interface changes slightly to show anonymous mode is active.

To turn it on or off, go to Kwiq Settings > Keyboard > "Anonymous Mode".

Tip anonymous mode is useful when typing sensitive information, like passwords, banking details, or private messages on shared devices.

12 Customization

The keyboard offers several customization options:

Vibration (Haptic)

Tactile feedback on every key. Can be turned on or off. Uses Android's HapticFeedbackConstants.

Key Color

Tints the keys with a custom color. The keyTintEnabled option turns the effect on or off.

Long-Press Timing

Adjust how long a press needs to be held to trigger key variants: Short, Medium, or Long.

Toolbars

Turn the Markdown toolbar and the arrow bar on or off independently.

All options are available in: Kwiq Settings > Keyboard.

13 AI Assistant Integration

Kwiq's keyboard integrates with AI assistants to offer advanced contextual suggestions:

  • Supported assistants: ChatGPT, Google Gemini, GitHub Copilot.
  • How it works: when an AI assistant is available on the device, the keyboard can send the typed text for contextual suggestions.
  • Integration: via KwiqAssistantContract, which uses Intent.ACTION_ASSIST to open the configured assistant.

To set it up, go to Kwiq Settings > "Assistant" and choose which AI app to use.

Warning when using AI assistants, the typed text may be sent to external servers. Use anonymous mode if you want to avoid this.

14 Tips and Shortcuts

Smart Space

The keyboard automatically inserts a space after punctuation (when configured).

Caps Lock

Long-press Shift to enable Caps Lock. Press again to disable it.

Note Templates

Markdown notes pinned to Home can be used as paste templates in the keyboard. Create notes with {{ field }} for Mustache templates.

Note Folders

Pinned notes are managed by the File Manager. Create, edit, and delete notes there — they show up automatically in the keyboard.