• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category User Interface
  • Assigned To No-one
  • Operating System Sansa c200
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Version 3.1
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by pixelma - 2008-03-29
Last edited by BigBambi - 2009-06-20

FS#8824 - Changes to the c200 keymap (work in progress, up for discussion)

As mentioned in IRC the c200 keymap is a bit unintuitive in some places and I changed small bits here and there for my own use. I’m still not completely satisfied with it but find it still better and am out of ideas on how to improve, so I’m putting this up for discussion.

My thoughts and changes in detail:

1. Browsers/Menu (the “resume” patch)
I really missed a “one button resume” from there and so decided that this is more important to me than being able to change volume in lists.
- resume = “volume up” - stop = “volume down” Comparing with the Ondio keymap, I also tried freeing the “select” button for it by putting the “select”/”long select” functions on right/long right but this interferred with the “horizontal scrolling” which the Ondio doesn’t have (on one button).
Not in my patches but another thought: currently a short press of the rec button will call the recording screen from the browsers/menus. I think this should be a long press and then we have a button action to use (but am not sure myself if the latter part is such a good idea).

2. Recording Screen
The goal was to make it more intuitive and in line with other screens,
I changed:
- recording menu = “long down” (was “short power”)
- leave recording screen = “short power” (was “long power”)
These two were the main things but I also exchanged the actions for REC_NEWFILE and REC_PAUSE (the one that was “short rec” before is now “short select” and vice versa). Unfortunately I don’t remember why in detail but there is a slight difference between the two and I probably thought back then that this way it is more intuitive for what each does.

Edit: On a second thought I realised that this change only feels ok as long as the possible settings on the recording screen are not too many because with it you couldn’t “scroll down” through a list (”long down” would call the recording menu) - so what other options would be there… “long select” could be critical because it’s too easy to press too quick and then you start a recording…

3. Radio Screen
Goal: freeing the “rec” button
- switch preset/scan mode = “long down” (was “rec”)
- radio context menu is now explicitly on “short down” When reading this I think this could even be done the other way round so that “short down” will swith the modes and “long down” to call the radio context menu - if the WPS part is also changed, then we could have “long down” calling the context menu in all 3 screens.
My patch also deals with possible button action conflicts (I removed the connection to other contexts because I would have needed the same amount of ACTION_NONE to avoid clashes and I thought that I could just implement my own “standard context” buttons, remove the connection and make it more predictable this way).

4. Virtual Keyboard
Goal: make it more intuitive and tried to avoid button combos.
- cursor left = “volume down” (was “rec + left”)
- cursor right = “volume up” (was “rec + left”)
- backspace = “rec”, short and long for repeat (was “rec + down”) *
- page flip = “short power” (was “rec + select”) - accept + leave = “long select” (was “volume buttons”)
- abort + leave = “long power” (was “short power”)
*) I kept backspace on rec because it was the only free button which made a repeat possible.
**) I’m not happy with the “short power” and “long power” actions but wanted to avoid button combos - maybe page flip could be dropped?
Page flip also isn’t implemented correctly with this patch because usually the ability to flip the keyboard pages going left or right
would be disabled.
Another possibility would be to enable “line edit mode” which would then free the buttons which are now used for “cursor left/right” and “backspace”? I always thought that this would be a pity because this thing has 9 buttons but when reading this I start thinking that it could be more intuitive (and probably make enabling “morse mode” possible).

Attached are the “complete keymap changes patch” and patches for each part on its own.

Closed by  BigBambi
2009-06-20 10:42
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Committed as r21373

For the virtual keyboard: I have no c200, but I think it’s the same on nearly any target. I doubt that mapping anything but abort/cancel/leave to power is unintutive.

Also, you implemented a nice incosistency imo. Short Power press leaves recording, but you need a long power for for exiting the keyboard.

But again, I have no c200. I probably don’t have any idea of the current badness of the keymap (aka just my $0.02).

Not commenting on the above patches (I’ve not tried them yet, sorry)… but having just received a c240, I wanted to document my gut feelings as a user of Rockbox (lots of H300, a little Gigabeat and JBR1 a few years back) who has never used the Sansa OF.

When I used the c200 under Rockbox (as is), I found it unintuitive, whereas I picked up the Gigabeat easily and it felt very comfortable.

I always think of the keymapping to be a set of physical buttons (varying by device) mapped to a set of logical buttons (UP, DOWN, LEFT, RIGHT, SELECT, PLAY, STOP, MENU and REC). My expectation when I first ran Rockbox on c200 was for the following mapping:

UP/DOWN/LEFT/RIGHT - up/down/left/right
SELECT - centre
STOP - power
REC - record

