Touche compose
Un article de Haypo.
Retour à l'accueil des codages
La touche compose est une fonctionalité de X11 qui permet de "composer" une touche par une succession de touches normales pour obtenir un caractère "complexe".
Sommaire |
[modifier] Exemples de compositions
[modifier] Compositions de lettres, lettres spéciales
- compose oe donne œ
- compose a e donne æ
- compose A E donne Æ
- compose O E donne Œ
- compose a e donne
- compose / l donne ł(L barré, Wrocław)
- compose ` e donne è(élève)
- Fonctionne pour a (à), i (ì), o (ò), u (ù), y (ỳ), ...
- compose ' o donne ó(Kraków)
- Fonctionne pour a (á), c (ć), e (é), s (ś), ...
- compose o r donne ®
- compose o c donne ©
- compose o c donne
- compose s s donne ß
- compose s o donne §
- compose x x donne ×(multiplication)
Monnaie :
- compose o x donne ¤
- compose Y = donne ¥(yen)
- compose P t donne ₧(peseta)
[modifier] Ponctuation
- compose o o donne °(degré)
- compose < " donne “(guillemet gauche)
- compose > " donne ”(guillemet droit)
- compose " , donne „(guillemet droit inférieur)
- compose < ' donne ‘(apostrophe gauche)
- compose > ' donne ’(apostrophe droit)
- compose < < donne «(guillemet français gauche)
- compose > > donne »(guillemet français droit)
- compose > " donne
- compose - - - donne —(tiret long)
- compose , c donne ç(c cédille)
- compose % o donne ‰(pour mille)
- compose ? ? donne ¿(? à l'envers)
- compose ! ! donne ¡
- compose ! ! donne
- compose + - donne ±
[modifier] Nombres
- compose ( 1 ) donne ①
- Fonctionne pour 1…10 : ①②③④⑤⑥⑦⑧⑨⑩
- Fonctionne pour a…z : ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ
- Fonctionne aussi pour 0 et 11…20 : ⓪et⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳
- Fonctionne pour 1…10 :
- compose 1 4 donne ¼
- compose 1 2 donne ½
- compose 3 4 donne ¾
- compose 1 2 donne
[modifier] Exemples plus élaborés
[modifier] pinyin (transliteration du chinois)
- compose _ " u donne ǖ(joli nan ? :-)) (1er ton des pinyin chinois), _ [lettre] s'applique aussi àāēīōū
- compose ' a (ou compose a ') donne á(2e ton du pinyin chinois) s'applique aussi àéíóúǘ
- compose c u donne ǔetǎěǐǒǔǚ(accent circonflexe renversé, pointu), utilisé pour le 3e ton des pinyin chinois.
- compose ` a (ne marche pas dans toutes les conditions pour moi, pour le 4e ton...
Exemples moins utiles aussi :-)
- compose e e donne ə(e à l'envers)
- compose o w donne ẘ
- compose b u donne ŭ(arc de cercle, arrondi)
- compose _ o donne ō
- compose . E donne Ė
- compose - a donne ã
- compose o a u donne å
- compose ! w donne ẉ
- compose , a donne ą
- compose a _ donne ªmarche aussi avecº
Avec la touche accent circonflexe (^) :
- ^ compose _ o donne º
[modifier] Nom des touches X11
Pour lire le fichier X11, il faut connaitre le nom des touches :
- period : point (.)
- less : signe inférieur (<)
- greater : signe supérieur (>)
- comma : virgule (,)
- quotedbl : guillemet (")
- minus : moins (-)
[modifier] Installer sa touche compose
[modifier] Trouver le code d'une touche
Il existe deux moyens d'installer une touche compose. Sur un clavier Sun ... la touche existe déjà :-) Sinon, utilisez la commande xev pour trouver le code d'une touche que vous n'utilisez pas. J'utilise par exemple la touche "propriété windows", inutilisée ou presque sous Linux. La touche "propriété windows" porte chez moi le nom "menu".
Lancez xev. Tapez alors une suite de "a" pour pouvoir vous répérer par la suite. Tapez ensuite la touche que vous avez choisi. Vous aurez une résultat ressemblant à :
KeyRelease event, serial 29, synthetic NO, window 0xc00001,
root 0x40, subw 0x0, time 464008, (105,8), root:(752,214),
state 0x0, keycode 24 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
KeyPress event, serial 29, synthetic NO, window 0xc00001,
root 0x40, subw 0x0, time 465511, (105,8), root:(752,214),
state 0x0, keycode 117 (keysym 0xff20, Multi_key), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: True
KeyRelease event, serial 29, synthetic NO, window 0xc00001,
root 0x40, subw 0x0, time 465984, (105,8), root:(752,214),
state 0x0, keycode 117 (keysym 0xff20, Multi_key), same_screen YES,
XLookupString gives 0 bytes:
Ceci signifit que la touche "a" a le code 24 sur mon clavier, et que la touche "menu" a le code 117. Notez le code de la touche qui vous intéresse.
Utilisez "xev|grep keycode" pour récupérer facilement le code d'une touche.
[modifier] Modifier son fichier ~/.Xmodmap
Vous pouvez choisir une nouvelle touche de composition via la commande setxkbmap :
setxkbmap -option compose:menu
Ou pour deux touches:
setxkbmap -option compose:menu,compose:rwin
Sinon, pour rendre la modification permanente, il faut utiliser le fichier ~/.Xmodmap. Ajoutez-y une ligne du style :
keycode 115 = Multi_key # Touche Windows gauche chez moi keycode 117 = Multi_key # Touche Menu Windows chez moi
"Multi_key" étant le nom de la touche "compose" sous X11.
[modifier] Créer ses propres combinaisons
On peut définir soit-même ses combinaisons (et bien sûr, c'est là que ça devient intéressant !) dans son fichier ~/.XCompose. Le mieux étant de copier le /usr/lib/X11/locale/en_US.UTF-8/Compose dans ~/.XCompose, puis de modifier ce dernier. Ajoutez par exemple au début :
<Multi_key> <semicolon> <semicolon> <semicolon> : "…" <Multi_key> <minus> <o> : "Θ"
Tapez alors la commande suivante pour le charger (après ça sera automatique) : xmodmap ~/.Xmodmap
Et maintenant :
- compose ; ; ; donne …, j'ai choisi ;;; car .. donne·
- compose - o donne Θ(lettre théta greque)
[modifier] Touche compose et GTK+
Dans Gnome et autres applications GTK+, il faut demander à utiliser la méthode de saisie "xim". Il faut définir pour cela une variable d'environnement nommée "GTK_IM_MODULE" (IM pour Input Method). Vous pouvez par exemple utiliser le fichier ~/.gnomerc suivant :
#!/bin/bash export GTK_IM_MODULE=xim setxkbmap -option compose:menu
J'ai ajouté setxkbmap ici car Gnome n'aimait pas mon fichier ~/.Xmodmap (sûrement car j'ai déjà redéfini d'autres touches via Gnome, touches "+" et "-" pour le son).
Ou mieux, via le fichier ~/.xsession :
GTK_IM_MODULE=xim ; export GTK_IM_MODULE # Pour Gtk (Gnome) QT_IM_MODULE=xim ; export QT_IM_MODULE # Pour Qt (KDE) exec /usr/bin/x-session-manager
[modifier] Voir aussi
- Caractères Unicode
- Article sur l'encodage des caractères avec un outil de réencodage (entre HTML, base64, hexadécimal, etc.)

