• Accueil
  • > Archives pour février 2012

Archive pour février 2012

Touches mortes et UTF-8 sous Linux

Dimanche 19 février 2012

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.