Bonsoir à tous
[Edit]
Les informations cherchées, à savoir comment prendre en compte les caractères diacritiques, sont présentées dans la page
man Compose
[/Edit]
Je veux créer un clavier particulier, à savoir un clavier grec polytonique avec un agencement fondé sur "bépo". Le fichier /usr/share/X11/xkb/symbols/gr de définition du clavier grec polytonique disponible dans la distribution Ubuntu est fondé sur la disposition "qwerty" et ne correspond donc pas à mon besoin. Cependant, c'est ce fichier que j'ai entrepris de modifier.
Déplacer une lettre d'une touche vers une autre ne me pose aucune difficulté. Par exemple, pour déplacer le iota de la position du i qwerty vers le i bépo, je remplace dans la ligne
key <AD08> { [ Greek_iota, Greek_IOTA ] };
du fichier /usr/share/X11/xkb/symbols/gr AD08 par AC03 pour donner
key <AC03> { [ Greek_iota, Greek_IOTA ] };
J'ai bien compris que dans ces lignes sont définies les lettres, et leurs variantes en fonction de l'utilisation des touches Maj et AltGr. Dans le cas présent, seuls sont définis le iota minuscule et le iota majuscule. La touche AltGr n'a pas d'effet.
Je n'ai pas trouvé, et c'est la raison de ma présente demande d'aide, comment appliquer les caractères diacritiques. Il doit bien y avoir quelque part un fichier qui indique comment passer du caractère nu au caractère habillé par l'application de tel ou tel caractère diacritique.
J'ai également réalisé que l'on peut désigner les éléments auxquels correspondent les touches du clavier par un code hexadécimal ou par un code Unicode. J'imagine que les codes hexadécimaux ont été introduits pour permettre la définition des signes diacritiques, qui ne doivent probablement pas avoir d'entrée dans les plans Unicode. J'ai trouvé la liste de ces caractères hexadécimaux dans le fichier /usr/include/X11/keysymdef.h.
Je ne sais pas non plus comment on peut composer plusieurs caractères diacritiques appliqués à la même lettre. Il faut savoir qu'en grec polytonique, il peut y avoir jusqu'à 3 caractère diacritiques sur une même lettre. Doit-on passer par un code intermédiaire, que l'on applique ensuite au caractère nu ?
Bien que je puisse probablement faire comme je veux, je suppose qu'il existe une bonne pratique lorsque deux touches mortes correspondant à deux caractères diacritiques incompatibles (esprit rude et esprit doux, accents toniques) sont enfoncées successivement. Que me conseillez-vous de faire dans ce cas là ?
Comme j'envisage d'utiliser pour l'un des caractères diacritiques (le iota souscrit) la touche AltGr au lieu d'une touche morte, j'ai besoin de compléter le fichier /usr/include/X11/keysymdef.h si l'application des caractères diacritiques nécessite l'utilisation de codes hexadécimaux. J'ai constaté l'existence de fonctions qui font passer de l'hexadécimal à l'Unicode, et réciproquement, mais je n'en ai pas mémorisé le nom et je ne sais pas comment invoquer ces fonctions depuis bash.
J'ai consulté les pages de la documentation, sans y trouver d'explications claires, à mes yeux bien sûr. Mais peut-être n'ai-je pas vu les pages qui répondent à mes questions ?
Je remercie d'avance quiconque voudra bien apporter des éléments de réponse à mes questions ou me donner la référence d'autres pages, éventuellement en anglais.
Arbiel