5

I have found soft keyboard applications that provide the Colemak layout for the virtual keyboard. However, I need the layout when touch-typing on a physical 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, but I'd prefer to do this without rooting.

How can I remap the keys of a physical keyboard to the Colemak layout?

1

5 Answers 5

4

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

1
  • Thank you for mentioning this app! I'm currently use an Apple Wireless Keyboard on my Android device. And that External Keyboard Helper app allows me to remap the useless upper-right Eject CD to Del. Tips: when trying to setup this, the Del key can be chosen by a key name "Forward Delete".
    – RayLuo
    Commented Apr 22, 2019 at 5:02
0

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.)

0

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?

2
  • This doesn't seem to work. My external USB keyboard still has US QWERTY layout when I am using Colemak AnySoftKeyboard.
    – rsaarelm
    Commented Jun 18, 2011 at 18:33
  • 2
    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
    Commented Sep 5, 2011 at 21:54
0

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

0

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!

2
  • Just discovered a bug that CapsLock doesn't work for mapped keys. Commented Oct 31, 2012 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.
    – mathlete
    Commented Nov 12, 2013 at 18:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .