yashsingh1/xdaforums huggingface dataset:
[Touch CDMA General] katmandu421:
+1 for power being wake and sleep, long pressing power for power off menu. This to me is intuitive and mimics winmo.

As for volume, of course keep it with the volume slider.

That leaves back, menu, home and recent apps.

Send key for back (intuitive and "browser-like", back is typically on the left side)

Long press send key for home (intuitive if you think of home as going all the way back)

End key for menu, Long press end key for recent apps and cam button for rotation.

I don't think it's possible to please everyone, so a configurable UI will surely be needed, but sounds like that would be a task.
[Touch CDMA General] TheKartus:
The problem I see with this is that then you lose the send key to bring up the phone, which really is what makes the most sense for this key.

I think the best bet for a back button is camera button. If we figure out long presses, a long press of the camera could be home. I think a long press of the middle dpad button would be best for recent apps. All that relies on long presses though.

I think most people would agree on a config that lightens the load on the volume slider, and that really is the point of changing the config. Until there is a nice program with a GUI (if someone would be so kind to do it) we have to work with the functions we have.

EDIT: Would this link help anyone? http://www.kandroid.org/android_pdk/keymaps_keyboard_input.html. Its instructions on Android keymapping. Doing some light reading on it while at work, and not working.
[Touch CDMA General] katmandu421:
The contacts and dialer shortcuts both bring up the phone. Plus the call log is displayed once you hang up.
[Touch CDMA General] TheKartus:
That is true, but you need a physical button that activates the phone. If you remap the send key, you don't have a button to answer an incoming call when the screen is locked. Nor do you have that physical shortcut to quickly get to the phone when your in different app, or on a different homesreen than the one with your dialer/contacts shortcut.

Also, if someone is willing to code up a UI for the keymap, I'd be willing to make myself useful and do anything on the graphics side of it. Icons, buttons, whatever **** is needed that I can help with.
[Touch CDMA General] tatnai:
agreed. for easy usability and physical properties special to the red and green buttons, they should not be touched. Also, currently long press and double taps are out unless we get it figured out. I agree that I can use my phone without touching the D-pad for everything EXCEPT games, and if you haven't used any of the games yet, android turns out to be a great gaming platform. i think that remapping true D-pad to shift- functions is a mistake for this reason. thirdly, as many have mentioned, volume should be just volume, as this just makes sense. there ends up being no ideal config after all of the above, as the perfect config (leave everything alone and camera and power do menu and back) leaves no room for rotate.

a couple ways to compromise. first, this should be standard:

volume up/down: volume

D-pad: leave as D-pad

send: send

end: end (use spare parts to have it go home first, and then sleep)

then, a couple of options to toy with. option 1:

shift+D-down: menu

shift+D-up: back

power: shift (actually easier to hit power AND a d-pad button with one hand then it is to hit camera and the d-pad button with one hand - hook your index finger over the top of the phone, and then use your thumb to hit the D-pad)

camera: rotate or home or sleep or whatever you want (cause you can use shift+D-left for rotate)

or, if you like two handed operation best or use landscape more than portrait, option 2:

shift+D-down: menu

shift+D-up: back

camera: shift

power: rotate or home or sleep whatever you want (cause you could use shift+D-left for rotate)

I prefer option 1, just because you can easily operate EVERYTHING on the phone one handed in portrait mode, while I can only use the camera key as shift with one hand if I turn the phone in landscape position and use the same technique as above.

my 3 cents :D
[Touch CDMA General] TheKartus:
I personally think the power button should be mapped to wake the phone. It would be great if we could make it sleep the phone too, but I don't think that's in the cards.

I think that the menu and back functions are used far too heavily to require a shift key to use them, that is the reason I suggested they be mapped to the dpad.

I understand the gaming point, and I guess I would be devastated if there were no more snakes on my phone.

If we eliminate the volume buttons and the dpad, we need to place wake, menu, back... onto two buttons with what seems no truly intuitive option.
[Touch CDMA General] grantemsley:
It seems shifting the camera, call and end buttons causes problems...the normal key works, the shifted key does not. Not sure why, though the code is a little different for those keys, I think they are handled differently in the hardware.
[Touch CDMA General] grantemsley:
After trying a variety of combinations of keys, shifting, etc...I've come up with what *I* like best. There are plenty of better ways, if I could get them to work, but I've ended up with some severe limitations:

