Jump to content
Craig

Key Mapper: FOSS app to bind keys & buttons to other keys or actions

Recommended Posts

https://f-droid.org/en/packages/io.github.sds100.keymapper/

 

I tried this app on QWERTY Pro1 and think its worth a recommendation.   It allows you to map keys and buttons to other keys or actions.   Its very simple, you add the trigger (push whatever keys/buttons) then selection an action, and has search function too which helps find keycodes/etc quickly.  

All comments about current Phone behavior are based on software update from 10 December.  I hope some of these type changes end up in stock, but until then...

 

Some apps (all apps if you chose another keyboard layout) ignore Fxtec's customization of the slant arrow key.  This means you won't have access to / ? anymore, but the rest of the yellow keys work with shift.  Also, the SYM key doesn't currently do anything.  One could probably use this tool to have the SYM key open a virtual symbol keyboard, but I chose to to map the SYM key to slash key and longpress to question mark.  And now I can use any layout I want, and use shift normally, and have access to slash and question mark without ever needing software keyboard. 

The Esc key is somehow coded to Android back, and even if you remap it back to Esc or something else, it does what you bound and then still goes back afterward.   So I mapped SlantArrow+Tab to Esc.

Camera button longpress opens the snapdragon camera, even if it's not set as default camera. So also mapped long press of the camera button to open default camera. 

I also remapped slantarrow+directional arrows to PgUp/PgDn/Home/End.    I plan to keep playing with it...

 

Details:

 
What can I remap my keys to do?
		Some actions will only work on rooted devices and specific Android versions.

		• Open an app
		• Open an app shortcut. This feature is very useful since you can tell another app to do something Key Mapper can’t. E.g If your launcher has a shortcut to open the app drawer, you can select that shortcut in this app and make any button open the app drawer.
		• Go back
		• Go home
		• Open recents
		• Open menu
		• Expand notification drawer
		• Expand quick settings
		• Collapse status bar
		• Toggle/enable/disable WiFi
		• Toggle/enable/disable Bluetooth
		• Toggle/enable/disable mobile data (ROOT only)
		• Toggle/enable/disable NFC (ROOT only)
		• Toggle Play/pause media
		• Pause/play media
		• Next/previous track
		• Fast forward/rewind
		• Volume up/down
		• Increase/decrease a specific volume stream
		• Cycle through and change the ringer mode
		• Show the volume dialog
		• Mute/unmute/toggle mute (Android 6.0+)
		• Toggle/enable/disable auto-rotate
		• Force portrait/landscape mode
		• Switch between portrait and landscape mode
		• Toggle/enable/disable auto-brightness
		• Increase/decrease brightness
		• Toggle/enable/disable flashlight (Android 6.0+)
		• Take a screenshot (Android 9.0+)
		• Open the Google Assistant
		• Open camera
		• Consume key event (Do nothing)
		• Lock the device
		• Move the cursor to the end
		• Toggle/show/hide the keyboard
		• Show the keyboard picker (ROOT only for Android 8.1+)

		The Key Mapper input method needs to be selected for these to work and you can’t use a soft keyboard at the same time:
		• Input a specific keycode
		• Input a key
		• Insert a block of text

		More will be added. If you have any ideas, leave a comment or email the developer.

What other things can the app do?
		• Option to show a persistent notification which can pause/resume your keymaps. It can also open the accessibility settings on the device to enable/disable the service. Rooted devices can start/stop the accessibility service without going into settings and just tap the notification.
		• Automatically change the input method to the Key Mapper one and/or show the input method picker when a chosen Bluetooth device is connected and switch back to the old one when it is disconnected.
		• Option to show a toast message whenever an action is performed.
		• Option to log events and send them to the developer so it is easier to debug issues with the app.

 

 

 

Edited by Craig
  • Like 1
  • Thanks 8

Share this post


Link to post
Share on other sites

Looks nice, is there a possibility to turn some keys into AltGr keys? This is my bigger concern right now and Fxtec replied me that they plan to implement AltGr function a couple of months after fulfilling all preorders and I guess it means late 2020. Using a phone with crippled keyboard for so long would be just bad.

  • Confused 1

Share this post


Link to post
Share on other sites
16 hours ago, Craig said:

And now I can use any layout I want, and use shift normally, and have access to slash and question mark without ever needing software keyboard. 

