[maemo-developers] Hacking hardware keyboard key press sequences

From: Matan Ziv-Av matan at svgalib.org
Date: Mon Jun 7 18:29:05 EEST 2010
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.
More information about the maemo-developers mailing list