Problem with mapping a key to multiple characters (Unicode + diacritic symbol)

Pierre-Luc Angles angles at stud.uni-heidelberg.de
Thu Mar 14 18:42:14 UTC 2019


Dear Ilya, dear all,

Thanks again.

My full xkb mapping is the following. I have not added all the Compose 
keys but just i_breve_below to test it (note that it is not a i without 
dot but a normal i with a breve below and that the i withoutdot is 
combined with a half ring above.

partial alphanumeric_keys
xkb_symbols "oss" {

     include "latin"
     include "level3(ralt_switch)"
     include "nbsp(level4n)"
     include "keypad(oss)"

     name[Group1]="translitt";

     // First row
     key <TLDE>	{ [      	   U1E95,    		 U1E94,          	   U021D,   	 
      U021C ] }; // ẕ Ẕ ȝ Ȝ
     key <AE01>	{ [        ampersand,                1, i_breve_below, 	 
	      U032F ] }; // & 1 i+̯  U0069+U032F i and Combining Inverted Breve 
Below and dead inverted breve below  auparavant on trouvait 
deadUnderscoreacute au lieu de U032F
     key <AE02>	{ [           eacute,                2,           	 
U00EB,              	  U00B4 ] }; // é 2 ë „
     key <AE03>	{ [         quotedbl,                3,          	 
UA723,  			      UA722 ] }; // " 3 ꜣ Ꜣ
     key <AE04>	{ [       apostrophe,                4,            	 
U2018,             	  U2019 ] }; // ' 4 ‘
     key <AE05>	{ [        parenleft,                5, bracketleft, 
         braceleft ] }; // ( 5 [ {
     key <AE06>	{ [            minus,                6, NoSymbol, 
      	  U007C ] }; // - 6  il faut combiner U0075 + U032F en troisième 
position (u+̯ )
     key <AE07>	{ [           egrave,                7, U00AB, 
       U00BB ] }; // è 7 « »
     key <AE08>	{ [       underscore,                8,            	 
U1E71,             	  U1E70 ] }; // _ 8 ṱ Ṱ
     key <AE09>	{ [         ccedilla,                9, Ccedilla, 	 
         U0331 ] }; // ç 9 Ç ̱
     key <AE10>	{ [           agrave,                0, U2205, 
       U00D8 ] }; // à 0 ∅ Ø
     key <AE11>	{ [       parenright,           degree, bracketright, 
          	  U2014 ] }; // ) ° ] —
     key <AE12>	{ [            U02BF,            U02BE, braceright, 
        	  U2013 ] }; // ʿ ʾ } –

     // Second row
     key <AD01>	{ [                a,                A, U0101, 
       U0100 ] }; // a A ā Ā
     key <AD02>	{ [                z,                Z,         	 U1E93, 
            	  U1E92 ] }; // z Z ẓ Ẓ
     key <AD03>	{ [                e,                E, U0113, 
       U0112 ] }; // e E ē Ē
     key <AD04>	{ [                r,                R,          	 
U0259,          		  U0323 ] }; // r R ə ̣
     key <AD05>	{ [                t,                T, U1E6D, 
       U1E6C ] }; // t T ṭ Ṭ
     key <AD06>	{ [                y,                Y,           	 
U1E6F,            	  U1E6E ] }; // y Y ṯ Ṯ
     key <AD07>	{ [                u,                U,          	 
U016B,           	  U016A ] }; // u U ū Ū
     key <AD08>	{ [                i,                I,          	 
U012B,           	  U012A ] }; // i I ī Ī
     key <AD09>	{ [                o,                O, U014D, 
       U014C ] }; // o O ō Ō
     key <AD10>	{ [                p,                P,          	 
U13379,                U1337A ] }; // p P opening of cartouche 𓍹 
closing of cartouche 𓍺
     key <AD11>	{ [            U032D,            U0357,           	 
U015B,        		  U015A ] }; // ^ ̈ś Ś auparavant 
deadUnderscorecircumflex deadUnderscorediaeresis
     key <AD12>	{ [           dollar,         sterling, U015F, 
   	  U015E ] }; // $ £ ş Ş

     // Third row
     key <AC01>	{ [                q,                Q,            	 
U0161,				  U0160 ] }; // q Q š Š
     key <AC02>	{ [                s,                S, U1E63,				 
U1E62 ] }; // s S ṣ Ṣ
     key <AC03>	{ [                d,                D,           	 
U1E0D,            	  U1E0C ] }; // d D ḍ Ḍ
     key <AC04>	{ [                f,                F,  			   U1E0F, 		 
   U1E0E ] }; // f F ḏ Ḏ
     key <AC05>	{ [                g,                G, 			   U0121, 
         U0120 ] }; // g G ġ Ġ
     key <AC06>	{ [                h,                H, U1E25, 
       U1E24 ] }; // h H ḥ Ḥ
     key <AC07>	{ [                j,                J,           	 
U01E7,            	  U01E6 ] }; // j J ǧ Ǧ
     key <AC08>	{ [                k,                K,           	 
U1E33,            	  U1E32 ] }; // k K ḳ Ḳ
     key <AC09>	{ [                l,                L,           	 
U0131,             	  U0130 ] }; // l L ı İ
     key <AC10>	{ [                m,                M, NoSymbol, 
       NoSymbol ] }; // m M ỉ Ỉ
     key <AC11>	{ [           ugrave,          percent, NoSymbol, 
       NoSymbol ] }; // ù % č Č qu'il faut apparemment combiner avec le 
point souscrit U010D + U0323 et U010C + U0323
     key <BKSL>	{ [         asterisk,               mu, XF86Launch5, 
          NoSymbol ] }; // * µ ` ̄ il faut apparemment combiner s et S 
majuscules avec le macron below c est à dure U0073 + U0331 et U0053 + U0331

     // Fourth row
     key <LSGT>  { [             less,          greater,        		 
U2E22,      			  U2E23 ] }; // < > ⸢ ⸣
     key <AB01>  { [                w,                W,        		 
U2329,         	      U232A ] }; // w W 〈 〉
     key <AB02>  { [                x,                X,       		 U1E2B, 
  				  U1E2A ] }; // x X ḫ Ḫ
     key <AB03>  { [                c,                C, UA725, 
    	  UA724 ] }; // c C ꜥ Ꜥ
     key <AB04>  { [                v,                V,            	 
U017C,             	  U017B ] }; // v V ż Ż
     key <AB05>  { [                b,                B,            	 
U1E96,              NoSymbol ] }; // b B ẖ il faut combiner U0048 + 
U0331 pour ẖ majuscule qui n'existe effectivement pas
     key <AB06>  { [                n,                N, U1EC9, 
   	  U1EC8 ] }; // n N ỉ Ỉ
     key <AB07>  { [            comma,         question, NoSymbol, 
        NoSymbol ] }; // , ? il faut respectivement combiner U0068 + 
U032D et U0048 + U032D
     key <AB08>  { [        semicolon,           period, U011F, 
   	  U011E ] }; // ; . ğ Ğ
     key <AB09>  { [            colon,            slash,           	 
U010D,            	  U010C ] }; // : / č Č
     key <AB10>  { [           exclam,          section,           	 
U2E17,             	  U00B1 ] }; // ! § ⸗ ±
};

Thanks a lot for your patience,

Best,

Pierre-Luc


Le 14/03/2019 à 15:09, Ilya Anfimov a écrit :
> On Thu, Mar 14, 2019 at 02:04:11PM +0100, Pierre-Luc Angles wrote:
>>
>> Without knowing if this is the good direction, I have tested to change
>> ~/.XCompose by typing first the diacritic and then the "diacriticised"
>> letter, but it does not make differences in LibreOffice and in Firefox. Note
>> that when I type AltGr+& in Firefox, it remains an ampersand whereas in
>> LibreOffice it appears as nothing and does not react.
>   Shouldn't   work:   I   had  tested  it  with  LO  and  assigned
> <i_breve_below> to KP_Multiply, with your ~/.XCompose string, and
> it typed OK and i without a dot and with a breve below.

Mmh... Strange. It seems that we are not too far but I do not see why it 
is not working on my laptop.

> 
>   Well,  it should just work another way: adding breve to previous
> symbol and typing i without a dot.

So I have let in ~/.XCompose:

<i_breve_below> : "i̯"


i.e. I have first written the i and then added the breve inverted below.
> 
> [skipped]
> 
> PS Well... AltGr... or LevelThree... I have never seen a  working
> setup  with that keys so far. Not sure even how it is supposed to
> work (isn't Alt* is invoking menu action in most toolkits?). Per-
> haps, adding your full xkb mapping may somewhat advance our stud-
> ies.
> 
> 
> 


More information about the xorg mailing list