Pour obtenir les caractères français

 

Version du document : 1.0
Date de mise à jour : le 19/09/98

Ce texte vient d'être intégré dans la documentation qui accompagne la version 5.1 de la RedHat française !

Si vous avez des problèmes de téléchargement, essayez par http://www.bugss.org/ftp/pub/perso_fred/

Vous pouvez télécharger le script qui automatise toutes les procédures indiqués ci-dessous.
La version 1.0 corrige un bug du script (faute de frappe en fait !) et ajoute la vérification de l'UID de l'utilisateur.
Voici le contenu du fichier ALIRE, inclu dans l'archive. Lisez-le bien avant de faire les modifications.

ALIRE
Ce document contient quelques explications pour l'execution du script.
N'oubliez que ce script ne fonctionne que pour le shell bash et sur la redhat 5.x
Le script va vous permettre d'avoir le clavier configure comme on peut s'y attendre, c'est a dire que les accents marcheront et les touches Backspace et Suppr donneront le resultat attendu (Suppr supprime le caractere qui se trouve sous le curseur et Backspace (retour arriere) le caractere situe a gauche du curseur).
Les modifications ont ete faites pour les programmes suivant :
- bash sur la console
- xterm (et ses variantes comme nxterm)
- emacs (version 20-4 pour X11)
- less

Pour Netscape, la situation est simple : pour les versions antérieures à la 4.06, il est impossible d'obtenir les touches mortes. Pour la 4.06, cela marche sans modification. A noter que la 4.5 (en beta) ne permet pas la gestion des touches mortes.

Si vous souhaitez integrer d'autres programmes, dites-le moi.
L'execution du programme est tres simple. Vous devez placer l'archive dans le repertoire /root puis la decompacter (commande tar xzvf script-francais-1.0.tar.gz).Vous devez etre super-utilisateur pour vous servir de ce programme. Le decompactage cree un sous-repertoire script-francais dans le répertoire /root, contenant plusieurs fichiers dont script-francais-1.0, qui est l'executable.
Verifiez que le script script-francais-1.0 possede des droits d'execution (sinon, faire un chmod u+x script-francais-1.0) Executez le en faisant sur le prompt (après vous êtes placé dans le repertoire /root/script-francais) :

./script-francais-1.0

C'est tout ! Des messages vous indiquent les étapes en cours. La modification prendra effet lors de la creation d'un nouveau compte. Si vous souhaitez appliquer la modification à un compte existant, il faut ouvrir chacun des fichiers situés dans /etc/skel/ et copiés dans le fichier de l'utilisateur ce qui est compris entre les deux marque #Debut des modification# et #fin des modifications#.
Si vous souhaitez comprendre plus precisement ce qui est fait, je vous engage à lire les documents presents sur le site de Linux-France (http://www.linux-france.com) ou la suite de cette page.

Pourquoi ce texte ?
Le but de ce document est de proposer une solution "clé en main" pour obtenir un clavier français sous Linux.
Il a été testé sur la RedHat 5.0 en version française (distribuée par les Logiciels du Soleil).

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 (car les débutants ne comprennent souvent pas les HOWTO, trop techniques). Il suffit aux débutants de faire les manipulations dans l'ordre.

Je me suis attaché à obtenir les accents sur la console et sous X11. Emacs étant incontournable, j'ai aussi résolu le problème pour ce logiciel (la version utilisée est celle pour X11). Enfin, j'ai aussi tenté de résoudre le problème des touches BackSpace et Suppr, pour qu'elles fonctionnent comme on s'y attend. J'ai placé quelques truc supplémentaires pour d'autres programmes.

Ceux qui souhaitent en savoir plus pourront lire les documents présent sur le site de Linux-France.

 

Que reste-t-il à faire ?

Trois choses principalement (en dehors de la correction des erreurs éventuelles ;-)) :
- ajouter d'autres programmes.
- adapter ce document aux autres distributions. Cela concerne notamment l'emplacement des fichiers.

Je suis à la recherche de bonne volonté pour m'aider. Si vous êtes volontaire, écrivez-moi.

Remerciement à Nat Makarévitch, pour m'avoir guidé dans la lecture des HOWTO.

Frédéric Bastok.

Vous avez la flemme de faire les modifications ?

Dans ce cas, vous pouvez télécharger les fichiers à mettre dans le répertoire /etc/skel/ (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 fichier 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.

Il faut être root pour faire ces modifications.
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).

Pour utiliser ces fichiers, placer l'archive francais.tar.gz dans le répertoire racine. Par mesure de sécurité, renommez vos fichiers contenus dans /etc/skel/ puis déplacez-les (commande mv) dans un autre répertoire. Votre répertoire /etc/skel/ est maintenant vide. Aller dans la racine (cd /) et taper : tar xvzf francais.tar.gz pour extraire les fichiers. Il ne vous reste plus qu'à supprimer le fichier francais.tar.gz (ou à le déplacer). Vérifier dans /etc/skel/ que les fichiers ont été correctements créés.

