Touches mortes et UTF-8 sous Linux
Aujourd’hui, j’aimerais évoqué un problème de saisie au clavier sous Linux.
Sous mon système (Frugalware Linux), le codage de caractère par défaut est ISO8859. Or, pour certaines raisons que je ne détaillerai pas ici, j’ai besoin de travailler en UTF-8. Pour cela, j’exécute, en m’inspirant de la section UTF-8 de la documentation de mon système, les commandes suivantes dans une console :
export LANG=fr_FR.utf8
export LC_ALL=$LANG
export CHARSET=utf-8
Mais voilà, à partir de là, les touches mortes pouvaient poser problème. Dans des applications GTK, il n’y a aucun problème. Mais dans plusieurs autres applications (comme l’application XTerm et les applications Tk), les touches mortes ne fonctionnaient plus. Par exemple, lorsque je tapais sur la touche ^, le caractère « ^ » était directement affiché, au lieu d’être gardé « en tampon » afin de pouvoir l’associer avec une autre lettre.
Je ne peux pas dire exactement quand ce problème est apparu, mais je pense avoir commencé à constater ce problème à partir de la version 1.4 (Nexon) de la distribution Frugalware Linux, sortie en février 2011.
J’ai longtemps cherché une solution à ce problème, jusqu’à ce que je tombe sur cet article de blog.
Sous Frugalware Linux, le fichier problématique est /usr/share/X11/locale/en_US.UTF-8/XI18N_OBJS. Voici les changements que j’ai appliqués :
6,8c6,10
< XOM common/xomLTRTTB _XomGenericOpenOM # XOM_open
< XIM common/xiiimp _SwitchOpenIM # XIM_open
< XIM common/xiiimp _XimpLocalOpenIM # XIM_open
—
> #XOM common/xomLTRTTB _XomGenericOpenOM # XOM_open
> XOM common/xomGeneric _XomGenericOpenOM # XOM_open
> #XIM common/xiiimp _SwitchOpenIM # XIM_open
> #XIM common/xiiimp _XimpLocalOpenIM # XIM_open
> XIM common/ximcp _XimOpenIM
Une explication plus détaillée du problème est explicitée sur ce message de forum. D’après ce que j’ai compris, ce fichier de X.org fait référence à des modules qui ne sont présents que sous le système Sun Solaris.
Suite aux changements, les touches mortes sont devenues fonctionnelles. Je trouve cela un peu aberrant de devoir faire cette manipulation pour avoir un système fonctionnel. Si vous connaissez une autre solution, n’hésitez pas à la partager dans un commentaire.