Firm Touch manual

Welcome to the best and easiest Android keyboard. You'll never miss these huge buttons!

Please, read this guide completely. Firm Touch Keyboard provides a lot of opportunities to speed up your work. Unix and Cisco administrators will appreciate the ability to enter various preset commands and manage screen / tmux with convenient macros.

To begin using Firm Touch, please, activate it!

To enter the letter located on the left side of the button, just press it. To enter the letter located on the right side, double tap it. For example, to enter "as", first tap on the "A s" button, and then double tap. To enter "sa" double tap, then tap. Thus, the letters of the first and second layer are easily typed, alternating between each other, for example "asasas".

80% of the letters are entered with single tap, and only 20% of rare letters with double tap! This way you can type very quickly without making mistakes.

To repeat any character already entered, tap on the button, slide your finger to any adjacent button and return to the initial button. This way you can repeat characters. For example, to enter "ass" you need to tap "A s" , then double tap, and then tap again without releasing, move your finger to any adjacent button, return back and then release. You can do that multiple times at once.

To switch language, do a gesture - swipe from the corresponding "RU" or "EN" labels down. To press Enter key swipe down from "ENTER ▼◀" label one key down and two or more keys left:

The triangles to the right of the gesture label indicate which direction to make the gesture. Read more about gestures here.

Table of contents

Enabling Firm Touch

  • Enter preferences of your device and find "Languages & input". It's location depends on your Android version and manufacturers whim. May be you'll find it in "Location" submenu, or "Personal data", "Advanced settings", etc.
  • In "Keyboards & inputs" section tap "Virtual keyboard"
  • Then press "+ Manage keyboards" and enable Firm Touch. Attention!You'll see a warning about input method being able to collect personal data. That's just a standard Android notice. Tap OK. Don't worry, you can safely enable Firm Touch, because it does not have any extra permissions like Internet and can't send your data anywhere. By the way, do NOT install an input method that has internet connection permission! That's real danger and alas, Google does not care.
  • Then launch any program with input field -- a messenger for example.
  • Tap the input field, then select Firm Touch: eithe pull down the notification bar and tap "Change keyboard" or tap small keyboard icon at the bottom of the screen and change it there.

Navigation and clipboard

To enter navigation layout swipe upwards from "NAV ▲▲" label:

Navigation layout is intended to navigate large texts and work with clipboard.

To move up/down and left/right use arrows. Long press on any arrow autorepeats the key, just like regular physical keyboard. PgUp, PgDown, Home and End work the same way as their physical counterparts too.

SEL key toggles selection mode. You can extend/shrink selection with navigation keys. To select any text place cursor at the end or at the begining of the text, tap SEL and navigate until selection is done. Second tap on SEL de-selects everything.

CUT key performs cut function and removed text is stored into clipboard. PASTE key inserts clipboard contents at cursor position or over pre-existing selection.

On the right part of the navigation layout you can find navigation-related buttons: Esc, Tab, Del and space. These are useful in Unix environment.

Pecularities of typing in Russian language

Generally speaking typing Russian is not that different from English -- taps and double taps are the same. But there are two exceptions: 'ъ' (hard sign) and 'ё' (yo). To enter 'ъ' double tap on 'И ь ъ' key first and then enter repeat gesture. 'ь' will be converted to 'ъ'. In 99.999% of cases you won't need to type more than two 'ъ' signs at once anyway. To enter 'ё' open macro set #2 and there you'll find it, along with Russian Rouble sign, obsolete letter 'yat' and stress mark.

To mark any letter as stressed (actually it has to be a vowel) type it and then switch to macro set #2 and tap on stress mark. Previous letter will be marked as stressed.


To enter a gesture press a key and slide across required keys without lifting, then release your finger. Firm Touch provides a lot of useful gestures. For example, to switch to Russian or English language swipe down from 'RU' or 'EN' label respectively.

Always pay attention to gesture codes. Gestures are coded with english letters (but space is replaced with '_'), however they work in any layout -- Russian, English, Navigaton, etc.

Changing language layout

To activate Russian layout swipe down from "RU ▼▼" label:

To activate English layout swipe down from "EN ▼▼" label:

To hide the keyboard swipe down from "HIDE ▼▼" label:

To delete a character left of the cursor swipe left from "BS ◀◀" label:

To delete three, five or seven characters at once, perform gray, yellow or green gesture as shown on the picture:

To delete a word left of the cursor swipe down from "BS ◀◀": label

To clear input field swipe one key left and three or more keys down from "BS ◀◀" label:

Attention! If you deleted your text by mistake, don't worry -- it's still there in clipboard. Switch to Navigation layout and tap 'PASTE' key or long press the input field and press 'Paste'.

To activate Rare symbol layout swipe down from "SYM ▼▼" label:

You can activate this layout for single character, to do so swipe up from "SYM/1 ▲▲" label. Then Rare symbol layout will be closed automatically and you'll return to previous layout:

To activate Numbers layout swipe down from "NUM ▼▼" label:

To activate it for single character, swipe from that label upwards.

To activate Punctuation layout, swipe down from ".,?! ▼▼" label:

To activate Punctuation layout for single character, swipe from that label upwards.

To enter carriage return swipe from "ENTER ▼◀" one key down and two or more keys left:

To type a single uppercase character swipe upwards from "SHIFT ▲▲" label. You'll see green circle on that button. Then tap or double tap required character and it will be uppercase. Swipe twice to turn on CAPS LOCK mode -- the circle will become red and all characters are going to be uppercase. Swipe once again and CAPS LOCK mode will be off and red circle will disappear.

