Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

There are some soft keyboard applications that provide the Colemak layout for the virtual keyboard. I mostly need the layout when touch-typing on a physical keyboard though. so I'd like an application that lets me remap the keys of a physical keyboard to the Colemak layout, or an app that lets me specify any layout for an external keyboard. In my case, I'm using a regular USB keyboard plugged into an Iconia A500 tablet. The keymap should be freely customizable by modifying system files on a rooted phone, but I'd prefer to be able to do this without rooting the phone.

share|improve this question
    
See also android.stackexchange.com/questions/5128/… –  w3d May 24 '12 at 12:02
add comment

5 Answers

up vote 2 down vote accepted

Looks like the External Keyboard Helper app lets me switch layouts of an external USB keyboard on my Nexus 7, no root access needed.

share|improve this answer
add comment

I have a similar issue trying to get my physical keyboard to work with Dvorak. I came across the following links:

http://www.mjvanderwielen.com/?p=1321
http://jahrome.free.fr/index.php/keyboard-mapping-android-htc-desire?lang=en

These essentially describe how to create your own keyboard mapping file. You'd need root access to do this. I haven't tried this myself though (yet.)

share|improve this answer
add comment

According to the first Android related link on the front page of http://colemak.com/ the AnySoftKeyboard app (market link) is their main recommendation for Android phones. One of the bullet points in the featuireslist on their home page is:

Physical keyboard is supported as-well.

It sounds like that could do the job for you?

share|improve this answer
    
This doesn't seem to work. My external USB keyboard still has US QWERTY layout when I am using Colemak AnySoftKeyboard. –  rsaarelm Jun 18 '11 at 18:33
1  
I can confirm that ASK doesn't work for physical keyboards. They have an issue open in their bugtracker: code.google.com/p/softkeyboard/issues/detail?id=181 –  zcrar70 Sep 5 '11 at 21:54
add comment

Apparently, Android 4.1 has built-in support for changing the layout of USB and Bluetooth keyboards, /and/ allows users to install custom layouts without root.

Not much use for devices without Jellybean, but it's good to know that up-to-date devices don't have this issue anymore.

https://code.google.com/p/android/issues/detail?id=17119

share|improve this answer
add comment

As a partial solution...

I've had some success with extkeyboardremapper (AKA laurent2o1o Keyboard). I successfully swapped Q with A by following the translated French instructions.

I haven't got as far as creating a full layout, but I wonder if I could just copy layouts from somewhere in Ubuntu.

Edit: On Ubuntu and probably most other Linux systems, these files are found in:

/usr/share/X11/xkb/symbols/

For non-Linux users, here's the web repo of the source:

http://cgit.freedesktop.org/xkeyboard-config/tree/symbols?h=2.2-branch

The files aren't directly compatible with extkeyboardremapper, but they can serve as a guide for making the k2g.cfg file. Colemak and Dvorak can be found in the us file, other files such as gb just amend the US version it seems.

Edit: Using the X11 keyboard layout files as a guide, I made a k2g.cfg for Colemak, to complete my solution.

Here's how to use it:

mkdir /sdcard/keyremap

Make this file:

/sdcard/keyremap/s2k.cfg

86 => 773

This is because Android doesn't seem to have a keycode for <LSGT>, so let's call it 773 for now.

Make this file:

/sdcard/keyremap/k2g.cfg

==== USA - Colemak ====

0 68 ` ~ 0303 ~
0 8 1 ! ¡ ¹
0 9 2 @ º ²
0 10 3 # ª ³
0 11 4 $ ¢ £
0 12 5 % € ¥
0 13 6 ^ ħ Ħ
0 14 7 & ð Ð
0 15 8 * þ Þ
0 16 9 ( ‘ “
0 17 0 ) ’ ”
0 69 - _ – —
0 70 = + × ÷

0 45 q Q ä Ä
0 51 w W å Å
33 f F ã Ã
46 p P ø Ø
48 g G 0328 ~
53 j J đ Đ
49 l L ł Ł
37 u U ú Ú
43 y Y ü Ü
44 ; : ö Ö
0 71 [ { « ‹
0 72 ] } » ›
0 73 \ | ~ ~

0 29 a A á Á
47 r R 0300 ~
32 s S ß ~
34 t T 0301 030B
35 d D 0308 ~
0 36 h H 030C ~
38 n N ñ Ñ
39 e E é É
40 i I í Í
74 o O ó Ó
0 75 ' " õ Õ

0 54 z Z æ Æ
0 52 x X 0302 ~
0 31 c C ç Ç
0 50 v V œ Œ
0 30 b B 0306 ~
42 k K 030A ~
0 41 m M 0304 ~
0 55 , < 0327 ~
0 56 . > 0307 ~
0 76 / ? ¿ ~

0 773 - _ – —
0 62 0020 0020 0020 00A0


==== United Kingdom - Colemak (extension) ====

9 2 " ² ⅛
10 3 £ ³ £
11 4 $ € ¼

75 ' @ 0302 030C
68 ` ¬ | |

73 # ~ 0300 0306
773 \ | | ¦

The prepended 0's effectively comment out the line. I've commented out all but the necessary lines due to this bug, but if the bug gets fixed, or you use the AltGr characters more than Ctrl shortcuts, then just uncomment them.

US users can cut the UK extension at the end, others will have to replace it with their own.

If you really want to duplicate your Backspace key, you need to add this line to s2k.cfg:

58 => 67

...but you may find that the backspace function is merely added to the CapsLock key.

Now just install extkeyboardremapper, enable it, and select it!

share|improve this answer
    
Just discovered a bug that CapsLock doesn't work for mapped keys. –  James Haigh Oct 31 '12 at 10:33
    
I have the same problem with External Keyboard Helper: I just can't manage to make Caps Lock another Control. Although I can choose it in the custom layout, it simply doesn't seem to be applied. –  Marius Hofert Nov 12 '13 at 18:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.