Assuming vol up/down are dedicated to that function, we run out of buttons and have to double-up.
MENU - down (when not in a list)
PLAY - up (when not in a list)
(The main downside of this is the loss of the ability to PLAY directly from a menu.)

Alternatively, if vol up/down are free for reassignment:
MENU - volume down
PLAY - volume up
Personally, this would be my preference.

(Note regarding above: Capitals for logical buttons, lower case for physical.)

Other functions come out of this assignment naturally, if you compare with the H300 mapping - e.g. LONG SELECT = context menu

Again, I’m just documenting what I expected, you can decide if it’s useful information.

Having tested the patches above, I now feel that the new layout is a lot more intuitive and easier to work with.

The inconsistency pointed out by kugel is about the only thing that needs a look at. A short Power does leave recording, but a long Power to leave the virtual keyboard is a little strange. But with the other changes made to the virtual keyboard, it’s now much easier to work with it.

I completely agree that the virtual keyboard buttonmap is still inconsistent (and even said so in my description). That’s also teh reason I put the patches here because I also hoped for some other /ideas/… :) To get a bit further I tried to think about pros and cons of different solutions for the virtual keyboard:

First possibility: enable line edit mode
PRO: this would free up some buttons and could make a lot of things easier, probably even easier for one handed control. I could imagine the following:
- enter edit line and have “left/right” to move there, “select” as “backspace” - freeing up “volume up/down” and “rec”, those could be used for “page flip” and “morse mode” somehow
- short press of “power” to “cancel and leave” CON: navigation in the edit line is a little harder because you have to enter it first
- “long select” should (would?) still be “accept and exit” making it impossible to have repeated “backspace” - but: this is the case on other targets as well (e.g. the Ondio)

Second idea: I also experimented with button combos with “rec” + “left/right/select” for navigating the edit line
PRO: quite logical and leaves some other buttons free for e.g. “page flip”, and you can have a “backspace” repeat
CON: (IMO a big one) button combos, and especially one with “rec” needs two handed controls and is harder than pressing single buttons in general.

Third possibility: someone find a better place for “page flip” in my patch, maybe keep it a button combo (though the above applies here too).

Fourth possibility: your turn ;)

About pondlife’s suggestions: it’s hard to imagine from this general description and I think this should be discussed per screen.
Quick ideas coming to my mind when reading this (and a statement in IRC):
- “short power” in the WPS could stop playback - I think I could like it very much // Edit: that one calls the menu (which is nice too), oh well :\
- trying to make “long select” entering context menus everywhere - should also work in the WPS/Radio Screen without a problem (haven’t tried though) and would be nice in the Recording Screen too (and would solve the issue of having no repeated “down” in the options, noted above) but would need a better place for the one of the two “start recording” actions that are now on a “short select”, otherwise it’s too easy to accidentally start recording I think

I think that menu should stay on power, everything else is really awkward to use and why should we make life for c200 users hard just to be consistent with other targets that have a menu button. I didn’t like the e200 keymap change, but there I could understand and live with it. On the c200 it wouldn’t work for me.
We already have long play for stop which is really intuitive, I think.

volume up = resume is a must, I missed this in the first minute I had rockbox working. It isn’t obvious, but we can’t put our labels on the buttons so we have to use what we’ve got.