To launch this manual, swipe upwards from "HELP ▲▲" label. Press back key to return to your application.

To enter Preferences dialog wipe upwards from PREF ▲▲" label:

To activate Navigation layout swipe upwards from "NAV ▲▲" label:

To capitalize the first letter of the last word, swipe from "SHIFT ▲▲" one key to the right and upwards. For example, the word "gesture" will be converted to "Gesture":

To capitalize all letters of the last word, swipe from "SHIFT ▲▲" label two keys to the right and then upwards. Thus the word "gesture" will be converted to "GESTURE"r:

To capitalize everything inside your input field, perform this gesture:

The same principle could be applied to decapitalization. To decapitalize the first letter of the last word, swipe from "SHIFT ▲▲" label one key up and then to the right. For example it will turn "Gesture" into "gesture" and "GESTURE" into "gESTURE":

To decapitalize all letters of the last word, swipe from "SHIFT ▲▲" label two keys up and to the right. For example, it will turn "GeStUrE" into "gesture:

To decapitalize everything in your input field, perform following gesture:


Firm Touch provieds 8 macro sets, 15 keys each. To activate any of 8 macro sets, swipe from corresponding M1..M8 label, following triangle hints. For example, to open M1 macro set swipe from "M1 ▼▶" one key down and to the right. To open M4 macro set swipe from "M4 ▼▶" label one key and to the left.

To exit any macro set, tap exit button with a cross inside box.

Open M1 macro set:

This set has several preinstalled macroses. First line has standard smileys, plus "- [ ]" for Markdown lists. The second line has screen/tmux macroses: ^A^N (next screen), ^A^P (previous screen),^A^W (list of screens) and ^A^D (power detach. The next line has VI/VIM commands (including ESC first, to exit command mode): :wq\r (save and exit), :q!\r (exit withiout saving). The last line contains most used control characters: ^R (redo), ^C (interrupt), ^D (eof) and ^G (cancel).

Open M2 macro set:

This set has some preinstalled macroses too -- rare Russian letters ъ, Ъ, ё, Ё, Rouble sign, stress mark and obsolete letter "yat'":

Open M4 macro set (empty by default, as well as many other macro sets, waiting for your own macroses):

If you open any macro set and tap the macro then macro layout will be closed and macro sent into the input field.

M3 macro set has preinstalled some useful Cisco commands. C-S-6 means Ctrl-Shift-6 (or Ctrl-^). You can interrupt long operations with that special character. Other commands are the most frequent commands in author's workflow. Feel free to change them.

Macro editor

To edit any macro, long press on it. You'll see an edit dialog.

Macro body may consist of any text, including Unicode characters. Also you can use Java \uXXXX sequences (4 digits required). Macro title is not required, but it will be shown in macro layout instead of the body if non-empty. Macro gesture is not required either, but you can speicfy here gesture to call your macro directly. This is how ^A^N macro looks in the editor:

And this is how it looks in real work. Pressing ^A^N macro will send Ctrl+A Ctrl+N sequence into the terminal and your screen will switch to the next shell. Also you can slide your finger across space, 'r' and 'd' to call that macro.

To encode Ctrl-A use \u0001 sequence, Ctrl-B is \u0002, etc. Just follow the ASCII table. For example Cisco's Ctrl-Shift-6 (or Ctrl-^ if you like) is encoded as \u001E. Look up macro set #3, first macro.

To specify ENTER, use \r sequence


  • Haptic feedback: specify length of haptic feedback. To turn off haptic feedback completely slide it left.
  • Key autorepeat delay: select delay between two autorepeated characters.
  • Autocapitalization: capitalize sentences. Sentence start is detected by '.', '?' or '!' and space after that.
  • Delayed input mode: use delayed mode
  • Keyboard geometry: here you can change your keyboard geometry.
    • Font size: change keyboard's font size from tiny to humongous
    • Following settings are separate for portrait and landscape mode.
      • Keyboard height: default height is half screen.
      • Left gap: default is none.
      • Middle gap: usefult for large devices, default none for portrait and some arbitrary value for landscape mode.
      • Зазор справа: default is none.
      • Зазор снизу: default is none.
  • Backup & restore
    • Export configuration: configuration is exported as text into the clipboard. Save it anywhere -- note application, email, etc.
    • Export macros only: export only macroses, regular settings are not exported.
    • Import: import configuration from clipboard. Select and copy your backup configuration and tap this option. It will be parsed and imported.
    • Sample export:

Input modes: direct vs delayed

There are two input modes: direct and delayed. By default direct mode is used. In direct mode any character is displaeyd immediately. When double tap is detected, previous character is deleted and new character is sent.

In some cases this method fails. For example browser URL input. If you begin typing "http" the browser will add "ttp://...." from your history, then Firm Touch sends Backspace to erase previous character and now everything is messed up.

Also, sometimes you have to send certain character -- for example 'y' to answer "yes/no" question in terminal shell, or many VI/VIM commands, etc.

This problem can be solved with delayed mode. In delayed mode everything is delayed by 1 second. If you double tap 'y' then only 'y' will be sent after the timeout. Thus you can type and send only correct characters at the expense of your convenience.

Delayed mode is annoying and inconvenient, so it makes sense only in certain situations.

Gesture to switch to delayed mode:

Gesture to switch to direct mode:

This page was last modified at 04-Jul-2020 15:14