"composer" sur la console permet de taper deux caractères mais d'en sortir un troisième.
le problème est que les définitions de composition utilisent des octets , à la fois comme deux entrées (c'est-à-dire que vous ne pouvez pas définir la composition en termes de clés tapées mais uniquement en termes de symboles typés) et pour la sortie.
pour le faire fonctionner en UTF-8, qui est multi-octets (1 à 4 octets, au moins), il faudrait de grands changements dans la façon dont l'entrée de la console est gérée, et remplacer le simple tableau de caractères actuellement utilisé par quelque chose de plus complexe. Il semble qu'il n'y ait pas de plans pour le faire (le consensus parmi les développeurs de noyau est que la console devrait rester une console, quelque chose de simple, uniquement utilisée pour le dernier ressort; si vous avez réellement besoin d'unicode, vous aurez probablement aussi besoin de bidi, de mise en forme, etc.) il est préférable d'exécuter un terminal graphique (un xterm plein écran sur X11; mais il existe d'autres possibilités).
Donc, en effet, cela ne fonctionne pas, et ne fonctionnera pas, avec des caractères multi-octets sur la console. MAIS, cela fonctionne toujours si vous limitez les définitions de composition en ASCII ordinaire.
Et j'ai également découvert que cela fonctionne également si la sortie est en iso-8859-1 (qui correspond aux valeurs unicode jusqu'à 0x00ff); pour cela, vous pouvez mettre dans un script de démarrage une ligne:
loadkeys / somepath / somefile
et mettez dans ce fichier les définitions de composition que vous souhaitez (faites attention à enregistrer le fichier dans le codage ISO-8859-1 et utilisez des caractères plus grands que 0x7f en sortie uniquement) la syntaxe d'un tel fichier est très simple, des lignes comme celle-ci:
composer 'somechar' 'somotherchar' à 'outputout désiré'
par exemple:
composer 'a' 'a' à 'å'
composer 'a' 'e' à 'æ'
l'apostrophe doit être échappée.
l'effet des clés diacritiques mortes est également défini dans ce fichier; pour dead_acute + a vous définissez une ligne comme:
composez '\' '' a 'à' á '
dead_grave utilise backtick (`), dead_diaeresis utilise doublequote ("), dead_circumflex utilise circumflex (^) et dead_tilde utilise tilde (~).