Bonjour
J'ai repris le travail sur la réalisation d'un clavier de style "bépo" pour la saisie du grec polytonique et j'ai réalisé que l'accentuation du grec pose quelques difficultés dans la conception des claviers.
L'accent aigu du grec moderne n'est pas vraiment l'équivalent de l'accent aigu de grec ancien. Sauf erreur, l'accent du grec moderne est unique et remplace les trois accents du grec ancien et il ne dépend pas du contexte du mot qu'il accentue, contrairement à l'accent aigu du grec ancien qui peut être remplacé en certaines circonstances par l'accent grave, sans parler de la modification de l'accentuation d'un mot en fonction de sa désinence.
Le consortium Unicode en a pris acte en distinguant "tonos" l'accent (unique) du grec moderne de "oxia" l'accent aigu grec ancien. Dans les documents disponibles en français, ils sont respectivement dénommés "accent" et "accent aigu". Conformément à cette distinction, le consortium a défini des caractères différents pour les voyelles accentuées de l'un ou de l'autre. Les voyelles accentuées de "accent" sont définies dans le bloc "greek-coptic" (de U0370 à U03FF) et celles accentuées de "accent aigu" dans le bloc "greek-extended" (U1F00 à U1FFF), mais leurs glyphes sont identiques deux à deux, comme le montrent les lignes ci-dessous qui présentent les informations relatives au glyphe "ά" tirées des pages Web de l'Unicode (
https://unicode-table.com/fr/blocks/greek-coptic et
https://unicode-table.com/fr/blocks/greek-extended) , et auquelles j'ai ajouté le codage utf-8
:ά:U03AC:ce-ac:alpha:Lettre minuscule grecque Alpha accent:greek-coptic:
:ά:U1F71:e1-bd-b1:alpha:Lettre minuscule grecque alpha accent aigu:greek-extended:
Pour ma part, il semble évident que les points de code du bloc "greek-coptic" doivent être utilisés dans les textes de grec moderne et les points de code du bloc "greek-extended" doivent l'être dans les textes de grec ancien.
Dans ces conditions, un unique clavier ne peut servir à la saisie du grec ancien et du grec moderne, car l'utilisateur devrait alors décider, généralement au hasard car non averti des conséquences de sa décision, dans quel bloc de l'Unicode doit être codé le caractère porteur du seul accent aigu ("tonos" ou "oxia") qu'il saisit. Par contre il sait choisir un clavier en fonction de la tâche qu'il veut réaliser, même s'il ne connaît pas les raisons de l'existence de deux claviers distincts. C'est à ces claviers, correctement programmés et clairement désignés pour la saisie de l'un ou de l'autre des deux grecs, qu'il revient de produire les codes adéquates.
Alors que les pilotes disponibles sous Windows sont conformes à cette approche, les fichiers distribués avec Ubuntu, et probablement avec toutes les distributions incluant X11, ne le sont pas.
Sur le plan technique, ces distributions définissent des symboles pour représenter le résultat de la frappe d'une touche. Par ailleurs, un fichier, le fichier "compose", définit comment doivent être traitées les successions de frappes de touches mortes, symboliquement nommées dead_…, et d'une touche de caractère, c'est-à-dire le caractère qui doit en résulter. Par exemple, "ô" résulte des frappes successives de la touche morte, ou muette, "dead_tilde" (qui correspond à la touche de l'accent circonflexe, et qui ne produit aucun caractère) et de la touche "caractère o". Ces distributions confondent "accent" et "accent aigu" en ne définissant qu'un seul symbole "dead_acute". Le fichier "compose" interprète en "accent" la touche "dead_acute" lorsqu'elle seule précède la frappe d'une voyelle, et en "accent aigu" lorsqu'elle est accompagnée d'autres diacritiques (esprit ou iota souscrit).
Lorsque, dans ce fichier "compose" plusieurs compositions des mêmes éléments se succèdent, la dernière remplace la précédente, de sorte qu'au final, la dernière composition l'emporte sur toutes les précédentes. Comme il est possible de compléter le fichier "compose" par un ou des fichiers spécifiques à chaque utilisateur, on peut imaginer de créer à côté du fichier "compose" actuel, un second fichier qui ferait agir dead_acute en tant que "accent aigu" en toutes circonstances pour les besoins de saisie de grec ancien. Mais cela ne pourrait convenir à un utilisateur désirant saisir aussi bien du grec moderne que du grec ancien car la séquence "dead_acute" "caractère α" ne peut y être interprétée que comme ά (U03AC) ou ά (U1F71), mais pas les deux à la fois.
La résolution de cette difficulté passerait par la définition d'un nouveau symbole afin de distinguer "accent" et "accent aigu", mais l'équipe de développement s'est opposée à ma demande de modification. Les membres de cette équipe considèrent que le consortium Unicode s'est trompé en introduisant dans le bloc "greek-extended" des points de code pour les voyelles accentuées du seul "accent aigu" et qu'ils ne doivent pas être utilisés puisqu'il leur correspond un point de code produisant le même glyphe dans le plan "greek-coptic". Cela me paraît absurde, et peut-être l'ai-je laissé entendre dans les échanges que j'ai eus eux, ce qui n'était pas la meilleure manière d'obtenir gain de cause. À quiconque désireux de reprendre le flambeau, je conseillerais de procéder avec plus de tact.
Les claviers proposées par nos distributions sont ainsi adaptés à la seule saisie du grec moderne, et cela d'autant plus que les compositions définis dans le fichier "compose" ne couvrent pas toutes les possibilités de production d'un caractère portant plusieurs diacritiques comme le montre l'extrait ci-dessous
Gbl_compose="/usr/share/X11/locale/en_US.UTF-8/Compose"
filtre="ῷ"
grep -v -E "Multi_" "${Gbl_compose}" | grep "${filtre}"
<dead_iota> <U1FF6> : "ῷ" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
<dead_iota> <dead_tilde> <Greek_omega> : "ῷ" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
remi@remi-Vostro-3550:~$
Ces lignes ne permettent pas la production de "ῷ" en frappant la touche muette <dead_tilde> (accent circonflexe) ni avant la touche muette <dead_iota> suivi du "ω", ni avant le "ῳ".
Compte tenu de tout ceci, j'ai décidé de distinguer "accent" de "accent aigu" en lui attribuant le symbole <dead_doubleacute> qui, n'ayant aucune signification en grec, ne provoque aucune ambiguïté, et de créer un fichier compose contenant toutes les possibilités de production des voyelles accentuées. Je me suis appuyé sur les informations contenues dans les pages web du consortium Unicode. Je n'ai cependant pas introduit la possibilité de créer une touche morte qui permettrait en une seule frappe de marquer un caractère par plusieurs diacritiques, par exemple l'esprit doux et l'accent aigu, couple de diacritique vraisemblablement assez fréquent du fait des augments, ou même trois diacritiques, en leur adjoignant le iota souscrit. Je ne suis pas certain de l'utilité d'un tel ajout, mais il ne devrait pas être trop difficile de l'introduire.
Quant à la disposition du clavier elle-même, elle résulte d'un choix personnel. J'ai évoqué plus haut que certains utilisateurs peuvent vouloir saisir du grec ancien et du grec moderne. Ils peuvent ainsi préférer disposer de deux claviers dont les agencements seraient très proches l'un de l'autre, plutôt que deux claviers éventuellement plus pratiques pour chaque type de saisie, mais dont les agencements seraient trop différents, de la même manière que les utilisateurs de claviers azerty n'aiment pas les claviers qwerty. Et bien évidemment, chacun peut vouloir positionner à sa guise les caractères n'ayant pas de correspondance unique et évidente avec des caractères latins, les touches mortes, et éventuellement des touches pour la saisie directe de caractères porteurs de caractères diacritiques.
Considérant qu'en grec ancien les caractères les plus fréquents sont incontestablement les caractères diacritiques, je leur ai affecté des touches directes et j'ai défini mon clavier comme indiqué ci-dessous. Je n'y ai inclus que les caractères présents dans les livres que je possède, parmi lesquels les signes numéraux et les consonnes disparues dont l'ancienne présence dans les mots explique certaines exceptions.
Concrètement, la disposition est la suivante :
Quelques explications sur cet agencement :
la présence de l'accent aigu à la position bépo du "é" m'a conduit à regrouper les trois longues sur l'auriculaire de la main gauche,
j'ai attribué à la position bépo du "c" au "κ" beaucoup plus fréquent que notre "k" et la position bépo du "k" à l'augment "ἐ" et "AltGr k" à l'augment accentué de l'aigu "ἔ", du fait de la fréquence des augments et parce que cette disposition permet de conserver toutes les voyelles sur la main gauche
aucune touche n'est attribué à iota souscrit ni au tréma, que l'on obtient par AltGr appliqué aux voyelles
pour la saisie directe du ϐ, j'ai retenu la touche directement au dessus du "b", mais aussi la saisie avec "AltGr b"
pour la saisie directe du ς, j'ai retenu le "q", très accessible, mais aussi la saisie avec "AltGr s"
j'ai éloigné les deux esprits (doux sur "v" et rude sur "w") pour éviter toute confusion que pourraient provoquer certaines polices à la lecture en temps réel sur écran lors de la saisie
j'ai positionné les lettres anciennes "ϳ" (yod), "ϝ" (digamma) et "ə" (schwa) respectivement sur "AltGr j" "AltGr g" et "AltGr z",
et les signes numéraux sur la rangée supérieure : "ϛ" (stigma) et sa majuscule sur "AltGr 6", "ϟ" (Koppa) et sa majuscule sur "AltG 9", "ϡ" (Sampi) et sa majuscule sur "AltGr 0" "͵" (Signe numéral souscrit) sur "AltGr %" et "ʹ" (Signe numéral grec) sur "AltGr+Maj %"
Pour ma part, je n'envisage pas d'apprendre le grec moderne, mais par cohérence avec ce que j'ai écrit précédemment, j'ai réalisé un second clavier pour la saisie du grec moderne dans lequel j'ai supprimé les caractères numéraux (stigma, Koppa, Sampi, … ) les caractères anciens (yod, …) et les caractères anciens (ᾳ, ῃ, …), et ajouter des caractères récents (symboles monétaires principalement).
Cette autre disposition se présente ainsi :
Ces choix me sont propres, et contestables.
Pour permettre à quiconque d'y apporter des modifications, j'ai commencé a écrire quelques fonctions regroupées dans un fichier bash dont l'objectif est de faciliter la mise en œuvre d'un clavier personnel sans avoir à entrer dans les détails du fonctionnement, l'idée étant de passer une commande du style
script_bash clavier polytonique "bépo:\" \" (.) (.) (.)" "bépo:v aigu rude" "bépo:w ω Ω"
en désignant les touches par le caractère produit dans le clavier bépo
ou script_bash clavier polytonique "azer:& \" (.) (.) (.)" "azer:u aigu rude" "azer:$ ω Ω"
en les désignant par le clavier azerty
pour créer un clavier de polytonique dans lequel la touche " du clavier bépo doit créer le caractère " (au lieu de ϐ dans mon clavier), en laissant les autres frappes inchangées, ce que signifie la notation "(.)", la touche v pour la création des esprits, doux et rude, et la touche w pour la création des ω. Le nom à donner au clavier sera passé par une variable d'environnement et sera ajouté à la liste des claviers grecs.
Afin de ne pas modifier les fichiers systèmes, et protéger les fichiers modifiés d'une éventuelle réinstallation, j'ai pris l'habitude d'en faire une copie dans la partition utilisateur et de les y modifier, et de monter par /etc/fstab les fichiers modifiés sur les fichiers systèmes. Outre la création de ces fichiers, le script créera dans cette même partition utilisateur un fichier fstab, qu'il conviendra à l'utilisateur de recopier à la main sur le fichier /etc/fstab, après en avoir vérifier l'exactitude.
Pour créer un clavier personnalisé, il suffira donc d'exécuter le script en portant les modifications sur la ligne de commande, de recopier sur le fichier fstab de la zone utilisateur sur /etc/fstab, de redémarrer et d'utiliser l'outil de sélection de clavier.
Le script est presque terminé. Je ne sais cependant pas comment le publier.
Arbiel