Problem with mapping a key to multiple characters (Unicode + diacritic symbol)
Ilya Anfimov
ilan at tzirechnoy.com
Wed Mar 13 18:32:19 UTC 2019
On Wed, Mar 13, 2019 at 03:20:00PM +0100, Pierre-Luc Angles wrote:
> Dear Ilya, dear all,
>
> now I have tried once again in my keyboard layout
>
> key <AE01> { [ ampersand, 1,
> i_breve_below, U032F ] };
>
> Typing it in a LibreOffice document with the right font results in no
> reaction (whereas before it reacts like NoSymbol by putting the default
> onesuperior).
Did you restarted libreoffice completely? I mean, closing any
window and checking that no "quickstart" is hanging in memory?
XKeysymDB and *Compose are read only once at startup.
>
> Running xev I can see now:
>
> KeyPress event, serial 37, synthetic NO, window 0x4c00001,
> root 0x168, subw 0x0, time 2807193, (-519,30), root:(568,309),
> state 0x4090, keycode 0 (keysym 0x0, NoSymbol), same_screen YES,
> XLookupString gives 0 bytes:
> XmbLookupString gives 3 bytes: (69 cc af) "i??"
> XFilterEvent returns: False
It's probably the second event after that keypress.
And this is the usual xlib compose path: real keypresses that
are part of composing sequences (or can be such a part) reported
as usual, except that XFilterEvent returns True, after receiv-
ing a complete sequence (or getting something that is definitely
not a beginning of a sequence) an event with the keycode 0 simu-
lated that returns final string via XmbLookupString.
>
> KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
> root 0x168, subw 0x0, time 2807315, (-519,30), root:(568,309),
> state 0x4090, keycode 10 (keysym 0x100050f5, i_breve_below), same_screen
> YES,
> XLookupString gives 0 bytes:
> XFilterEvent returns: False
>
> KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
> root 0x168, subw 0x0, time 2810008, (-519,30), root:(568,309),
> state 0x4090, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen
> YES,
> XKeysymToKeycode returns keycode: 92
> XLookupString gives 0 bytes:
> XFilterEvent returns: False
>
> Note that a working key typed with the ALtGr modifier on the same keyboard
> layout has just two paragraphs in xev, for example:
This doesn't seems to use Compose. Just a usual unicode symbol,
directly translated (0x0101 in Unicode is 0xc4 0x81 in
utf8).
>
> KeyPress event, serial 37, synthetic NO, window 0x4c00001,
> root 0x168, subw 0x0, time 2802465, (-519,30), root:(568,309),
> state 0x4090, keycode 24 (keysym 0x1000101, U0101), same_screen YES,
> XLookupString gives 2 bytes: (c4 81) "??"
> XmbLookupString gives 2 bytes: (c4 81) "??"
> XFilterEvent returns: False
>
> KeyRelease event, serial 37, synthetic NO, window 0x4c00001,
> root 0x168, subw 0x0, time 2802581, (-519,30), root:(568,309),
> state 0x4090, keycode 24 (keysym 0x1000101, U0101), same_screen YES,
> XLookupString gives 2 bytes: (c4 81) "??"
> XFilterEvent returns: False
>
>
> It seems then to be the good direction, so thank you but I do not see what I
> could do now.
>
> Thanks again!
>
> Best,
>
> Pierre-Luc
>
> Le 13/03/2019 ?? 15:04, Pierre-Luc Angles a ??crit :
> > Dear Ilya, dear all,
> >
> > Thanks again for this important remark.
> >
> > My ~/.XCompose file is then the following:
> >
> > <i_breve_below> : "i??"
> > <u_breve_below> : "u??"
> > <i_wtdot_ring_above> : "????"
> > <I_ring_above> : "I??"
> > <c_caron_dot_below> : "????"
> > <C_caron_dot_below> : "????"
> > <s_macron_below> : "s??"
> > <S_macron_below> : "S??"
> > <H_macron_below> : "H??"
> > <h_circumf_below> : "h??"
> > <H_circumf_below> : "H??"
> >
> > My /usr/share/X11/XKeysymDB is the following:
> >
> > i_breve_below :100050F5
> > u_breve_below :100050F6
> > i_wtdot_ring_above :100050F7
> > I_ring_above :100050F8
> > c_caron_dot_below :100050F9
> > C_caron_dot_below :100050FA
> > s_macron_below :100050FB
> > S_macron_below :100050FC
> > H_macron_below :100050FD
> > h_circumf_below :100050FE
> > H_circumf_below :100050FF
> >
> > and in my keyboard layout I have tried in a first time with:
> >
> >
> > key <AE01> { [ ampersand, 1,
> > i_breve_below, U032F ] };
> >
> > and afterwards i a second time with
> >
> > key <AE01> { [ ampersand, 1,
> > U100050F5, U032F ] };
> >
> > The keyboard is working but the i_breve_below or U100050F5 is not
> > working (I still have this xev when I type on the ampersand key + the
> > AltGr modifier:
> >
> > KeyRelease event, serial 37, synthetic NO, window 0x4e00001,
> > root 0x168, subw 0x0, time 2120434, (-409,14), root:(142,282),
> > state 0x4090, keycode 10 (keysym 0xb9, onesuperior), same_screen YES,
> > XKeysymToKeycode returns keycode: 49
> > XLookupString gives 2 bytes: (c2 b9) "??"
> > XFilterEvent returns: False
> >
> > I do not see where the problem is now...
> >
> > It could be helpful if some one has a key.
> >
> > Thanks again and sorry for bothering you with that.
> >
> > Best,
> >
> > Pierre-Luc
> _______________________________________________
> xorg at lists.x.org: X.Org support
> Archives: http://lists.freedesktop.org/archives/xorg
> Info: https://lists.x.org/mailman/listinfo/xorg
> Your subscription address: %(user_address)s
More information about the xorg
mailing list