I can’t comment on the vkeyboard and rec and radio screens now, I won’t use them much on the c200. And I better not repeat my idea about the rec button here (#5555 if you are interested)

“We already have long play for stop which is really intuitive, I think.” is the statement I disagree with there - I could not work out how to stop playback at all. On all other targets I’ve used, the power button is used as STOP (short for stop, long for shutdown).

If you’re happy to use volume up for PLAY (i.e. resume), then vol down as MENU seems reasonable. I’m right-handed, maybe that’s a factor…

I’ve been playing with the changes, and overall find them much better than the current keymap. Resume in menus/browser is a godsend.

A short press of down in the WPS feels odd for context menu - I expected a long press of select for that like other targets. Doing that leaves a short press free, and I’m not sure what I’d put on it. I would however like long select to be context menu even if down also is, for consistency with other targets.

The virtual keyboard is MUCH better. I don’t have much to add to that.

I’m afraid I haven’t much used the FM or recording screens on my other targets, so can’t really compare.

ryran commented on 2008-07-18 04:27

I just got my c250 two weeks ago. Having used rockbox for years on ipods, I was definitely bothered by how funky the keymap is. I’m especially surprised it took me so long to figure out stop on my c250, considering I came from using an ipod. Holding down play for stop DOES make sense to me though. I dunno. Weird. I’d say leave the power button as menu.

Tried the patch and I’m with totally with BigBambi: Resume & stop in menus/browser is essential. On first use, I totally expected long select to DO SOMETHING in the WPS, namely bring up the context menu. I agree that (even if another action isn’t cooked up for short press of down) long select should also be mapped to bring up the WPS context menu. Anyway, thank you Marianne for getting the ball rolling with this!

nls commented on 2008-08-07 21:04

from using a c200 for about 15 minutes I completely agree that long select should bring up the context menu in the WPS and everywhere else it’s possible to do so without too much sacrifice.

oayz commented on 2008-08-08 17:58

OK, so after 1 month of playing with C240 let me suggest this:

In WPS mode:

POWER = stop and go to browser mode (long POWER is still OFF)
SELECT (short) = main menu
SELECT (long) = context menu
REC (short) anything but recording
REC (long) = recording mode (further short REC start/stop recording)

In menu mode:

REC (short) = pause/resume (we can do the same in WPS mode for consistency)

In virtual keyboard mode:

UP/DOWN/LEFT/RIGHT = up/down/left/right on the keyboard
REC + UP/DOWN/LEFT/RIGHT = up/down/left/right in the text (auto-repeat?)
SELECT = select current character (on release of the button)
LONG SELECT = change keyboard layout (international etc.)
REC + SELECT = backspace
SELECT + REC = delete the whole line (current char is inserted but than whole line is deleted)
MENU = exit and save
REC + MENU = exit without saving

Also having up/dn/left/right/PgUp/PgDn/Home/End/Backspace/Save/Exit virtual buttons on keyboard would be nice.

Keep VOLUME = volume is all modes! Having a (consistent) way to pause/resume in all modes would also be nice.
Basically suggestion is to make things stradardiriazed:
- up/dn/left/right for navigation
- REC as a modifier (similar to ALT or CTRL on PC)
- short press for main function, long press for similar secondary one

We can also look into using double clicks where appropriate.

I would like to suggest we organize all our suggestions as a table with functions as a first column and proposed key assignments as columns 2..n and let people to provide feedback and vote on best layout. That should let us to quickly converge. Probably better to do in forum than here.

ncm commented on 2008-10-01 00:31

I don’t have a c200, but the e200 button assignments went badly awry sometime early this year. I recall something like a playback menu accessible from the playback screen; now pushing “select”, “menu icon”, or “menu/power” all jump, after power-up, to useless menus.

Is this the right place to discuss this? Is the set of buttons on the c200 similar the e200’s, or should I open a separate task for e200 UI choices?

This task is for the c200. The e200 keymap did change, but it didn’t go “awry”, the change was intentional and is described in the manual.

Update after a long time:

Patch against current SVN with the must-have things I’m still using in my own builds and really miss when using an SVN build for testing purposes. These are: one button resume (from menus/browsers), virtual keyboard improvements and WPS context menu on “Long Select” (plus the switch to the recording screen on a long press of the “Rec” button which is new though). Everything changed a bit since the last version:

1. One button resume - I kept on using “Volume Up” for it which also let me use “Volume Down” for stop in the lists but after a recent discussion in IRC now changed it to a “Long Right”. Works well but doesn’t feel as nice to me as “Volume Up” did but maybe I already got used to this too much, maybe others are less biased. This prevents the forced horizontal scrolling with one button and just leaves the button combo (Rec+Left/Right) for it, the functionality looks a bit weird anyways.

2. Virtual keyboard - the controls stayed almost the same as in the first posted version with the exception of the “Power” button. Putting the page flip on a button combo now (Select+Left/Right) left “Short Power” for cancel and leave the virtual keyboard. I don’t like button combos with “Select” much as it could also trigger the “Long Select” for accept if someone is slow, this didn’t happen to me yet though and I don’t see other buttons for combos working nicely. A more important change is the enabling of line edit mode, so that you have a second way of navigating the input line, I like having both.

3. WPS - call the context menu with a “Long Select” like other context menus and not a short press of “Down”. It frees up the short “Down” for entering the quickscreen (is a “Long Down” in SVN) though I’m not sure about this one. The change helps consistency… and something similar had been done on the e200 keymap.

4. Menus and browsers - enter the recording screen with a long press of the “Rec” button instead of a short press. At the moment it’s quite easy to accidentally enter the recording screen, this would prevent it and is also consistent with other targets and the WPS.

The patch also includes the necessary changes to the manual.

I agree with all of these changes having tried them and think they should go into SVN sooner rather than later.


Available keyboard shortcuts


Task Details

Task Editing