- Can't use shift with call, end, power or camera buttons

- Can't detect long vs short keypress

So, I've disabled shifting entirely. Yes, I loose a couple keys (home and left rotate...home can be done with end if setup to do so, and I don't care about rotation that much).

Everything is the same as the default builds except:

- Power is menu instead of home

- Volume keys do volume control

- Camera is back

Included in the file is the two source files I've changed, which go in kernel/arch/arm/mach-msm

Anyone else who knows how to compile the kernel should be able to change the layout...if you need help, let me know and I'll do what I can.

http://rapidshare.com/files/264828549/zimage-remapped.zip
[Touch CDMA General] fireshaper:
You must have long fingers!
[Touch CDMA General] myshinynewtouch:
awesome job grant, works fine with me too, i will start using this once the newer builds come out this weekend.. is it possible for you to prepare short tutorial on how to get this done (not a linux person, just basic knowledge)
[Touch CDMA General] katmandu421:
We used to have double cam press for rotation back in the day, any chance we can implement that again? dzo might be able to point you in the right direction.

Other than that missing feature (it's nice to type in landscape), I kinda like this layout, will give it a try this weekend!
[Touch CDMA General] grantemsley:
If we can find the source for that revision, I might be able to do that. I'll take a look and see what I can dig up.
[Touch CDMA General] tatnai:
yeah, actually I do ;)

I think this is a great personal solution that a lot of us might be able to use, but I think we still need a global solution. The reason I don't think this will not do as a global solution, is because a global solution needs to still include all functions, including rotate and the home button with it's long press program switching (which A LOT) of people use. So for a global solution I don't think we can get away without a shift key, and would need to keep power or camera as a home key, and the other as a shift key to shift the d-pad.
[Touch CDMA General] grantemsley:
Agreed, but the global solution (ideally ending with an app to reconfigure the keys) seems to be a long way off, and really low on the dev's priority list.

So, in the mean time, we get to compile our own kernel with our preferred keys.

I'm just impatient, and didn't want to wait for:

a) the real global solution or

b) the volume button to finally break

So we've got this hack :)
[Touch CDMA General] katmandu421:
voice search froze the phone, is it this kernel?
[Touch CDMA General] grantemsley:
I doubt it...I've experienced some random crashes/lag with the default kernel as well.

I have had some issues with buttons (especially back) acting like I double tapped them...can anyone tell me if this happens sometimes in the regular kernel? It's not too often, but of course happens at the most annoying times.
[Touch CDMA General] tatnai:
Yeah, this used to happen a lot when it was mapped to the volume button, we all thought it was just because of the slider; seems like it has been better for me the last couple of weeks, don't know if it is just because I got used to it ;)
[Touch CDMA General] grantemsley:
Alright, so it's not my code...it's just the way the buttons are handled. I wonder if I can add a slight delay (just for the back button, it would be annoying for anything else) before it can be pressed again...
[Touch CDMA General] katmandu421:
I tell you what, I was a little skeptical at first, but this layout is great. I only deal with two buttons now; power and end. With spare parts, I set the end key to home-sleep. Still turning the volume down when trying to access a menu, but that will be learned soon enough. Great work.

Just missing the app switcher a little, it's real handy once you start using it. Makes multi tasking easy. Any chance of getting that back on the long power press (that now pulls up a keyboard, btw, which was the behavior of long holding the volume down previously)?
[Touch CDMA General] grantemsley:
The code that controls long key presses is not in the kernel - it's in PhoneWindowManager.java in the android system code. I don't know java (but could probably figure it out)...however, I have no idea how to change that part of the system yet.

