Tuesday, October 30, 2012

EKH Tutorial 3 - Tweaking some advanced settings

This is the third tutorial for External Keyboard Helper. You'll find the first tutorial here and the second tutorial here.

After some testing I find some things I want to address. First of all since my Targus iPad keyboard uses scancode 139 this conflicts with the menu key on my Samung Galaxy S III so when remapping scancode 139 to Back (see tutorial 2) I also remapped my menu key on the phone.

This I will address using the Device ID filter in the Advanced settings. For most phones the buttons on the phone uses device ID 0 or a negative number. For this the default setting will make sure they are not affected by the remapping in External Keyboard Helper. However for my Galaxy S III running Android 4.1.1 this is not the case.

The first step is to use the Debugging screen to find out what device ID the phone buttons are using so I enter Advanced settings and then Debugging. Pressing the menu button on the phone both confirms that it uses scancode 139 and that it uses device ID 5.



So now I now that I don't want External Keyboard Helper to touch anything that has device ID 5 or lower so I set the Device ID filter to 6.



I also find the keyboard repeat to be a little bit to sensitive for my taste so I change the delay to Slight delay.



I also want to be able to switch between my custom layout (based on the Swedish layout), the Xperia Play layout and no remapping at all so I setup a Language-switch key.




I also check that I want to use a third layout.


I then choose the Xperia Play layout as my second layout and let the third keep it's default setting (No remapping).




This is the end of tutorial 3.

