On Mon, 7 Jun 2010, Dawid Lorenz wrote:

Once upon a time I have hacked /usr/share/X11/xkb/symbols/nokia_vndr/rx-51 file 
in order to make typing Polish national
characters easier using hardware keyboard. Namely, I've managed to work around 
Fn->Ctrl key sequence to disable on-screen
keypad to appear and use Fn+Ctrl+letter combination to get a Polish character 
directly from hw keyboard. [1]

Anyway, this solution isn't ideal and I'm looking a way to improve it a little. 
Currently, to type "ą" letter I need to
press rather awkward Fn+Ctrl+A key combination at the same time. What I'd like 
to be able to do is to type a *sequence* of
keys instead, so Fn->Ctrl->A = ą. Simple question: how to do that? :)

My implementation of rx-51 file [2] is using "Group2" mode to store table of 
Polish special chars (see line #88 onwards)
and Fn-Ctrl combination triggers Mode_switch (see line #504), which puts 
keyboard into Group2. That works ok but it seems
that I have to press Fn+Ctrl *simultaneously* to use Mode_switch, while I'm 
looking for a sequence of key presses to do
that. It is somehow possible, as originally Fn->Ctrl sequence was triggering on-screen 
keypad (known as "Multi_key" in
rx-51 file).

Are there any input method hackers flying with us and could shed a light on 
possible solution? That would be greatly
appreciated.

The sticky keys for shift and fn are implemented in gtk input filter (hildon-input-method-framework package), rather than in xkb. Since your fn+ctrl map is done in xkb, it is not helped by the filter. You probably need to change this package, either to manage group switching by itself, instead of in xkb, or by using XkbLatchGroup to change xkb group.

Note that xkb also has a sticky keys implementation, but I don't know how to use it, and I don't know if you can use it without conflicting with hildon's implementation.


--
Matan.
_______________________________________________
maemo-developers mailing list
[email protected]
https://lists.maemo.org/mailman/listinfo/maemo-developers

Reply via email to