Keymapping Ideas

I may be the last one to realize this, but I recently noticed that BeOS lets you enter things like ƒ®∑∫ by using the windows key. While it’s a really nice feature I was just thinking that it could be expanded fairly easily in Haiku.

For instance, win+letter could enter lowercase Greek letters while shift+win+letter could enter uppercase Greek letters. Or perhaps someone who frequently types in another language might want to use accented letters but stick with a qwerty keyboard layout. So they may want win+e to be é instead of ´. A business person might even want ®¥© on their home row. So customization would also be nice.

What I’m thinking would be a drop-down box for the normal keyboard layout, and for win+letter and win+shift+letter. For example, the default normal key mapping would be QWERTY, but below it there would be an option for Dvorak and international keyboards. The default win+letter would be what it currently is in BeOS and shift+win+letter might be other frequently used symbols. But other options would be available (Science/Math, Business, Accented Letters, etc.). Additionally, for both the normal key map and the win+letter sets there’d be an option for a custom layout where you could remap your keyboard however you want. This also might include functions. Such as making the menu key act like a right-click where the focus is (as in Windows) instead of opening the deskbar or just being useless. An additional feature might be to show an on screen keyboard if the win key or win+shift combination are held down for three seconds so people can see what each letter maps to with that modifier.

Edit: I just noticed, you have to use unicode encoding to see the right characters. Western or other encodings make different symbols appear (although the specific symbols don’t matter a whole lot, just examples).

I think you’re on to something there.

It could be especially useful for peoply using a lot of cryrillic (sp?) characters, such as in languages such as Russian, Greek, Czech, or German. Different Keymaps for different languages etc.

I also like the ide of math/science keymaps as it would make it easier to type up scientific and lab reports in something like open office, rather than having to shell out for a stand alone peice of software, or having to use two or three different programs.

Keymap does this already, you can drag (2nd mouse button / right mouse button but I’m not sure or try shift) symbols to the edit field and vice versa back to keys thus remapping the keyboard map. I did this several years ago.

Note: last time I checked this wasn’t implemented in the Haiku version but that’s already several months if not year(s) ago, check Trac I have a bug / ticket filed there about it.

Lots of keymaps - many European ones - use the right-side Alt key (labelled “Alt Gr”) to give keys a 3’rd possible character. In the Swedish keymap: @£${[]}~|€µ. These are essential characters. (Common Swedish characters åÅ,äÄ,öÖ use the keys inbetween ‘P’, ‘L’ and ‘Enter’, which is why 6 of those US-keyboard characters have to be Alt-Gr-something on mine.)

This however doesn’t work at all with BeOS’ use of the Alt keys as the “command key” (Alt-X/C/V etc), which is why the (unused) Windows keys have been given the function to produce these extra characters.

Another solution is to split the ctrl keys in left/right and use one of them as “Alt Gr”. This of course is just as obscure as using the Windows key, since it contradicts the actual labelling of the keys on the keyboard.

You can bet people used to how PC keyboards normally work will be very much confused by Haiku, having to figure out why they can’t write ‘@’ the right way (AltGr + 2 on my keymap).

I really like Mac keyboards and I’ve always enjoyed using the Alt keys, but I think it will hurt Haiku adoption if our keymaps deviate from people’s expectations. Keyboards should behave as expected, according to what’s printed on them. I think we really should swallow our BeOS pride and just give people what they expect, when its something as basic as this.

If people need to write in multiple languages, perhaps a keymap switching shortcut similar to that in Windows is actually the best solution. Certainly more standardized and familiar.

This wouldn’t stop people from tweaking their keymaps, should they want to. Most people, however, do not want non-standard keymaps. This is important to remember.

That’s a good point about AltGr (my primary keyboard doesn’t have it). But, since not every keyboard has one, Haiku could certainly use an alternative method of typing those characters. I also don’t think that AltGr is incompatible with this idea. After all, it sounds like you could have a mapping where the win key would act exactly like AltGr. Or if someone had Ctrl set as their command key (or are willing to sacrifice an Alt key) then perhaps the AltGr functionality could be duplicated exactly. (Although even with Ctrl set as the command key, many keyboard shortcuts are still different from Windows. I use Alt myself because it’s easier to subconsciously switch between two fairly different sets of hotkeys than two very similar systems.)

Windows, besides using AltGr, also has another method for entering symbols. Basically, you hold Alt and type a 3 or 4 digit number on the numpad (with numlock on). This method is fairly awkward (it requires moving your hands), and is just a pain for laptop users (since the numpad is incorporated with the keyboard). Also, very few people seem to know about it, so I don’t think it’s a functionality that Haiku needs to duplicate. Especially because this type of input is different for every OS. Here’s what Wikipedia says about typing the section symbol:

* Mac OS 9: Option + 6 * Mac OS X: Option + 6 * X Window System, with a Compose Key, Compose + s + o * TeX: \S * Microsoft Windows with numeric keypad: Alt + 0167; Alt + 21; Alt + 789; Alt + 123456789 (on numeric keypad) * Microsoft Windows with an international keyboard: AltGr + Shift + S

Note, the reason Alt + 789 and Alt + 123456789 work are due to the way the keys are read. Alt + 789 works because Microsoft Windows takes the ((number + 256) modulo 256) which results in 21. The reason 123456789 is that Windows only recognises three digit combinations or four didgets starting with 0-2.

I didn’t know about the Alt-gr key but then again it is quite new. On bebits there is a key map switcher, it should be default in Haiku , I agree! The prefs should have Alt-gr added.

A character-map (like windows’) should be included too, together with various char. code info (Unicode numbers, cp-1250, ascii, etc.) + it could be handy to have a key + number to enter special chars.