Are you able to do this for the symbols above the number row? How? (I might be missing something obvious, but these symbols don't have keycodes, and I can't enter them in the "Key" section either. Are you using "TEXT"?

Edit: "TEXT" seems to work, at least in Termux.

You could probably record macros with this.

Edited by zurvan2

Share this post


Link to post
Share on other sites
11 minutes ago, zurvan2 said:

Are you able to do this for the symbols above the number row? How? (I might be missing something obvious, but these symbols don't have keycodes, and I can't enter them in the "Key" section either. Are you using "TEXT"?

You should use the yellow arrow, not shift.

(Silly, I know, hopefully both will be allowed)

Share this post


Link to post
Share on other sites
17 hours ago, Craig said:

have access to slash and question mark without ever needing software keyboard. 

What specific mapping are you using for these? I'm struggling to find a free key to put them on that would be any better than being access by the yellow arrow.

Share this post


Link to post
Share on other sites
13 minutes ago, zurvan2 said:

I'm feeling particularly obtuse this morning...

*where* in Key Mapper should I use arrow to enable using shift to access [email protected]#$%^&*()_+ ?

Oh just to be sure, have you left it at default, or chosen a language? The languages available was not properly implemented, last time I checked.

I recommend FinQwerty, but on the stock German should be chosen for the qwertZ, and it should be left at default for qwertY. Do NOT select say English

(And I do not know "Key Mapper", it was a general guide on how to get to them)

Share this post


Link to post
Share on other sites

Key Mapper seems to do exactly the same thing as FinQwerty, as far as I can tell, and is customizable.

It works really well so far when it is enabled.

Er... except now that I'm done setting it up, I can't get the software keyboard back when the physical keyboard is closed without selecting a completely different keyboard, which breaks the Keyboard Mapper keyboard. Is there a way to have a different "virtual keyboard" when the physical keyboard is open?

 

Edit: FinQwerty also does not appear to have any layout for "US for Physical QWERTY" and none of the other layouts look appealing.

Edited by zurvan2
  • Like 1

Share this post


Link to post
Share on other sites

If Key Mapper can't automatically switch, Tasker and Secure Settings (a root app) can.

Profile -> State -> Hardware -> Keyboard Out

Task -> Secure Settings -> System+ -> Input Method -> Key Mapper keyboard

add Exit Task -> Secure Settings -> System+ -> Input Method -> pick your normal keyboard.

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, zurvan2 said:

I'm feeling particularly obtuse this morning...

*where* in Key Mapper should I use arrow to enable using shift to access [email protected]#$%^&*()_+ ?

That happens if you select ANY keyboard layout.    That's not part of key mapper.  

Share this post


Link to post
Share on other sites

@zurvan2 as mentioned right next to the part you quoted, I used the SYM key for / (KEYCODE_SLASH) and longpress SYM for ? (I used text).   You could map them back to slant-arrow LP if you want tho.

You don't have to manually remap the shift number symbols, cuz that happens automatically when you select a layout for your keyboard, either in the settings menu under languages and hardware keyboard, or from notifications if you're getting prompted to do so.  To get special characters when you use US International layout, you push the accent key first, before the letter.  Still playing around with it, but it does work.  

 

11 hours ago, zurvan2 said:

What specific mapping are you using for these? I'm struggling to find a free key to put them on that would be any better than being access by the yellow arrow.

Edited by Craig
  • Thanks 1

Share this post


Link to post
Share on other sites

Yeah.  This isnt' a fast UI for doing a major remap.     I'm thinking about doing slant arrow+number row to be F1-F12, and that'll take some time...   I spoke with the author, he's going to implement a feature to import/export profiles, so that means we could share keymaps (and maybe edit it with a text editor!), but that's not likely til next summer.  I think he's going to add in labels for our special keys shortly tho, so they dont just come up as blank ovals, which will  be nice.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, EskeRahn said:

note that FinQwerty now have released a new version, with additional and extended layouts. Including US-International for both qwertY and qwertZ https://android.onse.fi/finqwerty/#pro1

This is brilliant!  I finally have an easy restoration of Shift to evoke special characters.   ? ans / still require the slant arrow, but I'm getting used to that.  The one sacrifice is that Esc no longer wakes screen.  I've emailed the dev to see if that is something he can do.  I've decided it's worth it to sacrifice for using shift. Still hoping TTW will get working at some point.

  • Like 1

Share this post


Link to post
Share on other sites

With a little testing, Anssi (the Finqwerty dev) made a version that preserves using Esc to wake the Pro1 but is also able to function as Esc.

Quote

For the record, what I did was define the esc key as KEYCODE_WAKEUP, with fallback to KEYCODE_ESCAPE, with fallback to KEYCODE_BACK.
A fallback keycode is triggered when the app does not handle the keycode.
So the WAKEUP code works as wakeup, but the apps do not actually know about WAKEUP so they get either ESCAPE or BACK

It will be in the next update.

Another thing I love about this phone... it has great dev support now, and that will only increase in the future as more of these phones get out there.

  • Like 6

Share this post


Link to post
Share on other sites
4 hours ago, Hook said:

With a little testing, Anssi (the Finqwerty dev) made a version that preserves using Esc to wake the Pro1 but is also able to function as Esc.

It will be in the next update.

Another thing I love about this phone... it has great dev support now, and that will only increase in the future as more of these phones get out there.

I may have jumped the gun here.  There was a flaw in the testing.  I'll get back when I have an update.

 

  • Like 1

Share this post


Link to post
Share on other sites

So here is a sad story.  We spent all day on this only to discover we weren't getting the results we thought we were.  apparently none of this worked, but I got fooled into thinking it did.  I did get back the Esc-to-Wake but it did not get any fallback.      It's not clear exactly what went wrong because I was genuinely fooled into thinking I saw the full fallback, but having fixed how the test versions get installed, I can't reproduce it (Anssi doesn't have a Pro 1).  So now he is sensibly going back to ESC being ESC (for terminal work and such) and assigning key to wake somewhere else. 

It is still awesome to have Shift work for all the special characters (in gold) except ? and /.  And if I get a key, any key, for key-to-wake, I'll be very happy.

Sorry.  I got excited, but it turned out to be an ID10T error on my part. 🙄

  • Thanks 3
  • Sad 1

Share this post


Link to post
Share on other sites
1 hour ago, Hook said:

So here is a sad story.  We spent all day on this only to discover we weren't getting the results we thought we were.  apparently none of this worked, but I got fooled into thinking it did.  I did get back the Esc-to-Wake but it did not get any fallback.      It's not clear exactly what went wrong because I was genuinely fooled into thinking I saw the full fallback, but having fixed how the test versions get installed, I can't reproduce it (Anssi doesn't have a Pro 1).  So now he is sensibly going back to ESC being ESC (for terminal work and such) and assigning key to wake somewhere else. 