Changing that would require changing the system image...which I would much rather leave up to a more experienced developer. Maybe one of them will take a look?
[Touch CDMA General] katmandu421:
I for one vote that this goes into dzo's standard kernel once we get app switching and rotation on long press (power) and double press (cam)(if possible). It is super nice and intuitive...two taps to turn on, two taps to turn off, makes sense to me!
[Touch CDMA General] grantemsley:
As mentioned above, the long pressing is controlled by the android code, no the kernel (also, having long camera press instead of double tap would be better since there are some issues with the button double tapping on it's own).

If someone can explain to me how to build the system.img that we are using (with all the apps and stuff included) I can work on adding that.
[Touch CDMA General] TheKartus:
Check the google code page, the newest updates claim they have a key remapping fix. I don't notice what that is atm, or how I go about changing the keys, but it says its there.
[Touch CDMA General] grantemsley:
Where does it say that?
[Touch CDMA General] TheKartus:
System-08-08-09:

System image for vogue, from the Google Ion (more su and wlan fixes, moddable keymaps, must use with new rootfs)

The rootfs file also mentions fixed keymaps.

(http://code.google.com/p/vogue-andr...system-2009-08-08.img&can=2&q=&sort=-uploaded)
[Touch CDMA General] vilord:
keymaps are now in rootfs instead of in system, so that they can be changed, followed by a reboot... but there is no user-space tool to change them yet.

keymaps will not make long-press or double-press work, we'll have to handle that in the kernel.

I will look into adding long-press functionality in the next couple days now that the RIL is more stable...

Grant, okay if I swipe your code? Do you know git? I'll give you write access to my github kernel store so you can push your changes and get the credit.
[Touch CDMA General] grantemsley:
Feel free to swipe my code (preferably with a little credit) or send me the commands needed to upload to git.

(I'm not a real programmer, so I don't really know how to use revision control systems properly).
[Touch CDMA General] rhorton:
I completely agree...
[Touch CDMA General] grantemsley:
The code for long keypresses for the menu key is different...I may be able to map it to long end key (you'll lose the menu for airplane mode and power off...but I dont use that personally).
[Touch CDMA General] sshark:
+ 1

I really like this mapping. No more I have to worry about moving vol button up or down thinking "gaaaa I am using one more up or down movement from its 1,000,000 lifetime moves".

Thanks for this.

I am now trying to find a widget or app which would lock screen when I just tap on it.
[Touch CDMA General] grantemsley:
If you happen to come across one that will shutdown/reboot the phone, let me know...it might come in handy with the changes i'm trying now.
[Touch CDMA General] moekind:
Hey Grant,

Thank you for taking the initiative to finally address this long awaited issue. Before I download your z-image I was wondering if you will be releasing an updated version anytime today? If you are, then i'll wait for the updated version.

Thank-you
[Touch CDMA General] grantemsley:
Ya, I just finished updating it. Will post it in a few minutes.

Here you go. No changes on my end, just updated to today's kernel source and repatched it.

http://rapidshare.com/files/265248702/zImage-08-08-09-custom
[Touch CDMA General] grantemsley:
I really want to add the recent apps key back...replacing the power off menu with recent apps.

I modified the code, but have no idea how to build it. Can anyone help me out?

Below is the output from "repo diff". This should launch the recent apps box instead of global actions.

project frameworks/policies/base/
diff --git a/phone/com/android/internal/policy/impl/PhoneWindowManager.java b/phone/com/android/internal/policy/impl/PhoneWindowManager.java
index 21c3267..ffcad94 100644
--- a/phone/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/phone/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -369,10 +369,14 @@ public class PhoneWindowManager implements WindowManagerPolicy {

Runnable mEndCallLongPress = new Runnable() {
public void run() {
+ // performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
+ // sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
+ // showGlobalActionsDialog();
+ mHomePressed = false;
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
- sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
- showGlobalActionsDialog();
+ sendCloseSystemWindows(SYSTEM_DIALOG_REASON_RECENT_APPS);
+ showRecentAppsDialog();
}
};
[Touch CDMA General] moekind:
How do I set long press end to home. Currently it goes to the powers off screen.
[Touch CDMA General] TheKartus:
I loaded up this zImage. I guess I am willing to sacrifice my portrait typing for the sake of my volume slider. Good work so far, glad your trying on this front.
[Touch CDMA General] grantemsley:
Under spare parts, there is an option for what the power/end call button should do. Most of us are setting it to "Home, then Sleep" or something to that effect
[Touch CDMA General] katmandu421:
I hear you, but hopefully we get the double press cam to rotate function back, like in the old blue keyboard days ;)
[Touch CDMA General] katmandu421:
Why not just press the end key? In the spare parts app, set end button behavior to home, then sleep.

Too many widgets causes performance issues.
[Touch CDMA General] sshark:
Agreed, but I have assigned end key to only HOME. I want at least one dedicated home key.

I just found out that even after reassignment, long-press behavior of end-key (power-off menu) is not gone. I am not sure whether this was brought up or not!
[Touch CDMA General] katmandu421:
Just trying to understand why you need a dedicated home key. If you have end button set to home/sleep, then when in an app, tapping the end key takes you home (dedicated home in an app), then if you are ALREADY home, it sleeps the phone. Any reason to go home if you are already home?

Again, just trying to understand the use case for a dedicated home vs. home/sleep.
[Touch CDMA General] omgwtfbbqkthxbai:
long press on home key brings up task switcher, which is super convenient imo.
[Touch CDMA General] grantemsley:
I'm trying to get that re-added. mssmison says he'll build a system with my app switcher patch once he gets a chance.
[Touch CDMA General] sshark:
Haha, ok. I see why you are asking. I have some shortcuts (made from anyCut such as direct SMS shortcut to wifey and dad) on home screen. Additionally, I have not found way to go to MENU (where all apps are) from an app thats already running.

So whenever I need to open a new app or my dedicated shortcuts, I need to go to home screen. :D

Any suggestions how I can optimize this process?:o
[Touch CDMA General] tatnai:
I think katmandu gave you the answer, set red to go home then sleep, one tap always brings you home; press a second time to go to sleep. are we missing something?
[Touch CDMA General] katmandu421:
Just to clarify some terminology; MENU is for in-app options, the app drawer contains the list of all your apps, Home is the wallpapered screen with your shortcut and anycut icons.

To get to the screen with all of your apps (app drawer, not menu) while you are in an app, you will need to first go home (end key) then "pull up" the app drawer. I dont think there is a way to pull this up when not at the home screen.
[Touch CDMA General] prairiefire:
I thought i'd add what combination I would like to see for others to comment on:

Power button - leave as the home and (long press) recent applications

Volume buttons - remain as volume buttons

Place call (green button) - remain as shortcut to phone menu and (long press) voicemail

End call (red button) - remain as screen off with (long press) turn phone off/airplane mode/etc (or whatever you fancy using spare parts app)

Camera button - back button and (long press) landscape/portrait toggle

Directional pad - remain as up, down, left, right

Centre, main button - "enter" (basically what it is now) with (long press) Menu.

Really the only changes to the standard configuration that we have had for a while is that the volume buttons become volume buttons and the back button is moved from "volume up" to "camera", and menu moves from "volume down" to a long press of the centre dpad button. Also, landscape/portrait toggle is handled with a long press of the camera button.

thoughts?
[Touch CDMA General] tatnai:
no "back", which is very useful when navigating settings and making multiple changes. no way you can get by without a back.
[Touch CDMA General] TheKartus:
The current remapped keys are perfect for our situation. Until we have the ability to map and work with long presses and that sort of stuff to make buttons have alternate functions... I really don't see a better solution than the original map or the current functions.
[Touch CDMA General] katmandu421:
+1, current remapped buttons are perfect imo
[Touch CDMA General] prairiefire:
I mentioned the 'back' key. It would be camera.
[Touch CDMA General] tatnai:
missed that. workable, when we get the longpress on board.
[Touch CDMA General] vilord:
I was thinking all the buttons would be as they are now except:

volume up/volume down become dedicated volume buttons

power becomes menu -> long press keyboard -> longer press rotate

camera becomes back -> long press task switcher

(and shift goes away because i find shift annoying)

I'm testing it out and I'll post if I get something workable... gotta figure out the timing for how long is long.
[Touch CDMA General] vilord:
ugh... everything works except power doesn't turn on the phone anymore...

A few more minutes and I'll hope to have it.
[Touch CDMA General] vilord:
Working Long-press keymap!!!

Okay. Got something to work. Please test out the attached zImage and let me know what you think...

Volume = Volume

Power = Menu

>2 second hold of power = rotate (on release)

Cam = back (on release)

>2 second hold of cam = task switcher (on release)
[Touch CDMA General] grantemsley:
Awesome work vilord. Testing it out now.

Could you post or PM me the changes to the source? I'm quite curious how you did it.
[Touch CDMA General] TheKartus:
Sounds awesome and perfect. I'll load it onto my phone once I get to work.
[Touch CDMA General] tatnai:
New remapping works. Notes: longpress enter turns screen on. I think o would prefer the longgpress functions to be switched between the camera and power so that longpress power goes to recent programs so i'm not going back when I'm trying to longpress to get the recent programs. Will resolve with practice, though. I think I like it, thanks a bunch vilrod.
[Touch CDMA General] TheKartus:
I would actually agree with this switch, only because I think I would more commonly use the app switcher as a quick function and it is easier to touch the power button than the camera button.
[Touch CDMA General] tatnai:
one last suggestion to this awesome advancement: is it possible to use fractions of a second? I ask because it feels like two seconds is way too long for a longpress. Is one second too short? or is it just to get in the one second for the keyboard, and then two seconds to get rotation? maybe we could move the keyboard to longpress down d-pad, and everything can be one second instead of two.
[Touch CDMA General] TheKartus:
Long press on the dpad does not really work. The reason the dpad isn't mapped is because of games, and the dpad is most definitely long pressed during games. I personally know that when I am chasing a ghost down the pacman board, I don't want my keyboard popping up and making me get eaten.

EDIT: I can't get Haret to boot this zImage. It may have to do with the fact that I am getting it to my phone via bluetooth transfer. I am looking into it.

UPDATE: So I can't get Haret to pick up this zImage. Not sure why it won't work over a bluetooth file transfer. I have gotten files over bluetooth before, but I can't figure out why its not working now.
[Touch CDMA General] vilord:
The way it is currently, it won't go back if you hold down the button long enough to bring up the programs list. I'll look at switching the delay for the programs list down to 1 second instead of two.

The source is here for now: http://github.com/vilord/htc-vogue-kernel/commit/6e7f20e8e036fa784f3a6bfce1a4d3dfd0fc1dae

Don't forget that this zImage is zipped up so don't just rename it, you have to actually extract it.

Long press to get keyboard to come up is a function of android, so the menu button needs to press as soon as you hit it, whereas back doesn't press until you release...

So I could swap rotate and programs list, but then every time you bring up the programs list, the keyboard would come up (like how rotate is now).

Good to know that long press of the center d-pad turns it on, I couldn't get my device to turn on this morning without double or triple tapping the center dpad... I'm trying to get help with making the top button turn it on again.
[Touch CDMA General] TheKartus:
Any thoughts on why I may have issues getting this zImage off my computer through bluetooth? Haret is saying it cannot load sdcard/zImage.
[Touch CDMA General] craig0r:
That's a pretty broad question... Have you tried with USB to make sure bluetooth is actually the problem? Did you verify from your PC (NOT file explorer on your phone) that the file on your SD card is named zImage?
[Touch CDMA General] TheKartus:
I am at work on a Mac. I can't connect the phone to the PC via anything but bluetooth. My only option is to use bluetooth explorer and copy or cut the file from its location on the computer to my phone.
[Touch CDMA General] vilord:
you did unzip it, right? maybe copy the zip to your phone and unzip it there, the mac unzipper might be messing up the file.
[Touch CDMA General] TheKartus:
I'll try that. I think this is a broader issue though. Something on my SDCard is making it think its full now. I think I'll probably have to backup and reformat once I get home. I'll try the zip thing, but if that doesn't work I'll just not worry about it till I can get home and fix it.

Thanks for the ideas.

EDIT: Unzipping from my phone worked. Good call vilord. Weird that that made the difference.