[haiku-development] Keymaps

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Tue, 8 May 2012 19:35:45 -0400

After re-reading 'AltGr Key, key_map, and the US-International
Keyboard' there are so many things we need to fix here before R1 that
I'll never be able to do it all by myself. I need some help.

Firstly, we need an AltGr key in keymaps and a corresponding
B_ALTGR_KEY constant that is set by the keymap files. Support for
AltGr needs to be integrated into Keymap as well. This is relatively
easy though. Luckily it looks like we don't need to add any more maps,
at least not for AltGr support, we can use the option maps for that
purpose. If we want to support Japanese keyboards though we will need
some more maps for them.

Secondly we need to integrate KeymapSwitcher into Haiku and natively
support multiple keymaps. Apparently this is a must have feature for
Cyrillic users, not just a nice to have, meaning they cannot
practically use Haiku without native keymap switching support. We need
to add a Deskbar replicant to access the keymap settings. I'm not sure
how KeymapSwitcher currently works, but, I imagine it already has
this.

Right now all your modifier key settings are defined in your keymap,
which means they will change when you switch your keymap. We need to
take modifiers out of keymaps if we are seriously going to support
multiple keymaps. We could hack it, but, doing it right means the
settings need to be removed from your key_map struct and put in it's
own struct.

Fourthly we need to integrate multiple keymap support into ROBP and
show it at startup so that you can select your keymaps at first run.
We may want to disable ROBP at startup for development builds though
and only show it for release builds. We probably also want to add
Timezone and other one-time settings there too.

I'd also like to add some more features to Keymap to make it easier to
map different keys and switch things around easier, but, the above
list pretty much sums up what we need to accomplish before R1.

Thanks for listening,
John Scipione

Other related posts: