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