URL: https://linuxfr.org/users/_laurent_/journaux/qu-on-pose Title: Qu’on pose Authors: _Laurent_ Date: 2020年07月14日T11:40:48+02:00 License: CC By-SA Tags: compose et xkb Score: 36 L’utilisation de Ctrl+Maj+u pour produire un caractère Unicode a été abordée [ici](https://linuxfr.org/users/ysabeau/journaux/ces-quelques-modeles-de-cv#comment-1817381). J’ai failli répondre en commentaire, mais je me suis dit que ce qui suit pouvait être d’intérêt assez général pour un journal. Nous utilisons un système de type Unix. Nous disposons donc de moyens plus civilisés pour produire des caractères que de retenir par cœur leur numéro Unicode. Avec le fichier ```.XCompose``` (à créer à la racine du répertoire utilisateur, mais lisez les remarques en fin de journal avant), on peut choisir un moyen mnémotechnique de produire des caractères. Exemple : ``` : "☺" U263A # smiley ``` Soit Compose : ) pour produire un smiley. C’est quand même plus facile que de retenir 263A... ```colon```, désigne en effet les deux points et ```parenright``` la parenthèse fermante. Ces noms symboliques sont définis dans ``` /usr/include/X11/keysymdef.h```, pour peu qu’on ait installé le paquet qui le contient. ```U263A``` est là surtout à titre indicatif puisque la chaîne entre guillemets suffit à définir ce qui est produit. Mais il pourrait la remplacer. ```Multi_key```, désigne la touche Compose. Pour en disposer, il faut l’affecter quelque part sur le clavier. Les réglages clavier des environnements de bureau évolués le proposent (c’est aussi dans les options fournis par Xkb, si on définit le clavier « manuellement » dans ```/etc/X11/xorg.conf.d```), mais on peut à la rigueur définir des règles à partir de n’importe quelle touche morte, pour peu qu’on évite de recouvrir des règles existantes. Exemple en utilisant l’accent circonflexe mort : ``` : "☺" U263A # smiley ``` Mais l’intérêt supplémentaire du fichier ```.XCompose``` est qu’il ne permet pas seulement de produire des caractères, mais éventuellement des chaînes de caractères. Exemple : ``` : "Veuillez agréer, Madame, Monsieur, l’expression de mes sincères salutations," ``` C’est tout de même moins lourd quand on a que trois touches à taper ! Beaucoup de règles de composition sont prédéfinies dans ```/usr/share/X11/locale/en_US.UTF-8/Compose``` (c’est le fichier pour les États-Unis, mais les locales de la plupart des langues à caractères latins l’utilisent aussi) et sont donc utilisables directement, sans avoir à utiliser de fichier ```.XCompose```. Il y en a peut‐être déjà une qui produit le caractère dont vous avez besoin (la règle avec Compose pour le smiley est déjà dedans ! mais aussi les règles de composition basiques, comme ˆ e → ê). Malheureusement, Ctrl+Maj+u n’est disponible qu’avec une méthode de saisie « moderne », et ces dernières ne prennent pas en charge le fichier ```.XCompose```, donc il faut choisir entre les deux. À mon sens, les caractères dont on a besoin couramment doivent être accessibles directement sur la disposition de clavier ou à défaut par composition. Sinon, il faut changer de disposition, l’adapter ou au pire compléter les règles de composition. Et pour ceux dont j’ai rarement besoin, je n’arriverais pas à retenir le numéro Unicode, donc Ctrl+shift+u ne me manque pas vraiment. Cela dit, les règles de composition de base sont reprises partiellement par les méthodes de saisie « modernes ». Donc si le caractère dons vous avez besoin est pris en charge par ```/usr/share/X11/locale/en_US.UTF-8/Compose```, vous pouvez toujours essayer, même si vous utilisez une de ces méthodes de saisie. **Pour que ```.XCompose``` soit pris en charge**, il est nécessaire de choisir la méthode de saisie XIM (ou pas de méthode de saisie) au niveau des réglages clavier de l’environnement graphique (désinstaller ibus et les méthodes de saisies est aussi une solution) et éventuellement d’insister pour certaines applications en mettant par exemple pour celles basées sur GTK dans le fichier ```.xprofile``` (ou équivalent pris en charge par l’environnement graphique) : ``` GTK_IM_MODULE=xim export GTK_IM_MODULE ``` **IMPORTANT** : tout fichier ```.XCompose``` doit commencer par la ligne ```include "%L"``` pour inclure les règles de composition de la locale, sinon on perd même les plus basiques (comme ˆ e → ê), c’est gênant.

AltStyle によって変換されたページ (->オリジナル) /