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