Ne démarrez pas tout de suite l'interface graphique et ne créez pas de nouveau compte !
Il faut d'abord que vous modifiiez le fichier .xinitrc pour lancer le bon gestionnaire de fenêtre. Pour cela, sur la console, lancer emacs ou vi avec (par exemple) : emacs /etc/skel/.xinitrc puis adapter la ligne exec fvwm95 (en mettant à la place par exemple, exec afterstep si vous utilisez Afterstep). Sauvegarder les changements (Ctrl - x Ctrl - s sur emacs) puis quitter (Ctrl - x Ctrl - c sur emacs).
Vous pouvez alors créer un nouveau compte puis vérifier que les accents marchent, à la fois sur la console et sous X..

Pour les explications, suivez le guide !

Convention : dans la suite, ~/ désignera votre répertoire personnel. Par exemple, si votre nom de login est fred, votre répertoire personnel est /home/fred, que l'on abrège en ~/

I)SUR LA CONSOLE

1) obtenir un clavier français

->Il faut tout d'abord s'assurer que le bon clavier est chargé au démarrage.

Attention : sur la RH5 en fr, le clavier chargé par défaut est fr.map qui ne fonctionne pas (il faut choisir fr-latin1 lors de la procédure d'installation). La modification est à faire dans /etc/sysconfig/keyboard dans la variable KEYTABLE, en remplaçant KEYTABLE = /usr/lib/keytables/fr.map
par KEYTABLE = /usr/lib/keytables/fr-latin1.map

Pour les autres distributions, il faut en général placer loadkeys /usr/lib/keytables/fr-latin1.map dans un des fichiers de démarrage (en général dans /etc/rc.d/)

->Dans ~/.bash_profile mettre :

stty pass8

->Dans ~/.inputrc mettre :

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

ce qui permet d'utiliser 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, ..) marche aussi normalement.

2) Par défaut, ls ne permet pas de voir les carctères 8 bits (affichage d'un ? à la place).

Pour changer cela, il faut placer dans ~/.bashrc :
alias ls='ls -N'
Mettre 'ls -N --color=auto' ou 'ls -N --color=tty' permet d'avoir la vue en couleur (si le package correspondant est installé).

Attention : il ne faut qu'il y ait de contradiction avec ce qui est dans /etc/bashrc, sinon, ça ne marche pas (ne pas définir deux fois le même alias qui correspond à des chose différentes).
Truc : placer
alias ll='ls -al' dans ~/.bashrc
et alias ls ='ls -N --color=tty' dans /etc/bashrc permet d'avoir le ll en couleur (c'est le ls de l'alias qui sert pour le ll).

II) POUR EMACS

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

1) En mode console

-> avec les modifications précédentes, home permet d'aller au début du doc, 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, mettre dans ~/.emacs :

(standard-display-european 1)

Les parenthèses font parti de l'instruction.
Ainsi, on peut lire les accents mais pas les taper !
Mais mettre en plus dans ~/.emacs :

(set-input-mode nil nil 1)

résoud le probleme !

2) Sous X

-> là tout marche (ce texte est ainsi tapé), sauf la touche suppr (qui équivaut à backspace) mais home et fin marche, ce qui est heureux.
Mais il faut avoir fait les modifications qui concernent X11 (voir plus loin).

Pour résoudre le problème de la touche suppr, il faut mettre dans ~/.emacs :

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


3) Conclusion pour emacs :

Placer dans ~/.emacs :

(standard-display-european 1)
(set-input-mode nil nil 1)
(global-set-key (read-kbd-macro "DEL") 'delete-char)

et tout marche nickel !

III) Sous Xterm (et nxterm)

1) Il faut modifier ~/.Xdefaults


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

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


Placer un # devant chaque ligne puis rajouter à la suite :

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

Attention : il faut faire attention aux espaces donc faire un 'copier-coller'.

A la fin du fichier se trouve donc :

#xterm*VT100.Translations: #override\n\
# <KeyPress>Prior : scroll-back(1,page)\n\
# <KeyPress>Next : scroll-forw(1,page)
#nxterm*VT100.Translations: #override\n\
# <KeyPress>Prior : scroll-back(1,page)\n\
# <KeyPress>Next : scroll-forw(1,page)
*VT100.Translations: #override \
<Key>BackSpace: string(0x7F)\n\
<Key>Delete: string("\033[3~")\n\
<Key>Home: string("\033[1~")\n\
<Key>End: string("\033[4~")
*ttyModes: erase ^?

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

2) On va modifier aussi ~/.Xresources

(le créer s'il n'existe pas) :

mettre dedans :

XDvi.paper: a4
Ghostview.pageMedia: A4

Cela n'est pas obligatoire mais est utile pour Ghostview et xdvi.

3)On continue avec ~/.xinitrc

(le créer s'il n'existe pas)

Placer dedans :

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

En fait, seuls 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être (ici, fvwm95, avec un look à la Windows 95 pour ne pas traumatiser ceux qui viennent de Windows ;-)).

 

FIN

 

Cela doit suffire pour une utilisation courante de Linux dans un premier temps (sachant que je vous encourage vivement à vous servir de emacs :-)).

Frédéric Bastok.