logo       

Re: h2200_kbd: Remapping all 4 special keys to F9-F12 (Was: [H2200-port] ke: msg#00030

linux.ports.h2200

Subject: Re: h2200_kbd: Remapping all 4 special keys to F9-F12 (Was: [H2200-port] keboard, brightness with opie on h2200)

Hello Giorgio,

[cc: to kernel-discuss, as it really belongs there]

Monday, August 7, 2006, 10:38:16 AM, you wrote:

> Hi,

> If nothing against it, In two days I'm going to remap all 4 special keys to
> F9-F12 set in h2200_kbd.
> I'll provide the patches for Opie and Xmodmap.

> Alle 17:23, venerdì 4 agosto 2006, Giorgio Padrin ha scritto:
>> If a common map is not feasible, I'd simply map in the F9-F12 range, in the
>> order in which buttons are on the device, so someone knows visually what
>> the map is.

Sorry for not responding earlier, but there doesn't seem to be need
to haste with this. Such a change unlikely will get into Familiar
0.8.4, and so, let's better invest some pondering and discussion into
it, and do that right.

So, yes, it's feasible and important to have common map. That's
common problem and deserves common solution.

> iPAQs are keyboardless devices, but we can attach bluetooth keyboards or
> keypads with funny keys, maybe for music or else. So maybe it's better to not
> invade sets of keys with an expected behaviour.

Well, you're right with this. But again, it doesn't really important
what exact mapping is used, what's important that it was common. That
way, one device won't be worse than another, and any fix and
improvement will benefit all devices. So, as you say, we have little
option now than to use Fn keys. After all, problem we face now is that
*builtin* buttons doesn't work over wide range of handhelds, so let's
solve that problem first, and leave external keyboards for after that -
it will be much easier to fix if there's common ground.

Ok, so let's consider what we have/may have:

1. First of all, no matter what we mapping we have, we should add
proper level of indirection, so once we converted to common mapping,
it can be tweaked in one place. So, let there be <linux/input-pda.h>
which define constants with suitable prefix (like BTN_ or KEY_PDA_).

2. The least common denominator we haev is 6 buttons which *almost*
all devices has. These are:

- Power button (a must)
- Record (most have; well, h2200 is one of the few exceptions)
- 4 app buttons

So, just defining 6 standard codes for these buttons (for appbuttons
- as you suggest, from left to right, APP1...APP4, plus will need to
extra rules for funke layouts vendors just love outa there), and making
sure we have default mapping in appropraite userland (GPE/Opie), we'll
have working keys in all current and future ports.

3. But, appbuttons mapping will be funky for many devices. If you'd be
asked what 4 appbuttons do, what be your answer? For me, it's
Contacts, Calendar, Tasks, Memos. Old good Palm times, where is it?..
Looking carefully at what button assignments are in PocketPCs produced
over years, gives a bit of shock - unorderdness and mess, each device
tries to invent its own pattern. After first shock fades out, some
pattern does appear still: it seems like there's 5 most common
functions - assigned to 4 keys. Order of buttons is arbitrary however
(i.e. buttons with same functions may be in different positions
spatially). So, what we have:

- Almost all devices have Contacts and Calendar
- There're also Tasks, Mail(Internet, Sync, ...), and Home
(Taskman,...)
- Phone edition dveices have Answer/Hangup buttons and 2 app buttons

4. Phone edition devices usually have even more buttons, like Volume
Up/Down. Some devices have jogdial.


So, based on this, I propose:

1. We define mapping in terms of both button's position and function.
Position is rather a fallback method, for funky devices which have
just mad mappings.

2. Let the default correspondence between positional and functional to
be that of "golden age" iPaqs, i.e. h1900, h2200, h4000, hx4700. These
get F9-F12 keys.

3. Need to fugure out mapping for other keys.


All in all, that gives following draft <input-pda.h>:
=============
#include <linux/input.h>

#define KEY_PDA_POWER KEY_POWER
#define KEY_PDA_RECORD /* There's KEY_RECORD, but it's >127. Well,
h6300 uses it. Does it work? h6300.xmodmap
has keycode 8 = XF86AudioRecord ??? */

#define KEY_PDA_APP1 KEY_F9
#define KEY_PDA_APP2 KEY_F10
#define KEY_PDA_APP3 KEY_F11
#define KEY_PDA_APP4 KEY_F12

/* Default functional mapping is those of h1900/h2000/h4000/hx4700
iPaqs */
#define KEY_PDA_CALENDAR KEY_PDA_APP1
#define KEY_PDA_CONTACTS KEY_PDA_APP2
#define KEY_PDA_MAIL KEY_PDA_APP3
#define KEY_PDA_HOME KEY_PDA_APP4

#define KEY_PDA_TASKS /* assign */
#define KEY_PDA_ANSWER /* assign */
#define KEY_PDA_HANGUP /* assign */

#define KEY_PDA_VOLUMEDOWN KEY_VOLUMEDOWN
#define KEY_PDA_VOLUMEUP KEY_VOLUMEUP

#define KEY_PDA_JOGUP /* assign, perhaps KEY_PAGEUP? */
#define KEY_PDA_JOGDOWN /* assign, perhaps KEY_PAGEDOWN? */
#define KEY_PDA_JOGACTION /* assign, perhaps KEY_KPENTER? */
=============



> Giorgio


--
Best regards,
Paul
mailto:pmiscml-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise