La touche compose
Un article de Wiki de la communauté Mandriva.
CETTE PAGE EST UNE VERSION RÉVISÉE ET MISE À JOUR DE LA PAGE MAINTENANT OBSOLÈTE DE L'ANCIENNE BASE DE CONNAISSANCES :
http://club.mandriva.com/xwiki/bin/view/KB/XKeyboardCompose (ptyxs 1 février 2008 à 11:00 (CET))
Sommaire |
[modifier] A quoi sert la touche compose
La touche compose permet d'obtenir, par une combinaison de touches que vous pouvez définir vous-même, un caractère qui pour l'instant n'est pas disponible pour vous parce qu'il n'est attaché à aucune touche de votre clavier ou qui l'est dans une position que vous jugez plus difficile à atteindre que ne le serait la nouvelle combinaison de touches.
Bien que cela soit moins connu et sans doute moins utilisé, compose permet aussi d'associer une combinaison de touches à toute une suite de caractères (disons que vous pouvez faire en sorte qu'une certaine combinaison de touches donne : « coucou, c'est moi, je suis bien Dugommier ! »).
La touche compose est particulièrement utile à tous ceux qui sont amenés à taper de temps en temps des mots dans une orthographe non française qui contient des symboles absents de leur clavier. Par exemple, si vous avez à citer parfois des noms de personnalités norvégiennes, pour ne pas estropier ces noms, vous auriez besoin d'un caractère comme 'Å' et de quelques autres.
Il est vrai que dans un logiciel de traitement de texte comme OpenOffice.org, vous pouvez aussi insérer un caractère absent de votre clavier français (il suffit d'ouvrir le menu Insertion, de choisir Caractères spéciaux, puis de rechercher, dans une longue liste, le caractère en question et de cliquer dessus). Cependant, il faut noter que l'usage d'une séquence compose bien conçue est probablement plus rapide que la manœuvre que je viens de décrire, et, d'autre part, qu'elle permet d'accéder au caractère souhaité dans toute sorte d'autres contextes (cela fonctionnera non seulement dans votre traitement de texte, mais aussi par exemple dans l'utilitaire Knotes de KDE, dans votre agenda, dans un éditeur de texte comme Emacs, Kate, KWrite etc. ou même dans une fenêtre de texte de votre navigateur Web et cela peut donc, entre autres, être très utile pour rédiger plus aisément des contributions à ce Wiki !).
Notez que si vous utilisez très souvent les caractères en question, la touche compose, tout de même un peu laborieuse, ne sera pas une très bonne solution, et, en particulier, si vous voulez écrire des textes entiers dans une autre langue, alors il conviendra de paramétrer votre clavier de telle sorte qu'il utilise une disposition conçue pour cette langue (pensez dans ce cas à utiliser l'outil de Mandriva : Centre de Contrôle Mandriva Linux -> Matériel -> Définir la configuration du clavier, qui vous permettra de changer la langue du clavier).
La touche compose est un outil très efficace pour qui a besoin d'étendre les capacités de son clavier. Toutefois, avant de l'utiliser, commencez donc par examiner les capacités de votre clavier tel qu'il fonctionne actuellement. Peut-être vous apercevrez-vous que vous disposez déjà de tout ce qu'il vous faut !
Regardez bien le clavier et essayez toutes les touches successivement et, bien entendu, toutes les combinaisons d'une touche avec la touche MAJUSCULES.
Surtout, attention, on l'oublie souvent, passez en revue tout ce que vous pouvez obtenir avec les combinaisons d'une touche avec la touche Alt Graph (et faites donc pour vous-même un petit tableau du clavier représentant les résultats obtenus) :
- touche + Alt Gr
et même :
- touche + MAJUSCULES + Alt Gr.
Prenez garde au fait que certaines touches ou combinaisons de touches, qui semblent à première vue ne rien produire sont des touches mortes qui combinées à une autre donnent souvent… quelque chose. Par exemple, sur mon clavier, la combinaison de touches Alt Graph + , est une touche morte pour l'accent aigu, pressez les deux touches de cette combinaison simultanément, puis après avoir relâché Alt Gr et la touche de la virgule, tapez un i et vous obtiendrez (peut-être...) un í (un i avec un accent aigu).
A vous d'examiner tranquillement tout cela pour commencer.
[modifier] Y a-t-il une touche compose sur mon clavier ?
Pour savoir si vous disposez d'une touche compose, vous pouvez, sous une interface graphique (KDE, Gnome, IceWM...), avoir recours à la commande xmodmap -pke.
Cette commande affiche la table de correspondance entre les codes numériques des touches (les keycodes) et les symboles qui représentent le caractère qu'elles affichent ou l'action qu'elles déclenchent (les keysyms).
Vous trouverez des explications simples sur la commande xmodmap et sur les notions de keycode et de keysym à la page : Personnaliser le clavier.
En particulier aux sections : Personnaliser le clavier#Introduction : codes numériques et événements et Personnaliser le clavier#La table de correspondance entre codes numériques et événements
Ou encore, dans le cadre de notre exposé sur l'extension xkb, dans : Personnaliser le clavier#A quoi servent les fichiers des répertoires keycodes et symbols ? et Personnaliser le clavier# Les noms symboliques des touches et les keysyms ).
Toutefois, ces lecture ne vous sont PAS indispensable pour poursuivre...
Afin de n'afficher que les informations qui vous intéressent, vous enverrez la sortie de la commande xmodmap -pke (par l'entremise d'un tube représenté par une barre verticale (|)) à un filtre grep qui ne conservera que les lignes contenant le keysym de la touche compose. Mais quel est-il au fait ?
Le keysym de la touche compose est toujours : Multi_key |
Tout ceci vous donne finalement la ligne de commande suivante :
xmodmap -pke | grep 'Multi_key'
- Si vous avez tapé cette commande correctement et que vous n'obtenez rien, vous pouvez être sûr qu'aucune touche compose n'est active sur votre clavier et vous pouvez passer directement à la section suivante.
- Si, au contraire, vous obtenez une ligne analogue à la suivante :
keycode 117 = Multi_key
c'est le signe que vous avez probablement une touche compose installée sur votre clavier. Le code numérique de cette touche vous est aussi fourni (ici : 117).
Si vous avez deux lignes c'est peut-être que vous avez carrément deux touches compose (improbable, en principe, mais possible si quelqu'un a bidouillé votre clavier...). Voir toutefois l'encart en fin de section...
Comment trouver maintenant la touche compose ?
Vous pouvez lancer l'utilitaire xev (pour une brève et simple description des aspects de son utilisation qui nous intéressent ici voir Personnaliser le clavier#Avec l'utilitaire xev). Pressez tour à tour les touches non alphanumériques de votre clavier : il est vraiment très improbable qu'on ait installé compose sur une touche représentant un chiffre, une lettre ou un signe de ponctuation courant.... les touches qui restent représentent un nombre limité d'essais et vous en aurez vite fait le tour.
Quand, après avoir pressé une certaine touche, vous verrez apparaître Multi_key à l'affichage, dans un contexte ressemblant à ceci :
keycode 117 (keysym 0xff67, Multi_key)
ce sera le signe que vous venez de tomber sur la touche compose de votre clavier. Notez que xev vous donne son code numérique, qui dans notre exemple est bien 117.
Attention : Les lignes de sortie de la commande xmodmap -pke | grep 'Multi_key' indiquent simplement que le keysym Multi_key est associé à un certain keycode. Mais il pourra parfois arriver qu'aucune touche de votre clavier ne renvoie ce keycode… Dans ce cas, ne vous acharnez pas… Par exemple, sur ma machine, une des lignes de sortie de la commande xmodmap -pke | grep 'Multi_key' est :
keycode 116 = Multi_key Multi_key ce qui veut dire qu'une touche émettant le code 116 serait une touche compose, seulement voilà, sur mon clavier (mais pas forcément sur le vôtre) aucune touche n'émet le code 116, comme me le montre une utilisation systématique de xev ! Il est bon de savoir qu'une telle situation se rencontre parfois… |
[modifier] Installer une touche compose
[modifier] En modifiant le fichier de configuration de xmodmap
Vous pouvez pour cela créer ou modifier un fichier de configuration ~/.Xmodmap dans votre répertoire personnel (pour une introduction simple aux fichiers .Xmodmap voir Personnaliser le clavier#Rendre les changements permanents pour un utilisateur), je vous conseille de regarder cette section avant (ou après!) avoir lu cette section-ci.
La question est d'abord pour vous de déterminer où vous allez vouloir placer la touche compose. Vous devrez choisir pour cela une touche qui ne vous est pas utile dans son état actuel. On choisit souvent, sur les claviers qui possèdent une touche Windows, la touche Windows la plus à droite. Mais vous pouvez choisir toute autre touche qui vous paraîtrait pour l'instant inutile et aisément accessible.
Une fois ce choix fait, il vous faut trouver quel code numérique (quel keycode) cette touche possède. Pour cela, lancez xev (sur xev, voir Personnaliser le clavier#Avec l'utilitaire xev). Le code numérique se récupère dans une partie de l'affichage provoqué par une pression sur une touche. Cet affichage pourra ressembler à ceci :
keycode 117 (keysym 0xff67, Menu)
dans notre exemple le keycode de la touche est donc 117, et son keysym actuel est Menu.
Si nous voulons que cette touche fonctionne désormais comme une touche compose, il nous suffit d'introduire dans le fichier de configuration ~/.Xmodmap la ligne suivante :
keycode 117 = Multi_key
qui associe la touche dont le code numérique est 117 au keysym de compose : Multi_key.
Vous apprendrez dans Personnaliser le clavier#Rendre les changements permanents pour un utilisateur comment activer le fichier .Xmodmap pour la durée de la session en cours, et comment faire en sorte qu'il soit activé systématiquement au démarrage.
Ceci fait, vous aurez désormais une touche compose sur votre clavier.
[modifier] Avec l'utilitaire Kxkb de KDE
KDE propose un choix limité de touches qu'il est possible de convertir en touches compose.
Ce choix peut être fait en cochant une (ou plusieurs) case(s) correspondant à ces touches au bout du chemin suivant, ouvert en cliquant sur le Menu K (l'étoile jaune de la barre des tâches) :
- Menu K->Applications->Outils->Outils système->Centre de Configuration KDE->Régionalisation et accessibilité->Disposition du clavier->Options XKb->Activer les options de XKb->Compose Key Position.
Le choix offert est limité à six touches. Il est malheureusement impossible de procéder de cette façon, par exemple, si l'on souhaite, disons, affecter la touche compose à la touche Echappement (Echap) etc.
[modifier] Avec l'utilitaire gnome-keyboard-properties de GNOME
GNOME propose un choix limité de touches qu'il est possible de convertir en touches compose.
Lancez l'utilitaire gnome-keyboard-properties en passant par le menu Système->Préférences->Clavier. Sélectionnez ensuite l'onglet Options de l'agencement et enfin cliquez sur la liste Position de la touche compose pour voir les choix qui s'offrent à vous. Cochez alors la (ou les) touche(s) correspondant à utiliser comme touche(s) compose.
[modifier] Avec XKb
On sait que xmodmap est censé être peu à peu remplacé par le système XKb. Ce peut donc être une bonne idée d'utiliser directement XKb pour installer votre nouvelle touche compose. Cette façon de faire vous offrira une plus large gamme de possibilités que l'utilitaire Kxkb de KDE dont il a été question à la section précédente. La marche à suivre détaillée pas à pas est proposée dans Personnaliser le clavier#Créer une touche compose. Toutefois, afin de pouvoir exploiter cette section, il est conseillé de lire pour commencer les premières sections de Personnaliser le clavier#Réaffecter les touches avec XKb.
[modifier] Fonctionnement de la touche compose
Que taper ?
Pour obtenir un caractère avec la touche compose, vous pouvez :
- taper la touche compose puis la relâcher
- taper une première touche (ou combinaison de touches) « normale » puis relâcher la, ou les, touche(s) que vous venez de presser
- taper une deuxième touche (ou combinaison de touches) « normale ».
Vous voyez donc que les séquences compose sont différentes des combinaisons de touches habituelles, comme <Ctrl-Alt-Suppr>, pour lesquelles vous devez impérativement garder les différentes touches enfoncées simultanément pour parvenir à un résultat.
MAIS la touche compose est bonne fille : vous POUVEZ aussi presser la touche compose, la laisser enfoncée, taper l'élément suivant de la séquence compose et, ensuite, vous pouvez même, si vous en avez envie, laisser toutes les touches précédentes enfoncées pendant que vous tapez le dernier élément de la séquence ; presser les touches simultanément n'est donc pas nécessaire mais n'est pas interdit non plus, attention toutefois de ne pas laisser les touches enfoncées trop longtemps dans ce cas : vous pourriez alors déclencher la fonction de répétition de touche, à vous d'avoir un toucher rapide de pianiste, si vous choisissez ce style de frappe…
Par exemple, en général, si vous tapez l'une après l'autre :
- la touche compose,
- la touche a,
- la combinaison de touches Alt Graph+touche '2' (combinaison qui correspond au tilde).
vous obtiendrez un ã.
[modifier] Les séquences compose disponibles par défaut
Par défaut, vous disposez de très nombreuses combinaisons déjà utilisables.
La difficulté est de parvenir à savoir lesquelles...
Sur la Mandriva 2007 et la Mandriva 2008, les séquences compose par défaut sont définies dans le fichier : /usr/share/X11/locale/en_US.UTF-8/Compose.
Une ligne typique de ce fichier ressemble à cela :
<Multi_key> <A> <T> : "@" at
Le premier symbole entre crochets anglés est le keysym de la touche compose : Multi_key, les deux symboles suivants entre crochets anglés sont les keysyms des deux autres touches ou combinaisons de touches à taper (ici A majuscule et T majuscule). Après les deux points, se trouve le caractère que va donner la séquence compose qui précéde sur la même ligne, suivi de son keysym (at).
Dans cet exemple c'est assez simple à comprendre… si vous pressez successivement la touche compose, puis un A majuscule, puis un B majuscule, vous obtiendrez l'arobase.
Toutefois, certains keysyms ont une appellation moins transparente que celui-ci. Vous trouverez, pour vous aider dans de tels cas, des informations sur une partie des keysyms dans cette page Quelques keysyms représentant des caractères affichables.
Pour le reste… expérimentez…
[modifier] Personnalisation des séquences compose
[modifier] Introduction
Les séquences compose disponibles par défaut sont très nombreuses et vous suffiront peut-être. Vous pouvez, cependant, ajouter de nouvelles séquences à votre gré (notez que plusieurs séquences compose différentes produisant le même caractère peuvent parfaitement coexister). Vous pouvez aussi modifier le résultat de séquences compose existantes.
Vous déposerez vos séquences compose personnelles dans un fichier texte .XCompose que vous devrez créer s'il n'existe pas déjà et placer à la racine de votre répertoire personnel.
Pour personnaliser vos séquences compose, vous pourriez être tenté de modifier le contenu du fichier par défaut /usr/share/X11/locale/en_US.UTF-8/Compose. C'est possible, mais ce n'est pas à conseiller. Mieux vaut laisser ce fichier « universel » strictement intact et utiliser un fichier ~/.XCompose, que vous pourrez placer dans les répertoires personnels de tous les utilisateurs de votre machine si vous le souhaitez.
[modifier] Ecrire un fichier .XCompose
Comment écrire de nouvelles séquences compose ?
Comment définir de nouvelles séquences dans le fichier de configuration ~/.XCompose ?
Chaque nouvelle séquence occupera une ligne. La syntaxe de ces lignes ne diffère pas de celle des lignes du fichier par défaut que nous avons appris à décrypter à la section précédente. Si vous avez oublié, retournez donc y jeter un coup d'œil...
Nous avons vu que, dans chaque ligne définissant une séquence, après les deux-points, on peut trouver, le caractère lui-même entre guillemets doubles, (on pourrait aussi avoir son code octal précédé d'une barre oblique mais ce serait bien illisible...), le tout également entre guillemets doubles, puis le keysym du caractère.
MAIS il est aussi possible de n'avoir qu'une seule de ces deux informations. On peut avoir seulement le keysym, ainsi :
<Multi_key> <a> <b> : comma
provoquerait l'émission d'une virgule (comma est le keysym d'une virgule) après une suite compose dont les deux derniers caractères frappés seraient a et b… et
<Multi_key> <a> <c> : d
provoquerait, après une suite compose+a+c, l'émission d'un d (notez que d est le keysym du caractère d...).
D'un autre côté, on peut aussi n'avoir que l'indication du caractère lui-même, entre guillemets, après les deux-points. La ligne suivante afficherait après deux x le caractère de multiplication, représenté par son seul code octal entre guillemets, sans keysym :
<Multi_key> <x> <x> : "\327"
(dans la Mandriva 2008 le fichier par défaut ne contient plus d'indications en octal et je ne les conseillerais pas pour votre fichier .XCompose, dans l'intérêt d'une lisibilité maximale).
Enfin, après les deux-points, on peut aussi placer entre guillemets (mais sans rien après) toute une suite de caractères :
<Multi_key> <a> <b> : "COUCOU"
taper compose+a+b produirait l'émission de COUCOU.
Nota : Lorsque le caractère et le keysym sont tous deux présents et que - par erreur - ils ne se correspondent pas, le résultat dépend de l'application (par exemple : Knotes utilise le code du caractère, tandis que OOo utilise le keysym)… C'est très perturbant…
[modifier] Les commentaires
Dans le fichier .XCompose, vous pourrez aussi ajouter des lignes de commentaires, commençant par un dièse (#). Ces commentaires seront destinés à rappeler telle ou telle information aux utilisateurs qui consulteraient ce fichier, mais ils n'auront aucune influence sur le clavier lui-même. Par exemple, une ligne comme ceci serait possible :
# Fichier .XCompose personnel de Dugommier
Placer un dièse en tête d'une ligne définissant une séquence compose vous permettra aussi de la désactiver temporairement (du moins à partir du prochain redémarrage de l'interface graphique), en la transformant en commentaire.
[modifier] Inclure un fichier préexistant
Attention : la présence d'un fichier .XCompose dans votre répertoire personnel désactive toutes les séquences compose par défaut (sur ces séquences voir section précédente). |
Pour les conserver (ce qui est sans doute préférable), vous pouvez les réactiver en plaçant, au début du fichier .XCompose, une ligne commençant par une instruction include, suivie par le chemin du fichier définissant les séquences par défaut, placé entre guillemets : /usr/share/X11/locale/en_US.UTF-8/Compose. Ce qui pourrait donner ceci :
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
Vous pourrez, si vous le souhaitez, définir des séquences dans un autre (ou plusieurs autres) fichier(s) situé(s) n'importe où dans votre répertoire personnel et le (ou les) inclure de la même façon dans votre .XCompose.
[modifier] Activation du fichier
Votre fichier .XCompose sera automatiquement activé au démarrage de l'interface graphique (au démarrage de KDE, par exemple). Vous n'avez rien de particulier à faire pour cela. Après une modification du fichier, pour le réactiver, redémarrez donc l'interface graphique (par un <Ctr-Alt-Retour Arrière>, mais veillez à sauvegarder avant les données éventuelles de vos diverses applications ouvertes !). Nota: La touche Retour Arrière ou DelBack est celle qui sert à effacer le caractère précédant le curseur (elle est située en haut à droite du clavier, elle porte souvent une flèche vers la gauche).
Exemple.
Compte tenu de tout ce qui précède, un fichier .XCompose pourrait ressembler à cela :
# Fichier .XCompose personnel de Dugommier include "/usr/share/X11/locale/en_US.UTF-8/Compose" <Multi_key> <x> <x> : "Å" Aring
La première ligne est un commentaire, comme l'indique le dièse initial. La seconde ligne est une instruction include qui charge les séquences compose par défaut (nous avons inclus ici le fichier par défaut des Mandriva 2007 et 2008, pour la 2006, le fichier à inclure serait /usr/X11R6/lib/X11/locale/iso8859-15/Compose). La troisième ligne est une séquence compose personnelle, que vous venez de créer. Bien entendu, vous pourrez ajouter de nombreuses autres lignes pour définir encore d'autres séquences compose.
Notez qu'une séquence compose qui suit l'insertion include l'emportera sur une éventuelle séquence identique contenue dans le fichier inclus. Ainsi, dans notre exemple, la séquence contenue dans le fichier /usr/share/X11/locale/en_US.UTF-8/Compose :
<Multi_key> <x> <x> : "×" multiply
qui par elle-même produirait un signe de multiplication (×) est rendue inopérante par la séquence figurant à la troisième ligne de votre fichier .XCompose. Taper deux x après la touche compose donnera donc un Å et non plus un signe de multiplication ×, une fois votre fichier .XCompose activé.
[modifier] Le fichier .XCompose et les applications GTK
Certains logiciels, qui utilisent la bibliothèque de fonctions GTK, ne tiennent pas compte du fichier .XCompose. C'est le cas du navigateur Mozilla Firefox (Opera semble se comporter de la même façon) et du courielleur Mozilla Thunderbird, du logiciel de retouche photo et de graphisme Gimp ou d'applications GNOME. Pour qu'elles le fassent, vous pouvez ajouter dans votre fichier de configuration .bashrc les lignes suivantes :
GTK_IM_MODULE=xim export GTK_IM_MODULE
[modifier] Autres sources d'information
Vous trouverez d'autres méthodes envisageables pour personnaliser la touche compose dans Taper des accents français sur un clavier américain
Voir aussi : Article de Wikipedia sur la touche compose.
Et, bien sûr, cette grosse section du Wiki : Personnaliser le clavier#Réaffecter les touches avec XKb.