It is still awesome to have Shift work for all the special characters (in gold) except ? and /.  And if I get a key, any key, for key-to-wake, I'll be very happy.

Sorry.  I got excited, but it turned out to be an ID10T error on my part. 🙄

Too bad...

One of the test versions (26) had the Fn+Esc working in SOME programs (e.g. Textra, but not FF & Chrome, nor plain/shifted Esc), so the fallback could work to some extent in limited circumstances....

Share this post


Link to post
Share on other sites
51 minutes ago, Doktor Oswaldo said:

Can't thank this guy enough! QWERTY would have been unusable for me without this!

Though "unusable" is pushing it, Anssi certainly lifted it to where the keyboard experience should have been out of the box IMHO.

In principle trivial software mapping, but it makes a HUGE difference in improved user experience. So a big thanks from me too. Oh guys, talking thanks, note that his page for this open source project got a donate button😇 , He certainly deserves that we 'give him a beer'.

  • Thanks 1

Share this post


Link to post
Share on other sites
6 minutes ago, EskeRahn said:

Though "unusable" is pushing it,

Sorry that is why I added "for me" but without Umlauts it is really hard..
 

6 minutes ago, EskeRahn said:

got a donate button

Thanks just looked at the android store page, will use it! have used it!

Edited by Doktor Oswaldo
  • Like 1

Share this post


Link to post
Share on other sites
26 minutes ago, EskeRahn said:

Though "unusable" is pushing it, Anssi certainly lifted it to where the keyboard experience should have been out of the box IMHO.

In principle trivial software mapping, but it makes a HUGE difference in improved user experience. So a big thanks from me too. Oh guys, talking thanks, note that his page for this open source project got a donate button😇 , He certainly deserves that we 'give him a beer'.

I donated when I sent Anssi  a feature request on a Sunday morning and an hour later had a new apk to test. 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
27 minutes ago, Doktor Oswaldo said:

Umlauts it is really hard..

Yes ünüsäblë 😜
I would have wished it came with a setup something like what FinQwerty does out of the box. Or even better easy user customizable layouts.

  • Thanks 1
  • Haha 1

Share this post


Link to post
Share on other sites

Thought this was worth reminding people of this while we wait for internal solution, as I've seen it referenced in a few other threads lately.   Plus even if they fix the keyboard stuff, there's still plenty of use for this app.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Terms