07/07/2010

XCompose → Enlarge your keymap

Vous avez désormais un clavier ergonomique et utilisez un layout adapté au français. Et si on ajoutait des caractères plus exotiques à votre clavier ou plutôt votre keymap ? On va donc utiliser une touche méconnue de votre clavier : Compose.

La touche Compose est une touche morte de fonction. Elle ne produit rien en elle-même mais suivies d’autres touches classiques, elle prend effet. Il devient possible d’écrire du grec λ , des flêches ← , des symboles mathématiques ½ , d’écrire en ᵉˣᵖᵒˢᵃⁿᵗ , des symboles (in)utiles ♥ ☭ ☺ ™ … en fait vous pouvez écrire tout les caractères existants d’unicode, vous aurez juste besoin d’une suffisamment bonne mémoire pour vous souvenir des enchaînements de touches. Le plus fort, c’est vous qui définissez ces enchaînements.

Mais où est cette fichue touche ?

Bien qu’une réponse de trois lettres s’impose d’elle même, elle se situe en fait où vous la définissez. Oui oui pour ça aussi vous avez le choix. La touche Windows est souvent déclarée comme telle mais j’ai préféré utiliser la touche Ctrl droite. En définissant la touche Windows, vous rendez inaccessible les raccourcis qui lui sont liés alors qu’avec Ctrl droit il vous reste toujours Ctrl gauche … Enfin vous avez compris, de toute façon vous êtes libres. Pour ce faire tout dépend de votre environnement :

  • Gnome : Dans les options du clavier, rendez-vous sur l’onglet « layout » puis cliquez sur Options. Vous pourrez alors y définir la touche de votre choix.
  • Xorg nature : La manipulation est un peu plus longue mais pas compliquée :
    Premièrement il faut déterminer le keycode de la touche que vous souhaitez utiliser. Pour cela lancez xev. Cet utilitaire vous affichera le keycode des touches que vous pressez. Mémorisez ce keycode. Créez ensuite un fichier

    ~/.xmodmap
    keycode 105 = Multi_key

    105 correspondant à Ctrl droit. Il ne reste plus qu’à lancer la commande

    $ xmodmap ~/.xmodmap

    pour que le changement soit effectif (commande à lancer au lancement de X).

Le dernier obstacle avant de pouvoir utiliser votre Compose personnalisé est la méthode de saisie. Seule la méthode dite xim permet cette petite fantaisie. La plupart des applications permettent de changer ce paramètres en faisant un clic droit dans les zones de texte. Il est également possible de la mettre par défaut grâce à la commande im-switch -c et de choisir xim-default.

Make it big !

Bon la touche est prête à être dégainée. Il faut maintenant définir votre fichier XCompose. Ce fichier est spécifique à chaque utilisateur de votre système et se trouve là → /home/$user/.XCompose . Voilà sa syntaxe :

<$touche1> <$touche2> <$touche3> : "$résutat" $num

Vous pouvez mettre plusieurs touches d’affilées. Le résultat ou le numéro ou les deux doivent être présents. Le résultat est le caractère escompté.

Le numéro est celui défini dans la norme CCS d’unicode.

Par exemple si vous voulez faire une flèche vers la droite en appuyant sur compose puis la flèche droite de votre clavier.

<Multi_key> <Right> : "→" U2192

Et voilà le chemin est tout tracé. Bon parce que je sais que vous êtes flemmards (si si ça se voit, la moitié n’a pas lu jusqu’à la fin et ne regarde que les images), sachez qu’il est possible d’inclure un fichier externe afin de ne pas avoir à recopier le ficher pour chaque utilisateurs ou alors carrément de réutiliser le boulot du paqueteur de votre distrib :

include "/usr/share/X11/locale/en_US.UTF-8/Compose"

Ce fichier compte de très nombreuses lignes pas toujours intéressantes, à survoler vite fait pour voir un paquet de combinaisons déjà existantes.

  1. ckg
    | #1

    Article simple, limpide … du Lord quoi !

    Voici ma petite astuce complémentaire en python pour connaître la valeur unicode d’un caractère que vous avez trouvé quelque part sur le Ternet et que vous souhaitez inclure:

    print hex(ord(u'☭'))

    Par exemple :

    $ python
    >>> print hex(ord(u'☭'))
    0x262d
  2. ckg
    | #2

    Si vous avez des idées à soumettre comme par exemple 🙌, inspirez-vous de la méthode Daniel Stone :

    NLS: Add \o/ Compose sequence → http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=554da76ece85d0fc0cada45a86860e69c2107e9a

  1. Pas encore de trackbacks