38 comments:

  1. Thanks for all the detailed instructions, EKH truly is the best-in-class, I went pro a long time ago.

    I'm currently really annoyed with the last update for my Galaxy Note II GT-7100 - Android 4.1.1. When I switch on external keyboard and Bluetooth and select EKH Pro, my selection is overridden by another dialogue that forces me to switch to 'Samsung Keypad'.

    I then have to tap in a text input field, swipe down notifications, then change the input method again to EKH. This means that switching to EKH now takes 6 taps instead of only one. I should imagine the same problem applies to all new Samsung devices. I'm further annoyed with Samsung because they don't even allow me to deselect the 'Samsung Keypad' as an input option.

    Conclusion: External Keyboard Helper Pro = excellent, Samsung = annoying. Is there any way around this?

    ReplyDelete
  2. I have a Galaxy note 2 from verizon, a Targus bluetooth keyboard and keyboard helper pro and also find it's akward to switch keyboards. In addition I want the screen keyboard to be Swiftkey. I have no need for the samsung keyboard and wish it would stay quiet all the time.. As with the above commenter, any suggestions would be appreciated.

    ReplyDelete
  3. The overprotecting behavior from Samsung can be quite a pain. The just assume that everyone wants to use their input method when using an external keyboard.

    This is not a solution but it can help a bit. Go into the advanced settings for EKH and increase the Detection delay enough so that you get time to dismiss the Samsung message before the Input Method selector shows up.

    It doesn't completely solve the problem but it brings the "taps" needed down to 2.

    ReplyDelete
    Replies
    1. Thanks for the workaround, as you say not ideal but much better than before.

      Delete
  4. How can I get my FN keys to work with Cusomize key mapping?

    ReplyDelete
    Replies
    1. Fn keys usually do not have a scancode but instead alters the scancode for some other keys when held down. So Android will never now that you press it but some keys might send a difference scancode when pressed together with Fn so you should be able to pick that scancode up and map something to it.

      Delete
  5. I have a keyboard with a brazilian layout...on the top it have the media controls like volume up, volume down, mute...etc...The volume up button is the only that not works, it just put the "/" char on text fields.
    The media buttons works on Device-ID 7, and 6 to the rest of keyboard buttons, including the special characters.
    So when I configure the Device-ID filter to 8, the volume-up and the others media buttons works fine, but the special characters are desconfigured on the layout and others like "/", "?" just do anything.

    Thanks

    ReplyDelete
    Replies
    1. Some Brazilian keyboards have an extra key with an extra scancode that most other keyboards does not have. On some keyboard this key uses the same scancode that is often used for volume up on keyboards that have volume control buttons. For compability reasons I included this scancode mapped to "/","?" on my layout but if you have a keyboard that works differently you can create a custom layout and remove this mapping. Unless I remember it wrong, the scancode to look for is 115 (or something like that)

      Delete
  6. Ok I am trying to remap my Acer iconia tab bluetooth keyboard. my issue is when I try to map the browser button it automatically launches the browser and I cant seem to figure out what I need to change to get it to launch Dolphin browser instead of the stock browser. everything else seems to be working ok besides that one button.

    ReplyDelete
    Replies
    1. Some "shortcut" keys are supported by Android by default and are picked up before they reach my app so that I can override them. That kind of keys cannot be remapped.

      Delete
  7. Hi,

    We have a custom made keyboard with special layout that combines most of the popular EU languages. These special characters are accessed by pressing the "AltGr" key with other key to output some special key. For example, "AltGr" + "Q" will output "Ä". The issue we have is, instead of outputing only one scan code, there are 4 scan codes after these key combinations. For example, pressing "AltGr" + "Q" will see codes RALT, 104, 98, 98, and 96. Are you interested in the contract job to help us solve the problem? We need to use this external keyboard on Android 4.0 and above. My contact is James Yeh, jyeh@stacosystems.com. Thanks!

    ReplyDelete
  8. Hi,
    i have a huawei media pad 10 with keyboard dock but the "R" key is not functioning
    purchased EKH pro and been trying to map the R key to LEFT SHIFT but failing..... need help

    ReplyDelete
  9. I am a Maldivian and i want to write in dhivehi (DEMO VERSION!) using a usb keyboard but unfortunately i could not find any keyboard app that supports dhivehi. can zou please add dhivehi language

    ReplyDelete
    Replies
    1. I've now completed a Dhivehi Phontic layout but when I try it out on my Nexus 5 with Android 4.4 it seems like the Android font does not support the Maldivian characters. Maybe it'll work better in older Android versions because Android 4.4 brought a new font and perhaps the old (pre 4.4) works better?

      Delete
  10. Hi, I have purchased the pro version not long ago and I have been following on your tutorials.
    First of all, I want to thank you for making the app!
    Currently I have a problem that I would like to solve, that is I can't seem to use the "enter" key on my keyboard to send out a sms or facebook messenger message. Is there a way to map the key so that it will send when I press enter?
    Thank you very much!

    ReplyDelete
    Replies
    1. Actually in Hangouts the Return key does send the SMS for me. I just tried it on my Nexus 5 with Android 4.4. I suppose it depends on what SMS app you use. As for Facebook I have no idea, I do not use Facebook.

      Delete
  11. I have a Motorola bluetooth UK keyboard. I'd like to re-map the keys or characters to a standard US layout, e.g. now the key immediately right of the "L" key has left square bracket & (shifted) left squiggly/curley bracket/brace. I would like that to be semicolon & colon. Then I'd want the brackets moved up to just right of the "P" key, and so on. I think that once I have a step-by-step for that, I'd be good to go. I've just got the free version of EKH now, while I determine whether it will work.
    Thanks

    ReplyDelete
    Replies
    1. I neglected to say, thanks also for your tutorials. They're well done, but I'm just not quite catching on yet to the full process.
      The keyboard connects easily to my Verizon Galaxy S4 with Android 4.3.

      Delete
    2. This comment has been removed by the author.

      Delete
  12. What is 'ShareKM' and what is the workaround all about? I use an American Keyboard

    ReplyDelete
    Replies
    1. ShareKM is an app that when combined with a windows program allows you to use the keyboard on your windows computer to control your phone or tablet. ShareKM-generated keyevents could not be remapped because they all had scancode 0. The workaround will add scancodes to ShareKM events and thereby making them remappable.

      More info about ShareKM: https://sites.google.com/site/droidskm/

      Delete
  13. This comment has been removed by the author.

    ReplyDelete
  14. Hi,
    I install the deno version to test it.
    I tried to configure the layout switching to use keyboard combination for language switch. But it did not work. what did I do wrong?

    ReplyDelete
    Replies
    1. Are you sure that my app is enabled and the active input method (see tutorial 1)? Also the language switch needs a scancode and (optionally) a modifier (alt and/or shift). Have you tried different keys? Perhaps you tried a key that isn't remap:able? (so keys are handle by Android in a way that makes it impossible to remap them).

      Delete
  15. I can't choose a second keyboard layout, and it says "No remapping" below
    is there anything I can do to fix that?

    ReplyDelete
    Replies
    1. Configure a language-switch key and the second layout will be possible to change.

      Delete
  16. Hi, when i enter to the "language switch key" and i put alt to change the layoit and press save. It stays one disabled and i cant to choose another layoit. I use the logitech k400. What i can do to make it work?

    ReplyDelete
    Replies
    1. You must enter a scancode plus an optional modifier (alt and/or shift). If you just want the alt key then read the scancode of the alt-key instead of checking the box.

      Delete
  17. Hi, is it possible to set a custom command to switch off the screen with a botton of the keyboard?
    Thanks

    ReplyDelete
  18. Question: how could I get EKH to simulate Fn keys (e.g. F1 to F12)? Many bluetooth keyboards totally lack those keys, and yet sometimes I remotely access an application that would need such a combination to be pressed (e.g. Alt+F4). It would be cool if we could tweak EKH so it could send such codes (e.g. Shift + Ctrl + 4 = F4). Can this be done?

    ReplyDelete
  19. This comment has been removed by the author.

    ReplyDelete
  20. hi. i cannot switch between 2 languages even after defining a combo of scancode and alt button (ticket) My tablet is an LG. thanks in advance

    ReplyDelete
  21. Really this is a usefull application, that helps me to type arabic using exsternal keyboard. Iam usinh Logitech Keyboard,but I still have a problem how to vowelize the arabic writing usimg the exsternal keyboard helper? Help me please... For Answering and solving my problem I say you thank you very much.

    ReplyDelete
  22. Hello,

    Today I bought BT keyboard and now I'm having hard time to get it work. I had some problems with layouts and the languages, but thanks to EKH, those have been sorted out. But now I have some other issues and questions. I appologize in advance for those questions may sound stupid to you, but I them key and character mappings are a mystery to me...

    So, question one. Is it possible to make the keyboard to act like it would on a Windows PC? For example, get rid of the annoying Google search when pressing any button while in Home screen? In Windows, pressing a letter while in Desktop will select and rotate all shortcuts starting with that letter. Or when pressing Shift, or Alt, or Ctrl alone, nothing would happen.

    Second question. I've created a shortcut combination (Shift+F) that should open Facebook, but it's not working. Instead, it opens Google Search as soon as I press Shift.

    Another problem I have is, (if I got it right) that while in the Menu screen, I should be able to highlight and app using the arrow keys and start it by pressing Enter. Well, I'm not. None of my apps gets highlighted and the arrow keys do nothing.

    Is it possible to make a shortcut/combination that would, for example, refresh the page while in browser by pressing F5 (Fn+F5 in my case)?

    And last, while in messaging app (Viber, Skype etc.) is it possible so that pressing Enter sends the message, instead of adding a new row. And adding a new row by pressing Shift+Enter.

    Thanks in advance!

    ReplyDelete
  23. I have a Sony nsg-mr5u Bluetooth remote. When I remap the center key in the directional pad, which has a 232 scan code, to "enter" or anything else, it does not perform the remap. I know the system recognizes the key press, because when the system turns on the screen saver from inactivity, pressing the button wakes it and I get the Bluetooth connected message.

    ReplyDelete
  24. I have an external keyboard: Logitech K400 Plus.
    What should I do so that i can type in my language: HEBREW ? (right now I can type only in English,
    i can not replace the language to Hebrew despite the keyboard supports this language).

    ReplyDelete
  25. Would it be possible to add an option to disable immediate double press of the same key?

    My keyboard very occasionally sends a key twice in superhuman speed causing a double letter. I do want keyboard repeat enabled if I press and hold, so I've not tested with that disabled as it's likely to be more disruptive to my use. It also might not work as I suspect the key is pressed, let go and re-pressed by faulty f/ware or an issue with the BT stack in android or something.

    I believe that it's quite unlikely that a user would press the same key twice so fast (sub 100ms) and that could be assumed to be an error so EHK could have an option to disable accepting that key?

    Obviously different keys makes some sense, i.e. during a game as you press up/down/etc together or sub 100ms between switching direction. Also pressing and holding for key-repeat can remain.

    Basically please please please can you consider this option?

    Thanks,

    - Damion

    ReplyDelete