Frequently Asked Questions

Q: Why can't it just automatically switch between the Input Method instead of showing that selection dialog every time I connect or disconnect a keyboard?

A: For security reasons Android is designed not let any app except system apps to change Input Method. There is nothing I can do about this and bringing up the Input Method selection dialog is "as good as it gets". Update 2012-09-22: It seems that if you are rooted this can be automated with the app Tasker according to this blog post. I have not tried this myself.

Q: How can I help getting this app translated into my native language?

A: Visit this page.

Q: Why does this app requires so many permissions?

WRITE_SETTINGSKeycodes that change screen brightness
WRITE_EXTERNAL_STORAGEBackup custom layouts
READ_EXTERNAL_STORAGE   Restore custom layouts
BLUETOOTHKeycode that toggles Bluetooth on/off
BLUETOOTH_ADMINKeycode that toggles Bluetooth on/off
ACCESS_WIFI_STATEKeycode that toggles Wifi on/off
CHANGE_WIFI_STATEKeycode that toggles Wifi on/off

Q: I've setup a custom layout using the demo version and now I bought the pro version, do I need to redo my custom layout?

A: No, while viewing your custom layout in the demo version, press the menu button and choose to backup the layout. Then create a custom layout in the pro version and press menu and choose to restore.

Q: I've added some "Text strings" and "Application shortcuts" but how do I map them to specific keys?

A: You map these just like you map characters but for the "Text strings" you input T0 to TF (or 0x2400 to 0x240F if you prefer unicode). For "Application shortcuts" you use A0 to AF (or 0x2410 to 0x240F). For example if you have chosen the app Gmail for A3 and want to use Alt+G to start Gmail you create a custom mapping for the key G (or modify an existing one if G is already remapped on your layout) and as the "Alt" character you enter "a3", "A3" or "0x2413".

Q: What's the deal with the two (three) different CapsLock modes?

A: There are three ways to handle CapsLock for a key.
CapsLock = Ignore: This key does not care about the CapsLock state.
CapsLock = Shift: This is the most common way and the only way up to version 2.4 of the app. It simply means that if CapsLock is On then use the character you would get by holding down the Shift key.
CapsLock = toUpper: This is the new mode introduced in version 2.5 of the app. It means that it will take the character that would normally print and use the operating system function toUpperCase and try to convert it to upper case before printing it. This is used by some layouts like for example the Swiss layouts that has different characters in the normal and the shift positions for some keys. By using this CapsLock mode it is possible to get the uppercase version of both the normal and the shifted character.

Q: Why isnt't <insert any unsupported layout here> supported? Will giving bad rating and complaining in the rating system help?

A: It is hard for me to now which layout is important to you, but using the rating system to tell me that is not a good method. Sometimes it is hard to find information about layouts and often I find several different ones and no reliable information which is the correct or the most popular one. Mail me instead so that I can get the information I need to add support for the layout that you need.

Q: I cannot pair a Bluetooth keyboard with my device. Will this app help me do that?

A: No. Your Android version must support bluetooth (or USB) keyboards for this app to be useful.

Q: My Android version is supposed to work with Bluetooth keyboards but I still cannot pair my Bluetooth keyboard. Android wants me to put in a 4-digit number but my keyboard doesn't seem to have one and I've tried 0000 and 1234 and none of them works.

A: Try typing 1234 in android and quickly after pressing OK type 1234 followed by Enter/Return on your bluetooth keyboard. This works for me with CyanogenMod 7.2 and my Targus Bluetooth keyboard.

Q: Your app treats some characters as combining characters (a.k.a. dead keys) even though they are not supposed to work like combining characters in my language.

A: Go into the settings menu for the External Keyboard Helper Pro and in the Combining Characters menu you can uncheck those characters that you do not want to be treated as combining.

Q: What's the deal with "Always remap keys"? Why would I want to remap keys that do not need remapping?

A: Two reasons. Often on Android 2.x a long press on a hardware key brings up a popup to select alternative keys. Most people do not want or need this. Second reason is that some devices have built in methods for switching keymaps and if the currently active keymap is not English US layout then all mappings will not be correct. So for compability reasons this option is checked  by default. Basically it means all keys are processed the same way even though most of them doesn't need remapping.

Q: I remapped a character to one of the shift buttons but now it both prints the character and works as a shift key.

A: If you want to map other functions to one of the "special keys" that Android normally handle internally you must check the "Override special keys" option in the "Advanced settings". Checking this makes the app handle Ctrl, Alt, Shift and CapsLock keys internally which makes it possible to assign other functions to these keys.
NOTE: Android versions prior to 3.0 does not have a keycode for CapsLock so the CapsLock key is not affected by this option unless you run Android 3.0 or later.

Q: On my Bluetooth keyboard some keys are not working as expected even though I have selected the predefined layout for my keyboard, what can I do about it?

A: Bluetooth keyboard sometimes does not follow the same layout as standard USB keyboards (my own Targus iPad Bluetooth keyboard is one example that needs some tweaking). Luckily the app allows you to tweak this.
  1. Enter the settings for External Keyboard Helper
  2. Select the closest matching layout (in my case that would be Swedish)

  3. Then select "Customize keyboard mappings"
  4. Confirm that you want to overwrite the current custom mapping with the currently selected layout.
  5. Select the mapping you want to change (in my case the ESC button is not working).
  6. In my case I want change this to a different scancode so I press "Change"
  7. It will not allow me to enter a new scancode and I do that by pressing the ESC key on my Targus bluetooth keyboard. It turns out that it uses keycode 139 and not 1.
  8. I the press Save and notices that a new mapping appears in the end of the list (the old one is still there because when I change the scancode the old one is not overwritten. I could delete the old mapping but in this case there is no harm done by leaving it as it is).
  9. On my keyboard the key that is normally left of Z is placed left of the number 1 so I need to do another scancode remapping repeating step 6 to 8.
  10. My Targus keyboard have @ printed as alt-character on the '/* key instead of the normal placement on a swedish/finnish layout where it is the alt-character of the number 2 key so let's add @ to the '/* button.
  11. I then select the input field for the "Alt"-character and inputs an @. It can be entered as a hexadecimal unicode or as a single character.
  12. I then click Save and I'm done unless I want to delete the no longer needed mappings for scancode 1 and 86 (but I'm lazy so I won't bother with that).

Q: I want to manually add some combining characters to my custom layout but do not know which unicodes I should enter when I customize my layout.

A: Here's the unicodes that are currently treated as combining characters in External Keyboard Helper:

0x00b4Acute ´
0x0027Apostrophe ' (default off)
Breve ˘
Caron ˇ
0x00b8Cedilla ¸
Circumflex ^
0x0326Comma below ,
Diaerisis / Umlaut / Dialytika ¨
0x0385Dialytika tonos ΅
Dot above / Dot below ·
Double acute ˝
Grave `
Hook above  ̉
Ogonek ˛
Quotation mark " (default off)
0x02daRing °
Tilde ~
Tonos ΄