Opened 13 years ago

Last modified 8 weeks ago

#1449 reopened enhancement

implement keymap switching application

Reported by: diver Owned by: korli
Priority: normal Milestone: Unscheduled
Component: Servers/input_server Version: R1/Development
Keywords: Cc: siarzhuk, fyysik, prognathous@…
Blocked By: Blocking:
Platform: All

Description

Haiku should have a keymap switcher application in R1.

There is already one with bsd license: http://sourceforge.net/projects/switcher

Change History (23)

comment:1 by korli, 13 years ago

Component: - GeneralServers/input_server
Milestone: R1
Owner: changed from axeld to korli

Obviously a keymap switcher should integrate well with switching input methods.

comment:2 by korli, 13 years ago

Milestone: Unscheduled

comment:3 by siarzhuk, 13 years ago

Cc: siarzhuk added

in reply to:  1 comment:4 by fyysik, 12 years ago

Replying to korli:

Obviously a keymap switcher should integrate well with switching input methods.

This is bit unclear sentence. IMHO, from user POV, deskbar replicant for switching keymaps for "phonetical" alphabets, shoudln't contain choice for input methods. Maybe only in additional advanced section which allows to set different shorcuts to activate this or that InputMethod. But in this case deskbar idndicator would contain second display field, separate from base keymap field. Keymap is primary thing in relation to Input Methods. To be more clean - user of input methods need ability to set basic "phonetical" keymap (variation of latin in simplest case) to that which suits his/her "physical" keyboard better. And Input Method - to use just that keymapping. Only thing I can propose for better integration is keymap locking (by blocking switcher) while input method is activated.

comment:5 by koki, 12 years ago

Cc: koki added; siarzhuk removed

I write in three languages: English, Spanish and Japanese. For the first two, a keymap switcher does the job. The latter uses an input method that is enabled/disabled using a toggle key combination (alt-space in BeOS/Haiku). If my memory does not fail, I think the keymap switch only works when the input method is disabled, and when the input method is enabled, the keymap always returns to whatever system-wide keymap has been chosen as default (which usually is whatever matches your physical keyboard).

As it is now, the keymap switching and the input method toggling are independent one from the other, so they would require separate separate deskbar replicants. I guess they could be combined into one replicant, but I am not sure what that would mean under the hood. FWIW.

in reply to:  5 comment:6 by fyysik, 12 years ago

As it is now, the keymap switching and the input method toggling are independent one from the other, so they would require separate separate deskbar replicants. I guess they could be combined into one replicant, but I am not sure what that would mean under the hood. FWIW.

With single input method situation is not so complicated, but I imagine situation when users utilize several input methods. E.g. Hebrew and Japanese, besides, to say, english, german and russian keymaps:) (I know users, who really have need for that!). But from your talk I got understanding that switcher keymap-locking feature with activated input method is already automagically present in BeOS. So we just need to check that it wouldn't be broken in Haiku.

comment:7 by diver, 12 years ago

Cc: siarzhuk fyysik added

comment:8 by aldeck, 12 years ago

If someone would like to work on that, note that i'm working on a new keymap management system that would ease implementing this enhancement. Just send me a mail or comment here so there's no wasted effort :)

comment:9 by diver, 11 years ago

Some links: http://switcher.cvs.sourceforge.net/viewvc/switcher/keymapswitcher(haiku)/ http://siarzhuk.dyndns.org/switcher-h.zip

I would suggest to add "Show keymap switcher in Deskbar" option to Keymap preflet to trigger deskbar replicant on/off.

comment:10 by siarzhuk, 11 years ago

Note that mentioned keymap switcher is pending now to be added as optional 3rd party package. See #3681 for details.

comment:11 by aldeck, 11 years ago

Thanks for the note. I don't have plans to work on my keymap system replacement in the near future, it's fine to use that 3rd party switcher for now :)

comment:12 by siarzhuk, 11 years ago

Shouldn't this issue be closed as soon as KeymapSwitcher is available as 3rd party app?

comment:13 by diver, 11 years ago

I would like to have keymap switcher preinstalled. I think that such functionality is a mandotary for an OS.

comment:14 by axeld, 11 years ago

Indeed, this functionality should be added to the Keyboard preferences in the future (which this ticket is about). For now, using the KeymapSwitcher is fine, though.

comment:15 by Prognathous, 11 years ago

Cc: prognathous@… added

comment:16 by diver, 10 years ago

Version: R1/pre-alpha1R1/Development

comment:19 by bitigchi, 3 months ago

Why not bundle this application with the system for the moment? This is real core functionality that's missing. Maybe it will be an incentive for a newcomer to pick this and integrate it into the system in a better way.

comment:20 by diver, 3 months ago

Yes, this makes sense. When a newcomer installs Haiku and comes to Telegram group asking how to switch keymaps and we have to answer this question again and again and again to get it from HaikuDepot. Current code is at https://github.com/HaikuArchives/KeymapSwitcher.

comment:21 by waddlesplash, 3 months ago

It is already bundled with release images, but not nightlies, I believe.

comment:22 by bitigchi, 3 months ago

A small but useful hack: Add a button to Keymap preference pane to trigger the Switcher. This way there won't be any confusion about which pane to start with.

comment:23 by diver, 3 months ago

Yes, this is a good idea.

comment:24 by pulkomandy, 8 weeks ago

So, here's the mailing list comment from Siarzhuk Zharski about the KeymapSwitcher design:

It's design is rather eccentrical - the input filter watches for key events and send corresponding switch messages to the replicant in Deskbar that overwrites the ~/config/settings/Key_map file and forces input_server to reload current keymap. Because of such "unoptimal" design it has no chance ever to settle in the Haiku tree.

Another problem this package tries to solve is shortcuts mapping. Haiku has inherited from BeOS the character-based shortcuts and user have to press different keys combinations on different keymaps for the same shortcut. Many people found this annoying - because this breaks the whole idea of shortcuts as "muscle memory using". And needless to say that cyrillic keymaps have no latin characters at all so russian guys are not just annoyed but in the great fury. To calm them, KeymapSwitcher select one of configured keymaps as "base" one and use it to substitute shortcut characters on the fly in the input filter so they looking like from latin-based keymap.

Indeed it would be nice for input_server to be able to switch keymaps without having to rewrite the settings file everytime.

Note: See TracTickets for help on using tickets.