Obtenir les caractères français

Le but de ce document est de proposer une solution "clé en main" pour obtenir un clavier français sous Linux. Les modifications à apporter concernent les programmes suivants : 

Contrairement aux HOWTO qui existent sur le sujet, le but n'est pas d'obtenir un document exhaustif mais plutôt de faire quelque chose de simple, compréhensible par tous et facilement reproductible (les HOWTO sont souvent trop techniques).

Pour faire ces modifications

Il faut être root.
Il est indispensable de faire la modification du clavier comme indiquée dans le premier paragraphe du document ci-dessous (chargement de fr-latin1.map).
Les fichiers décrits ci-dessous sont à mettre dans le répertoire /etc/skel/. Par mesure de sécurité, faite une copie de sauvegarde des fichiers contenus dans /etc/skel/ en ajoutant l'extension.orig avant de commencer les modifications.

Note : ce répertoire contient les fichiers placés dans le répertoire home lors de la création d'un nouveau compte. Il s'agit de fichiers par défaut, contenant des alias bien pratiques. A chaque fois est indiqué la modification faite par rapport aux fichiers d'origine. Les modifications ne seront valables que lors de la création d'un nouveau compte.

Mode Console

Obtenir un clavier français.

Il faut tout d'abord s'assurer que le bon clavier est chargé au démarrage.
Attention : il faut choisir fr-latin1 lors de la procédure d'installation.
Sinon modifier la variable KEYTABLE dans /etc/sysconfig/keyboard, en remplaçant :
 
KEYTABLE="/usr/lib/keytables/fr.map"
par
KEYTABLE`="/usr/lib/keytables/fr-latin1.map"
Dans /etc/skel/.bash_profile, ajoutez la ligne :
stty pass8

Dans /etc/skel/.inputrc, vérifiez la présence des lignes ci-dessous, sinon vous devez les rajouter.

set meta-flag on
set convert-meta off
set output-meta on
"[1~": beginning-of-line
"[3~": delete-char
"[4~": end-of-line

Cela permet d'utiliser les touches : home pour aller au début de la ligne, fin à la fin et Suppr pour effacer le caractère sur le curseur.
A ce niveau, on dispose d'un clavier français sur la console. Les caractères avec touche morte (accent circonflexe, tréma...) marchent aussi normalement.

Améliorer la commande 'ls'.

Par défaut, la commande ls ne permet pas de voir les caractères 8 bits (affichage d'un ? A la place).  Pour changer cela, il faut ajouter dans le fichier /etc/skel/.bashrc :
alias ls="ls -N"
Pour afficher la liste des fichiers et des répertoires en couleurs, il faut utiliser en plus l'option -color. Une couleur différente est allouée à chaque type de fichier.

alias ls="ls -N -color"
alias ls="ls -N -color=tty"
Attention : il ne faut pas qu'il y ait de contradiction avec ce qui se trouve dans le fichier /etc/bashrc, sinon, ça ne marcherait pas (ne pas définir deux fois le même alias qui correspond à des choses différentes).

EMACS

La version utilisée est celle pour X11 (version 20.2-4).

Mode console.
Avec les modifications précédentes, home permet d'aller au début du document, fin à la fin et suppr marche comme on s'y attend. Mais les accents ne sont pas affichés (à la place est inscrit le code décimal). Pour changer cela, ajouter dans le fichier /etc/skel/.emacs les lignes d'instructions suivantes (les parenthèses font parties de l'instruction) :
Pour afficher les caractères accentués :
(standard-display-european 1)

Pour taper les caractères accentués :
(set-input-mode nil nil 1)

Sous X
Important : il faut avoir fait auparavant les modifications qui concernent X11 (voir plus loin). Tout fonctionne, sauf la touche suppr (qui équivaut à backspace) mais home et fin marchent. Pour résoudre le problème de la touche suppr, il faut mettre dans /etc/skel/.emacs :

(global-set-key (read-kbd-macro "DEL") Īdelete-char)

Sous Xterm (et nxterm).

Modifier /etc/skel/.Xdefaults

A la fin du fichier, il y a une série de lignes qui sont :

xterm*VT100.Translations: #override\par <KeyPress>Prior : scroll-back(1,page)\par <KeyPress>Next : scroll-forw(1,page)
nxterm*VT100.Translations: #override\par <KeyPress>Prior : scroll-back(1,page)\par <KeyPress>Next : scroll-forw(1,page)

Placez un # devant chaque ligne puis rajoutez à la suite :

*VT100.Translations: #override \par <Key>BackSpace: string(0x7F)\par <Key>Delete: string("33[3~")\par <Key>Home: string("33[1~")\par <Key>End: string(""33[4~")
*ttyModes: erase ^?

A la fin du fichier se trouve donc :
#xterm*VT100.Translations: #override\par # <KeyPress>Prior : scroll-back(1,page)\par # <KeyPress>Next : scroll-forw(1,page)
#nxterm*VT100.Translations: #override\par # <KeyPress>Prior : scroll-back(1,page)\par # <KeyPress>Next : scroll-forw(1,page)
*VT100.Translations: #override \par <Key>BackSpace: string(0x7F)\par <Key>Delete: string("33[3~")\par <Key>Home: string("33[1~")\par <Key>End: string("33[4~")
*ttyModes: erase ^?

On en profitera pour vérifier que juste au-dessus, on trouve la ligne :

*eightBitInput: true

Modifier  /etc/skel/.Xresources
(le créer s'il n'existe pas)  et mettre dedans :

XDvi.paper: a4
Ghostview.pageMedia: A4

Cela n'est pas obligatoire mais est utile pour Ghostview et xdvi.
Modifier  /etc/skel/.xinitrc
(le créer s'il n'existe pas) et mettre dedans :

xmodmap -e "keycode 22 = BackSpace"
xmodmap -e "keycode 107 = Delete"
nxterm -geometry 80x24+131+192 &
exec fvwm95

En fait, seules les deux premières lignes sont nécessaires pour ce qui nous intéresse. La 3ème ligne lance un client xterm, ce qui est toujours pratique et la 4ème lance le gestionnaire de fenêtres ici, fvwm95, avec un look Windows 95. Vous pouvez  adapter la ligne exec fvwm95, en mettant à la place par exemple, exec afterstep si vous utilisez Afterstep.
Cela doit suffire pour une utilisation courante de Linux dans un premier temps.

Conclusion.

Vous pouvez maintenant créer un nouveau compte, afin de bien vérifier que les modifications que vous avez apporté aux différents fichiers sont bien prises en compte par Linux. Vérifiez que les accents marchent, à la fois en mode  console et sous XWindow.
Cette annexe a été réalisée à l'aide d'un texte écrit par Frédéric Bastok

 

 


© Copyright 2000 Diamond Editions/Linux magazine France - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".