Remapping Physical Buttons/Adding Alternate Keys - Motorola Droid 4
I am aware that there is a thread in the Droid 4 Dev Section but as I am a "New User" I can't post there
^^ And as I am a new user please excuse any mistakes I make in posting/formatting this
I am going to be redoing this guide soon for several reasons.
A few days after I made this thread the root functionality of File Expert became something you have to pay for. I also found a good hex editor which is much clearer then Notepad ++.
There are two parts to this guide, Remapping Physical Keys/Buttons and Alternate Keys(Using the SYM key as an ALT key as on previous Droid versions).
Things to download
File Expert (I use this as my root file explorer, permission editor, etc. it also lets me remount the /system as read write which I couldn't seem to do with adb remount or busybox remount.) You dont NEED this, you should theoretically be able to use terminal/adb shell but I couldn't get it to work so this guide uses it.
KeynrTracker.apk (For Remapping buttons not covered) Attached, From http://forum.xda-developers.com/showthread.php?t=850464 - the actual button remapping tool doesnt work with Droid 4 yet
Notepad++ I would recommend using Notepad++, but any editor that can handle binary/unix files - NORMAL NOTEPAD DOES NOT WORK, NOR DOES WORD
THE PHONE NEEDS TO BE ROOTED FOR THIS TO WORK - MAKE A BACKUP OF THE FILES THAT WE ARE GOING TO EDIT
Remapping Physical Keys
The files in /system/usr/keylayout are the configuration for physical buttons, you can edit all of them, but I would recommend only editing omap-keypad.kl(Physical Keyboard) for the time being, as you could disable the capacitive buttons. IF you do somehow mess up omap-keypad.kl (I didnt have the correct permissions at first) android has a default generic version it defaults on if omap-keypad.kl doesn't work correctly, you can tell it is using this as the Caps Lock key, Shift key, SYM key wont work properly and the Arrow buttons will all be rotated to the right so up = right, right = down etc.
This part of the guide is essentially this older guide for HTC Hero, but with more customization for the Droid 4.
Either download my uploaded copy of the original omap-keypad.kl or get your own from /system/usr/keylayout/omap-keypad.kl
Open omap-keypad.kl in a text editor either on your phone(touchqode is what I use) or on your computer (Notepad++)
For this example I am going to remap the SYM key to an ALT key so it can be used in the next part of this guide.
In your text editor find
Code:
key 162 SYM WAKE_DROPPED
(It should be at the bottom) 162 is the physical scancode, SYM is the action that happens and WAKE_DROPPED tells the OS that if the phone is off pressing key 162 will wake it but it will not send the keypress. We want to make this an alt button so all we do is change SYM to ALT_LEFT (You have it be ALT_RIGHT, I'm not sure theres a difference but I use ALT_LEFT). So it should look like
Code:
key 162 ALT_LEFT WAKE_DROPPED
If you want other keys, for example I remapped the OK key to be a SHIFT_RIGHT key, you need to find the scan code for the key using the attached KeynrTracker.apk
So in this case the scancode is 232, so we go into our omap-keypad.kl file and find key 232
We see that it is mapped to DPAD_CENTER and I want to make it a shift button so I'll change it to SHIFT_RIGHT
Now we need to get our keymap back onto the phone should be as simple as
Code:
adb remount
adb push omap-keypad /system/usr/keylayout
BUT, that did not work for me so I had to use File Expert to remount and copy the file. So transfer the file to the internal phone storage/sdcard, then use File Expert to remount the /system as rw.
Go to /system press the menu button -> More -> Mount -> Mount as Read Write
Then copy the edited file from your sdcard to /system/usr/keylayout it should prompt you that there is a file there called omap-keypad.kl, select overwrite.
Then long hold on the omap-keypad.kl file and select permissions from the menu.
Make sure the permissions look like below, and click apply.
Now reboot your phone and your custom key mappings should work!
Creating Alternate Keys
The biggest issue I have from switching from a OG Droid to the Droid 4 is the fact that you have to press SYM and select your symbol instead of alternate symbols for a key.
So we already set up the SYM key to act as an ALT key in the first part, but now we have to define the keys so they do something when our "ALT" key is pressed, this data is stored in /system/usr/keychars/omap-keypad.kcm.bin, like before you can use my uploaded versions or get your own from that directory. But unlike before these aren't straight forward text files they have been converted to binary, because it is faster for the system to read. So when we open it in Notepad ++ this is what it shows
Because this file is binary/hex the all the nul symbols really = 00 in hex = 0 in binary. If you feel comfortable editing the hex code directly you can convert the document from ASCII to hex in notepad ++ under the plugin menu, and use this to figure out the characters http://www.ascii-code.com/
But for the purpose of the guide we are going to ignore the NUL symbols and change the characters. If it helps you can make a copy and open it in normal notepad because it doesnt show the null characters, BUT YOU CAN NOT USE NOTEPAD TO EDIT IT. So to set a key so it will use an alternate key when ALT(SYM) is pressed you need to find 5th instance of that in the document, so in this case I want to make the "," and "." keys be "<" and ">" when SYM is held down, so I need to change the 5th definition for the , key to < so it should look like this
Code:
NUL,NUL,NUL,NUL;NUL<NUL;NUL
And the same for the "." key
Code:
NUL.NUL.NUL.NUL:NUL>NUL:
From what I understand from poking around on the files from my phone and looking at things on the internet the first two times the character appears is defining what key has what attributes, the 3rd one is the lowercase, 4th is the uppercase, 5th is the ALT and 6th is the ALT+Shift. So with out all the Nulls this is what the Key Character Map for A looks like, A A a A a A and for "," it is , , , ; ; ; but for our edited version it is , , , ; < ; because the 5th spot is the one that represents the character you will get when you do that key + ALT.
Now to get the file back onto your phone do what we did before but put it in /system/usr/keychars/omap-keypad.kcm.bin
Make sure your permissions are the same as the one for the omap-keypad.kl
Restart and you should have a working Alternate Key Character
Awesome, can't wait to try this out. I haven't looked at all of this quite yet, but i am hoping to be able to remap caps lock, the most useless key ever, to something better. Thanks for your work!
Sent from my DROID4 using XDA App
The guide was amazing helpful for binding >< and changing caps lock to be an alt key, but I was wondering if you had any idea which file would have the operations for alt + backspace to make it clear a whole line. Again thanks for the guide.
valhala.awaits said:
I haven't looked at all of this quite yet, but i am hoping to be able to remap caps lock, the most useless key ever, to something better.
Click to expand...
Click to collapse
WHAT THE HECK ARE YOU TALKING ABOUT? CAPS LOCK IS THE BEST KEY ON THE KEYBOARD. THIS IS BLASPHEMY.
(Sorry couldn't resist )
Keyboard maps out pretty well, I did
quote -> backquote
I -> pipe
O P -> { }
K L -> [ ]
/ -> \
, . -> < >
Q -> tilde
Used CAPS LOCK as my alt key.
Left the SYM key entirely alone.
Half tempted to make caps lock and OK shift keys, make sym key the OK key, and make shift key the ALT key.
BTW, ALT+arrows and backspace work as they did on the Droid 1/2/3.
Thanks so much for posting this, really has made the Droid 4 keyboard *SUBSTANTIALLY* better!
kasouti said:
The guide was amazing helpful for binding >< and changing caps lock to be an alt key, but I was wondering if you had any idea which file would have the operations for alt + backspace to make it clear a whole line. Again thanks for the guide.
Click to expand...
Click to collapse
I'm not sure, neither of my phones(OG Droid, Droid 4) have had that functionality so I'm not sure what makes that work. If you want you can send me your keylayout and keychars folders from your old phone(Droid 2/3?)that had that, through a PM and I'll try to figure out how to add that.
kb remap
moah99 thank you thank you thank you. The one key I totally miss from my D1 is the @ key and thanks to you I have remapped the useless caps lock key to @. Caps lock would be useful except I use swiftkey that renders it inoperative on the D4.
After finding the correct key (222) with keynrtracker, I completed the rest using rootexplorer - backed up that file, mounted the containing folder as r/w, opened file in text editor, edited the correct line to show AT instead of CAPS, rebooted phone and it worked perfectly.
Tried this but....
I tried changing the key 222 (Caps lock) to power the phone off and on (when i text people and I'm watching tv i typically just leave the keyboard open and lock the phone, but the power button isn't exactly easy to find) so i wouldn't need to use the power button on top. It didn't work, is there anyway i can get it to work?
Thanks,
Jacob
moah909 said:
I'm not sure, neither of my phones(OG Droid, Droid 4) have had that functionality so I'm not sure what makes that work. If you want you can send me your keylayout and keychars folders from your old phone(Droid 2/3?)that had that, through a PM and I'll try to figure out how to add that.
Click to expand...
Click to collapse
Looks like it does support it. For some reason it was just buggy at first and didn't seem to respond to alt then left. As for the delete, I was coming from an epic and my friend with a droid 2 had told me the alt then delete would wipe the line, apparently alt has to be held when it's hit and within texting you either need 2 blank spaces before pressing it or to have just finished deleting a word. Or some odd rules like that. Thanks for the help.
Hmmm. I'm running into some oddness here, the shifted number keys look right in the kcm.bin file, but they don't work in Connectbot. It looks like they're being treated like ANSI function keys instead. Anyone else know what's up here? I've never owned a Droid-anything before, my previous two phones (G1 and TP2) keyboards work fine in Connectbot.
highlandsun said:
Hmmm. I'm running into some oddness here, the shifted number keys look right in the kcm.bin file, but they don't work in Connectbot. It looks like they're being treated like ANSI function keys instead. Anyone else know what's up here? I've never owned a Droid-anything before, my previous two phones (G1 and TP2) keyboards work fine in Connectbot.
Click to expand...
Click to collapse
See (http ://code.google.com/p/connectbot/issues/detail?id=558) Issue 558 on ConnectBots site.
here is an untouched system/usr/keylayout incase anybody needs it:
http://www.mediafire.com/?mtsl53uus6qkwfz
Help me please
So you definitely seem to understand how this works. Well i tried making my caps lock key a power key because my power key sticks really bad, and all that did was screw up my dpad (like when i would press the left arrow it would go down, etc) and so i asked for a /system/usr/keylayout file which i got and tried pasting it into the usr file to fix all the things i may have screwed up and now nothing works. The capacitive buttons, all of the keyboard and the volume and power doesn't work. What do i have to do?
remap slash key to just question mark
What is the proper designation in Omap-kypad.kl for the question mark? I wanted to convert the slash / key to just the question mark. The D1 has one - I looked at the Omap-kypad.kl on my D1 but couldn't find anything that looked like "quest" or "question", etc. On the other hand I don't see that slash in the symbol set when the SYM key is pressed so maybe I shouldn't change it. Would be nice to know if its possible though.
H0H3N5T3RN said:
So you definitely seem to understand how this works. Well i tried making my caps lock key a power key because my power key sticks really bad, and all that did was screw up my dpad (like when i would press the left arrow it would go down, etc) and so i asked for a /system/usr/keylayout file which i got and tried pasting it into the usr file to fix all the things i may have screwed up and now nothing works. The capacitive buttons, all of the keyboard and the volume and power doesn't work. What do i have to do?
Click to expand...
Click to collapse
You should check the permissions of the files using adb shell/terminal emulator.
Code:
su
cd /system/usr/keylayout
ls -l *
It should look like (with your date of course)
Code:
-rw-r--r-- root root 3383 2012-02-24 23:20 omap-keypad.kl
-rw-r--r-- root root 245 2011-12-28 15:23 AVRCP.kl
-rw-r--r-- root root 75 2011-12-28 15:23 cpcap-key.kl
-rw-r--r-- root root 1834 2011-12-28 15:23 evfwd.kl
-rw-r--r-- root root 3609 2011-12-28 15:23 usb_keyboard_102_en_us.kl
-rw-r--r-- root root 4132 2011-12-28 15:23 qwerty.kl
If it doesn't say -rw-r--r-- that means the correct permissions aren't set, so run:
Code:
chmod 0644 *
and all your buttons should work!
Your original issue was probably the same thing the permissions on the file probably weren't set right which makes it default on a generic keylayout. I did the same thing when I first was remapping my buttons and I couldn't figure out what was wrong for a couple weeks
Although this looks like a very powerful tool for remapping keys, I'm a little overwhelmed. For my previous WM phone, HTC Touch Pro 2, there used to be a very intuitive, easy-to-use remapping tool.
Is there any chance that somebody will develop another key-remapping tool targeted for the technically challenged if I wait this one out?
Can somebody tell me how I can assign "!" to shift+1?
I know. "!" is assigned to shift+1 by default. But with Smart Keyboard Pro, all symbols are messed up so I have to reassign them all individually.
I am a total noob when it comes to coding and I just remapped my search key and made it a second power key! Two minutes, root explorer did the trick.This is my first post on these forums and this is a fantastic thread for noons and pros alike!
P.S. I tried the app first but the layout file is named as QWERTY.kl in CM 7.2 RC 1 so I had to do it manually.I used your helper app to find out what I needed to change!
Cheers to the contributors of knowledge to this thread!!!!!! :beer:
Sent from my LG-P500 using Tapatalk 2 Beta-5
greekchampion04 said:
here is an untouched system/usr/keylayout incase anybody needs it:
http://www.mediafire.com/?mtsl53uus6qkwfz
Click to expand...
Click to collapse
Any way to PM me this file? It is no longer available at that link. Thanks in advance
Remmap a key to no function
Hi, I was wondering how to remmap a HArd Key to do nothing. I can eighter modify the .kl file or use ButtonRemapper, but what should I write in order to dissable this key.
The reason is because the volume down button is broken and keeps pressing itself when the phone heats up.
Thank you!
Change the keyboard layout
Hello,
I use a smartbook HP Compaq Airlife 100 with Android 1.6. This device has a physical keyboard with Spanish layout. I want to change it into a German layout. In /system/usr/keychars I find a German quertz_hawthorne_german.kcm.bin. In /system/usr/keylayout I find a quertz_hawthorne_german.kl.
At which place is the trigger for switching the used keyboard language? In the normal Android menu I can only choose English-uk, English-us and Spanish.
The only thing I have found is in /system/build.prop: ro.product.locale.language=es and ro.product.locale.region=ES
Regards Svgt99
Related
Wing hidden shortcut keys
I made a write-up on the Wing's hidden shortcut keys. A few weeks ago while I was typing up my on-site notes at work, on my T-Mobile Wing the device threw me a tilde (~). This confused me because this device doesn't have a tilde key and I wasn't working in the symbol keypad. About two weeks later I was able to get the device to type another symbol that isn't shown on the keyboard, thankfully I was texting and not at work, so after a few minutes of experimenting I was able to chart all of the alternate keys that are available on the Wing. So what is the T-Mobile Wing? The Wing is a Windows Mobile 6 Professional smartphone that has a sliding keyboard, WIFI, bluetooth, and Microsoft Voice command built in. Voice command lets you perform certain tasks by voice without a training session like most phones with voice control require. Price was $299 at launch. Chart of alt keys and instructions after the jump. Pressing the alt key on the left of the chart (shown in blue on the keypad) while still holding alt and then pressing the space bar will give you the symbol on the right of the chart, pressing space multiple times while still holding alt will give you the other symbols on the chart. The number keys and the other keys not listed don't respond to this function. Blue Key Result ( [{<« ) ]}>» / \| # * ! ¡?¿ ? ¿!¡ _ +±&- " '«» % ^ - _+±& + ±&-_ @ ~ ' «»" & -_+± : ,;. * # ; .:, , ;.: Obviously a few of these keys just duplicate existing functionality, but some of them are very useful and if you use some of these symbols regularly they can save you loads of time using alternate methods to get these symbols. I am a manual reader and didn't see this information listed in the manual. (I just double checked to be sure). This information is not in the manual. Pressing alt tab brings up a useful symbol panel. This symbol panel is similar to the charmap function of a windows computer, and contains several pages of symbols that you can insert into your text. Update: Thanks to blackout203 @ XDA Developers, while they were trying this out they found out about the multiple keypresses.
actually this is a nice find but I just found something from learning yours if you press the space key more than once, you can get even more symbols! try it out i got << and >> on the " key
Thanks, I've updated the article and the posting.
btw - on wizard devices you could choose the ranking of the symbols by editing the sym.txt. DOn´t even know if herald alos has a sym.txt. But perhaps someone could give it a try. lol
sym.0409.txt yes, the "sym" file is present in herald too. the name of the file is "sym.0409.txt" for WWE version (T-Mobile Wing)
Nice, but I want the space character when entering numbers So that explains why when I am entering phone numbers and addresses and I want to put in spaces, the space key doesn't work! I've found this incredibly frustrating because i have to double-press the ALT key to get in in ALT mode, type a bunch of numbers, press the ALT key to get out of ALT mode, press the space bar, double-press the ALT key to get back into ALT mode, then continue on with the numbers. Do you know if there is a way to get the space key to put in a space while in ALT mode??
i found the sym.tct file on my herald in the folder /windows. However i can't edit it since the file is located in the ROM memory. how can I change the properties of the file such that I can edit it? I already tried setting the permissions through total commander, but that doesn;t work I can't remove the read-only setting
madcow_mda said: i found the sym.tct file on my herald in the folder /windows. However i can't edit it since the file is located in the ROM memory. how can I change the properties of the file such that I can edit it? I already tried setting the permissions through total commander, but that doesn;t work I can't remove the read-only setting Click to expand... Click to collapse try to rename or copy it and edit the copy - then copy back. somehow it worked. hope
Zero Button on Hardware Keyboard
Hi guys, I've a Xperia with a German keyboard layout. So I'm a little bit confused, but I'm able to use the keyboard in Android. My problem is that I've not found the "0" button. All numbers are available with the blue (FN) button. Is there any possibilty to get the the zero or to activate a virtual keyboard? Thanks a lot Thore
virtual keyboard, click anywhere with a text field?
sadly the android virtual keyboard is not available in terminal. So the only way i know of is to activate the linux kernel virtual keyboard by editing the startup.txt Replace msmvkeyb_toggle=off by msmvkeyb_toggle=hide, and you will get a blue square always on screen. Tap that and you will get a virtual keyboard. That will work until someone maps a x1-key to the zero.
n00b3r said: Edit2: Keys do not work with this key layout than original qwerty. I looked at the both files and they look hugely different in format. Also, its no point opening up and recompiling the sqsh, qwerty.kl is symlinked to /etc/keylayout/qwerty.kl, which is in /init.etc/keymaps/ in the rootfs.img. Click to expand... Click to collapse With that final hint, we now can solve the zero issue For that, we have to modify the qwerty.kl in rootfs.img, so mount that file (see quote post for details) and open file with your favorite editor. Edit line Code: key 3 2 to Code: key 3 AT That will map the @-hardware-key to @-char. And by pressing the blue button in addition to @ (like for the other numbers) we will get zero
[MOD] Remap search softkey to camera
I TAKE NO CREDIT FOR THIS LITTLE HACK, THIS WAS DONE FOLLOWING THE INSTRUCTIONS FROM THIS SITE. ALL CREDIT GOES TO Decad3nce for making this as easy as 1,2,3. --------------------------------------------------------------------------------------------------------------------------- THIS SHOULD WORK ON ANY 2.2 ROM. I DON'T KNOW ABOUT 2.1.-------------------------------------------------------------------------------------------------------------------------------------------------------------- ***INSTRUCTIONS*** 1) Download the file HERE 2) put the "incrediblec-keypad.kl" file you just downloaded into the TOOLS folder of your Android-SDK folder. 3) run this: Code: adb remount adb push incrediblec-keypad.kl /system/usr/keylayout 4) Reboot your phone, and then long press the search key to check it out! ------------------------------------------------------------------------------------------------------------------------------------- UPDATE Big Thanks to Touchpro247 over on at for putting together a .zip to flash via recovery! "Just install via recovery. or Un-install via recovery."
no way! i requested this exact feature a while ago on android forums but seemed nobody was interested. so i gave up, haha. so stoked to see this, at work right now, but i am def gonna install this when i get home. thank you!
Awesome find! I like to use my voice search for the search button so I instead mapped camera to the long press menu button. Is there a way to get this working with optical pad? Didn't think the whole menu button thing to thoroughly. Going back to Search button.
Thanks a bunch for the support guys! I'm not too sure about the optical trackpad sorry man!
Would people be able to use Root Explorer to copy the file into designated location? I renamed the original file, just to be safe and copied the new one...then rebooted and it disabled all the soft keys...so I am back to the original for now.
Here's an update.zip for it. Just install via recovery. or Un-install via recovery. Thanks for posting!
touchpro247 said: Here's an update.zip for it just install via recovery. Thanks for posting! Click to expand... Click to collapse Awesome touchpro... Reason, I did it that way was I wanted to keep the original for backup. I will try update.zip. Thanks! Tats_06 aka olta777
touchpro247 said: Here's an update.zip for it just install via recovery. Thanks for posting! Click to expand... Click to collapse Your welcome man, thanks for posting this, I tried and tried to do this and couldn't get it. I appreciate it. updating OP.
op, thanks for posting
When I edited the the incrediblec-keypad.kl file to use a long press of the Menu button, the short press of the Menu button stopped working. So, no more menu access. What am I doing wrong? Thanks. Code: key 107 ENDCALL WAKE_DROPPED key 116 POWER WAKE_DROPPED key 115 VOLUME_UP WAKE key 114 VOLUME_DOWN WAKE key 217 SEARCH WAKE_DROPPED key 158 BACK WAKE_DROPPED key 139 CAMERA WAKE_DROPPED key 102 HOME WAKE_DROPPED
So, would replacing the key ID with the ID of the optical trackpad button work?
Good questions guys I wish I could be of some help but I don't know much about this stuff
WOW, this works perfectly! Thanks for posting...I always hated the search button anyway.
INTREPID-NY said: When I edited the the incrediblec-keypad.kl file to use a long press of the Menu button, the short press of the Menu button stopped working. So, no more menu access. What am I doing wrong? Thanks. Code: key 107 ENDCALL WAKE_DROPPED key 116 POWER WAKE_DROPPED key 115 VOLUME_UP WAKE key 114 VOLUME_DOWN WAKE key 217 SEARCH WAKE_DROPPED key 158 BACK WAKE_DROPPED key 139 CAMERA WAKE_DROPPED key 102 HOME WAKE_DROPPED Click to expand... Click to collapse Curious, did you edit it in a "unix" editor? If you used something like notepad to change it and save it, it would be saved in the DOS format. I wonder if using something like Textpad to open and save it in UNIX text format would make it work...
I used ultraedit - it may have saved it in DOS format. I'll give it another try and make sure it saves as Unix.
Is there a way to make the the search function still work on a short press? When I short press my search button it does nothing but when I long press it brings up the camera...any fix would be great thanks!
AisforAustin said: Is there a way to make the the search function still work on a short press? When I short press my search button it does nothing but when I long press it brings up the camera...any fix would be great thanks! Click to expand... Click to collapse if you do that, it may wanna bring up the search menu while you are taking a picture with this button (when camera app is open).
Farenhe1t said: WOW, this works perfectly! Thanks for posting...I always hated the search button anyway. Click to expand... Click to collapse yes , I think so.
Can anyone point me in the right direction of a droid incredible keymap? It doesn't seem that pressing the optical track pad button is mapped to anything easily recognizable in the qwerty.kl file, so I'm not sure how to find the button's ID. I looked in the optical trackpad wake thread, but the only difference I could see between that file and the one on my phone is that key 232 was changed from WAKE to WAKE_DROPPED, which I imagine wouldn't change whether the key could wake from sleep or not. I tried using the zip in this thread modified to sub in key 232 (dpad center, seems like maybe thats opti trackpad press) but it did not launch the camera as expected. As far as I'm concerned, the ideal button mapping would be pressing the opti track pad to launch the camera app, and swiping any direction on the opti track pad to take a picture from within the camera app. First step is to get that button to launch the app, which is preferable to rebinding search, since the opti button isn't used for anything anyways. Any help would be greatly appreciated.
im currently trying to remap the short press on my milestone to act as the long press (so i can set it to open quick settings on short press) and then the long press can be set to the search. could anyone point me in the right direction? i know how to remap keys but im having trouble changing the short and long press for my search key.
Key Remap - help needed
So one of the things I definitely do not like on the Droid 4 was the inclusion of a Caps Lock key. Seriously? WHO NEEDS TO SOUND THIS ANGRY ALL THE TIME? NO ONE. So one of the things I always immediately do when flashing a rom is go into the key layout and change this to a much more appropriate shift key. However, the latest cm9 build (8-15) seems to be giving me some issues. The caps key is #222 Usually I go into /system/usr/keylayout/ and edit the qwerty.kl file. Sometimes I have to change the key 222 entry, sometimes I have to make my own. This does not seem to work this time though. Does cm9 use a different file for key layouts? I even edited the Generic.kl, which I'm pretty sure doesn't apply to the phone's physical keyboard. Any advice or solutions would be greatly appreciated. Thanks! -----Resolved----- So like 5 minutes after I posted this I realized it was the omap4-keypad.kl file that needed editing. Derp. Sorry! Sent from my XT894 using Tapatalk 2
Custom keyboard layout
Hey, I found OK and caps lock keys on the D4 keyboard useless - I just don't see any difference between using OK, mapped as D-pad center, and Enter, and caps lock can be substituted by double press of shift. So I decided to play with the layout a bit, mainly because I was irritated by a need to touch the screen to work with clipboard or to go back. The result is attached - a custom layout which remaps OK button from DPAD_CENTER to ESCAPE and caps lock from CAPS to CTRL_LEFT. Esc works as the Back button and Ctrl is tested working in combinations of Ctrl+A (Select all), Ctrl+X (Cut), Ctrl+C (Copy) and Ctrl+V (Paste). Unfortunately Ctrl+Z/Y (Undo/Redo) don't seem to work... Any suggestions for other combinations to try? I have tested it all on rooted Eclipse ICS 1.2 ROM, but it should generally work on all rooted Android 4.0.4 ROMs. How to get it working? 1. You probably need to have your phone rooted first. 2. Optional - you might want to backup your original /system/usr/keylayout/omap4-keypad.kl if you're on different ROM (it should be all the same, but I haven't tested it) 3. Unpack the attached custom_layout.zip to the root of your phone - it will put omap4-keypad.kl into /system/usr/keylayout 4. Reboot your phone. In case you'd like to revert the changes, I put the original keylayout from my system in original_layout.zip, or you can use your own backed up file Hope you enjoy my mod. Also, which key would you suggest to replace by Menu? I'm thinking about SYM, but I still think the day I'll actually need it might come, unlike with caps lock and OK For those interested in changing values for themselves I've attached scancodes of all the buttons given out by safestarap's key test - see keycodes.txt. If you're gonna change any .kl files, be sure to open it with some program supporting UNIX formatting such as PSPad - I really don't wanna see what would happen after editing it with Notepad You should probably also see Android documentation article about it first.
This sounds rather good...i wasn't going to, but this may give me a reason to root my phone. Thanks f for your work. It does seem illogical having those buttons. Btw what happens to LED when you press caps lock now. Still running stock ics on Vodafone UK. Sent from my DROID4 using xda app-developers app
This doesnt seem to work on stock rooted. it seems the physical keyboard runs off generic.kl and the omap4.kl, but i simply used root explorer to edit the KL's and got things how i wanted them. i missed my HTC G2 alt + del/backspace = delete whole line, so i made tab the ALT_LEFT and problems solved, also mapped OK as CTRL_LEFT for copy paste ext.. just my pref. also changed all the qwerty keys to WAKE_DROPPED to wake the screen instead of having to hit the top power button, as i leave my phone on my desk open constantly so its annoying to always have to hit the power button to wake.
So do you have to change the 2 files or just the one? Sent from my DROID4 using xda app-developers app
bustr85 said: Btw what happens to LED when you press caps lock now. Click to expand... Click to collapse I have Caps Lock mapped as Ctrl and it's not connected to the LED at all - seems the LED is working as normal Caps Lock signalization. However, after double-press of Shift the caps Lock is activated and the LED signalizes it fine. wheeliest said: This doesnt seem to work on stock rooted. it seems the physical keyboard runs off generic.kl and the omap4.kl, but i simply used root explorer to edit the KL's and got things how i wanted them. i missed my HTC G2 alt + del/backspace = delete whole line, so i made tab the ALT_LEFT and problems solved, also mapped OK as CTRL_LEFT for copy paste ext.. just my pref. also changed all the qwerty keys to WAKE_DROPPED to wake the screen instead of having to hit the top power button, as i leave my phone on my desk open constantly so its annoying to always have to hit the power button to wake. Click to expand... Click to collapse Didn't know the Alt+BkSp combination, thanks What other combinations do you use? BTW Alt+Tab works for switching apps (I have now SYM mapped as ALT_LEFT and TAB is left untouched - I like to use it when filling forms). In my mod it already is WAKE_DROPPED, but not by me, it's probably one of the Eclipse mods to stock bustr85 said: So do you have to change the 2 files or just the one? Sent from my DROID4 using xda app-developers app Click to expand... Click to collapse What do you mean? Do you refer to wheeliest's post?
Ah, good idea mapping SYM to ALT_LEFT. Then we can go in and define Alt key combos for the rest of the alpha keys, to get all the other symbols that we need (e.g., brackets, curly brackets, vertical bar, backquote...) Sent from my DROID4 using Tapatalk
I edited both .kl's to answer the above question, I also changed the "/" to work as a "?" with out shifting first. (which i changed in the omap4 keychars) system/usr/keychars/omap4-keypad.kcm its about the middle of the code, you get into the symbols after the numbers. key SLASH { label. number: '?' base: '?' shift: '/' ctrl. alt. meta: none and thats the only useful key combos i know.
I've tried to edit the keyboard for my AOSP Unofficial CM10/JB ROM. No luck at all. None of the changes take effect and the shift key stops functioning as it should. You have to hold the shift key down and press the additional key for it to work, the same as you do on a computer keyboard. I've tried to edit both the generic and omap4 files. It always ends up with the same result. Not looking for a fix just notifying you guys.
Long press symbols Hi, does anybody know where to change symbols and/or their order in long press popup window? screenshot - imgur.com/joN15zH CM10 or CM11
wild_a said: Hi, does anybody know where to change symbols and/or their order in long press popup window? screenshot - imgur.com/joN15zH CM10 or CM11 Click to expand... Click to collapse Unfortunately I don't know, but I never use it. My short story: My old phone was a Motorola Milestone 1 (Droid 1) with physical QWERTY. I used it with Smart Keyboard Pro (SKP). It has an option called “Physical Keyboard”, by this way I reach the special characters of SKP’s actual language (long press on short character then some short press for selecting). I changed for Droid4, upgraded for SlimKAT 4.4.2 installed SKP, but it is not worked with new 5-row keyboard. I can’t reach the keyboard’s yellow and my language-specific characters. Shift is not working with yellow keys. Solution: Change SYM and CAPS LOCK buttons in /system/usr/keylayout/omap4-keypad.kl: I changed SYM button for “ALT”: KEY 162 ALT_LEFT and the CAPS LOCK button to “CTRL”: KEY 222 CTRL_LEFT Than modify /system/usr/keychars/omap4-keypad.kcm as follows: Defined yellow characters for ALT method, and some other characters for all available buttons. The original SYM function still available by ALT+Space. I attached a picture about the ALT-characters. Unfortunately the new CTRL-button not works with SKP “Phisical Keyboard” option so I must switch off this option. By this way I lost the language specific fonts, so I programmed the upper rows for this fonts. The selection is working by SHIFT and D-pad, than CAPS-LOCK + C is Copy and CAPS-LOCK + V is Paste. I attached a picture about CTRL-characters too. I used character codes at: fileformat.info We must be use the C/C++/Java source codes. Thats all. Zavo
hi. i wanna change my hardware keyboard of droid4. its qwerty ... and i want to have qwertz. so i edited the /system/usr/keychars/omap4-keypad.kcm and changeg key "Z" { label base shift } with "Y" . reboot and it works me happy by thinking myself that i missed Ä Ö Ü at the hardware keyboard and dont want to wait long with long push on a to wait for the popup and choose there ä, i tryed to edit the /system/usr/keylayout/omap4-keypad.kl: CAPS LOCK button to “ALT”: KEY 222 ALT_LEFT and back into the /system/usr/keychars/omap4-keypad.kcm there under A { label: "A" / base : "a" / shift: "A" / cltr,alt,meta: "ä" } reboot and now it works nothing -.- also the y z is back to qwerty and not qwertz ?!?!?!??! in the files is all right. why my changes are undone ???? can some help ? ideas ? thx and sry 4 bad english
Felix241 said: hi. i wanna change my hardware keyboard of droid4. its qwerty ... and i want to have qwertz. so i edited the /system/usr/keychars/omap4-keypad.kcm and changeg key "Z" { label base shift } with "Y" . reboot and it works me happy by thinking myself that i missed Ä Ö Ü at the hardware keyboard and dont want to wait long with long push on a to wait for the popup and choose there ä, i tryed to edit the /system/usr/keylayout/omap4-keypad.kl: CAPS LOCK button to “ALT”: KEY 222 ALT_LEFT and back into the /system/usr/keychars/omap4-keypad.kcm there under A { label: "A" / base : "a" / shift: "A" / cltr,alt,meta: "ä" } reboot and now it works nothing -.- also the y z is back to qwerty and not qwertz ?!?!?!??! in the files is all right. why my changes are undone ???? can some help ? ideas ? thx and sry 4 bad english Click to expand... Click to collapse the fault is that in the .kcm no ÄÜÖ alowed. when i entered A { label: "A" base: "a" shift: "ä" } reboot the system dont work with the .kcm anymore... what do i have to fill in under shift : "" for an ä ? thx 4 help
Felix241 said: the fault is that in the .kcm no ÄÜÖ alowed. when i entered A { label: "A" base: "a" shift: "ä" } reboot the system dont work with the .kcm anymore... what do i have to fill in under shift : "" for an ä ? thx 4 help Click to expand... Click to collapse I think that for ÄÜÖ, in the stock kcm you press ALT+u and then the key that you want to have ' ': a,u,o......
Hi everyone I know it's an old post but it really helped me solve the non CTRL problem. I needed it to switch between languages on the hard keyboard as I installed the CM11 ROM. It's a little bit funny that it takes a CTRL button to switch, but no one bothered to notice that there isn't such button. Anyhow, my current problem is this - I'm missing a letter on the Hebrew keyboard. I have all the letters except one. It's annoying to type with a missing letter. I've tried to look for a way to add this letter on the ompam4-keypad.kcm file, but it doesn't contain the hebrew characters. I really don't know where to go for that char map that contains other characters other than english. Can anyone help me?
drornohi said: I know it's an old post but it really helped me solve the non CTRL problem. I needed it to switch between languages on the hard keyboard as I installed the CM11 ROM. It's a little bit funny that it takes a CTRL button to switch, but no one bothered to notice that there isn't such button. Anyhow, my current problem is this - I'm missing a letter on the Hebrew keyboard. I have all the letters except one. It's annoying to type with a missing letter. I've tried to look for a way to add this letter on the ompam4-keypad.kcm file, but it doesn't contain the hebrew characters. I really don't know where to go for that char map that contains other characters other than english. Can anyone help me? Click to expand... Click to collapse Frankly I never updated it for CM11 and CM12 I've been using for over a year now, even though it always bugged me not to have Ctrl Good wake-up call I'll try to get to it through the weekend, no promises though. @ZavoDroid's post (#10, last of previous page) looks golden, will try to make something similar working with CM11 and CM12. Will need you to report how the CM11 version works, I'm still at CM12 currently. Edit: @drornohi - did you try custom layouts from this thread to see they did not work with CM11? And what is the specific character you miss from your Hebrew keyboard - could you post it here in lower case and upper case, ideally with Unicode codes as well?
LuH said: Frankly I never updated it for CM11 and CM12 I've been using for over a year now, even though it always bugged me not to have Ctrl Good wake-up call I'll try to get to it through the weekend, no promises though. @ZavoDroid's post (#10, last of previous page) looks golden, will try to make something similar working with CM11 and CM12. Will need you to report how the CM11 version works, I'm still at CM12 currently. Edit: @drornohi - did you try custom layouts from this thread to see they did not work with CM11? And what is the specific character you miss from your Hebrew keyboard - could you post it here in lower case and upper case, ideally with Unicode codes as well? Click to expand... Click to collapse Sadly, it's not a layout problem. I think that the keyboard doesn't take the characters from the .kcm file. The keyboard linked to another app that mapping the layout to a character map according to the current chosen language. i.e, when you press 'm', it links it to the app that checks which language is chosen, if english - it will type 'm', if hebrew it will type ׳צ׳ (a hebrew letter) The problem is I don't know where is this app. I've been trying to look it up in the CyanogenMod11 source code but I'm not a developer so I didn't manage to load the project to eclipse. Actually I have 2 missing letters. The first one is ׳ף׳ unicode U+05E3 (source: http://unicode-table.com/en/05E3/) The second one is 'ץ' unicode U+05E5 (source: http://unicode-table.com/en/05E5/) If you want I have the full hebrew charmap with unicodes: http://unicode-table.com/en/blocks/hebrew/ Thanks for trying! Hope you'll save us all!
drornohi said: Sadly, it's not a layout problem. I think that the keyboard doesn't take the characters from the .kcm file. The keyboard linked to another app that mapping the layout to a character map according to the current chosen language. i.e, when you press 'm', it links it to the app that checks which language is chosen, if english - it will type 'm', if hebrew it will type ׳צ׳ (a hebrew letter) The problem is I don't know where is this app. I've been trying to look it up in the CyanogenMod11 source code but I'm not a developer so I didn't manage to load the project to eclipse. Actually I have 2 missing letters. The first one is ׳ף׳ unicode U+05E3 (source: http://unicode-table.com/en/05E3/) The second one is 'ץ' unicode U+05E5 (source: http://unicode-table.com/en/05E5/) If you want I have the full hebrew charmap with unicodes: http://unicode-table.com/en/blocks/hebrew/ Thanks for trying! Hope you'll save us all! Click to expand... Click to collapse Hey, I'm also no dev and never opened the CM11 project - wouldn't know where to start By inspecting the CM11 build briefly I think I found where it loads language-specific layouts: cm-11-20150327-UNOFFICIAL-maserati.zip\system\priv-app\InputDevices.apk\res\raw\*.kcm - but there is 05E5 mapped to PERIOD ( . : ), are you sure you can't type it by period? Also regular period should be mapped to SLASH ( / ? ) according to keyboard_layout_hebrew.kcm. I tried to set 05e3 as Alt+L. Try replacing your /system/priv-app/InputDevices.apk by attached file and use it in combination with some keylayout with Alt (ZavoDroid's maybe). Do a backup before - it's my first attempt on repacking a system apk so anything can go wrong Edit: just realized I forgot to attach the APK. -_- Sorry, will do in several hours - it's almost 6 AM now so I need to catch some sleep, left laptop elsewhere.
...so here you are with the attachment drornohi said: Sadly, it's not a layout problem. I think that the keyboard doesn't take the characters from the .kcm file. The keyboard linked to another app that mapping the layout to a character map according to the current chosen language. i.e, when you press 'm', it links it to the app that checks which language is chosen, if english - it will type 'm', if hebrew it will type ׳צ׳ (a hebrew letter) The problem is I don't know where is this app. I've been trying to look it up in the CyanogenMod11 source code but I'm not a developer so I didn't manage to load the project to eclipse. Click to expand... Click to collapse I think what happens here is that as long as you have Settings - Languages & input - Physical keyboard - omap4-keypad set to default layout, /system/usr/keychars/omap4-keypad.kcm is used, but once you add any languages there, it uses language's kcm from /system/priv-app/InputDevices.apk for CM11, or /system/priv-app/InputDevices/InputDevices.apk for CM12. Please let me know if the attached apk works (try signed first) installed or put into system directly - you should be able to type ף by pressing Alt+L (SYM+L with Zavo's custom kl - also attached).
LuH said: Hey, I'm also no dev and never opened the CM11 project - wouldn't know where to start By inspecting the CM11 build briefly I think I found where it loads language-specific layouts: cm-11-20150327-UNOFFICIAL-maserati.zip\system\priv-app\InputDevices.apk\res\raw\*.kcm - but there is 05E5 mapped to PERIOD ( . : ), are you sure you can't type it by period? Also regular period should be mapped to SLASH ( / ? ) according to keyboard_layout_hebrew.kcm. I tried to set 05e3 as Alt+L. Try replacing your /system/priv-app/InputDevices.apk by attached file and use it in combination with some keylayout with Alt (ZavoDroid's maybe). Do a backup before - it's my first attempt on repacking a system apk so anything can go wrong Edit: just realized I forgot to attach the APK. -_- Sorry, will do in several hours - it's almost 6 AM now so I need to catch some sleep, left laptop elsewhere. Click to expand... Click to collapse Actually your'e right. I forgot I have already found ׳ץ׳ letter (It's my GF's phone so It's not near me all the time). The other one is still missing though. Thanks for finding the apk file. I'll try edit it myself and let you know (I'm trying with notepad because I read that you can't open apk with eclipse) I want to make the 'Q' letter assigned to ׳ף׳ because now it assigned to '/' but I already have that. ---------- Post added at 02:41 PM ---------- Previous post was at 02:36 PM ---------- LuH said: ...so here you are with the attachment I think what happens here is that as long as you have Settings - Languages & input - Physical keyboard - omap4-keypad set to default layout, /system/usr/keychars/omap4-keypad.kcm is used, but once you add any languages there, it uses language's kcm from /system/priv-app/InputDevices.apk for CM11, or /system/priv-app/InputDevices/InputDevices.apk for CM12. Please let me know if the attached apk works (try signed first) installed or put into system directly - you should be able to type ף by pressing Alt+L (SYM+L with Zavo's custom kl - also attached). Click to expand... Click to collapse I'll try it when I'll have the phone with me (it's my GF's) How did you pack the apk again after unpacking it? I want to change it to the 'Q' letter instead of Alt+L I have some ideas to to improve the keyboard functioning with some keys.
drornohi said: How did you pack the apk again after unpacking it? I want to change it to the 'Q' letter instead of Alt+L I have some ideas to to improve the keyboard functioning with some keys. Click to expand... Click to collapse Searched xda for instructions, in some general android development forum on xda found a rom & apk kitchen (intended for different device though, apk kitchen is universal) and used the apk kitchen for proper unpack and repack. I think it's needed, because InputDevices.apk is signed so the kcm's crc would not match if I just overwrote it in the apk directly.