Le Francophones-HOWTO : Linux & la langue française: Réglage du clavier sous Linux

Next Previous Contents

## 4. Réglage du clavier sous Linux

## 4.1 Introduction

Il existe deux programmes pour configurer votre clavier : un pour la console : `loadkeys` et un pour XFree : `xkbd`.

Pour installer un clavier français sous Linux, tapez selon votre clavier une des lignes suivantes :

> `

>             loadkeys tables-clavier/fr/fr-latin9.map
>             loadkeys tables-clavier/qc/qc-latin1.map
>             loadkeys tables-clavier/cn/cn-latin1.map
>             loadkeys tables-clavier/be/be-latin9.map
>             loadkeys tables-clavier/sf/sf-latin1.map
>             loadkeys tables-clavier/usx/usx-latin1.map
>             loadkeys tables-clavier/usx/usx-happy-hacking-latin9.map

> `

## 4.2 Attention au stty !

Avec les tables latin 9 recommandées dans ce HOWTO, pour linux-console aussi bien que pour X window, `N'UTILISEZ PLUS` :

> `

>             stty erase ^H

> `

ou :

> `

>             stty erase ^?

> `

« stty erase » ne sert en effet qu'à établir une correspondance entre le code que renvoie une touche et la fonction `erase` pour effacer le caractère.

Les tables ici fournies fonctionnent correctement et ne nécessitent donc pas de `stty erase` qui risquerait surtout de perturber leur bon fonctionnement !

Supprimez-donc ces lignes de vos fichiers d'initialisation de l'interpréteur de commandes « shell », comme .bashrc, .bash_profile ou .tcshrc .

## 4.3 Faire de ces modifications les défauts au démarrage

D'habitude, loadkeys est exécuté par des scripts au démarrage ; par exemple dans `/etc/rc.d/init.d/keytable` ou `/etc/rc.d/rc.local`, `init.d/keytable` ou `rc.keymap`.

La commande :

> `

>             find /etc/rc.d -type f | xargs grep loadkeys

> `

vous fournira le nom exact du fichier lançant loadkeys ; il vous suffit alors de l'éditer pour que vos modifications soient désormais prise en en compte à chaque démarrage.

Les distributions RedHat et Debian constituent des exceptions : la table de clavier par défaut étant définie dans `/etc/sysconfig/keyboard` pour la RedHat et `/etc/kbd/config` pour les Debian.

Remplacer donc dans le fichier propre à votre distribution la table de clavier en question par la bonne table comme fr-latin9.map (selon votre modèle de clavier)

Vous devrez mettre une copie de la table que vous utilisez dans le répertoire où votre distribution va chercher les tables de clavier ; en général /usr/lib/kbd/keymaps/i386/azerty/ pour une RedHat et /usr/share/kbd/keymaps/i386/azerty/ pour une Debian.

Allez donc sur télechargez l'archive, enregistrez-la dans votre répertoire /, puis détarrez-la avec la commande:

> `

>             tar -xzvf francophones-howto.tgz

> `

Cela crée un répertoire /french : placez-vous dans ce répertoire puis tapez :

> `

>             cp tables-clavier/linux-console/fr-latin9.map /usr/lib/kbd/keytables/i386/azerty/

> `

Pour afficher les caractères latin9, vous devrez exécuter les instructions de la section « polices de caractère ».

## 4.4 Polices de caractère

Si vous utilisez console-tools-1998.08.11.tar.gz, vous pourrez remplacer « setfont » par « consolechars » : ces programmes servent à charger une police sous linux console.

> `

>             setfont /usr/lib/kbd/consolefonts/xxxE-NN.psf.gz

> `

Je vous conseille pour des raisons développées plus bas :

> `

>             setfont /usr/lib/kbd/consolefonts/lat9-16u.psf.gz

> `

Je ne vous conseille pas les fichiers « lat1 », qui ne supportent pas l'euro ni les autres caractères français.

Vous trouverez aussi des fichiers « .uni » qui ne sont utiles que pour créer des polices ou pour ceux qui utilisent l'unicode : ils fixent des correspondances entre les « dessins » des caractères dans la police et les codes des dits caractères, un même dessin pouvant correspondre à plusieurs codes dans l'example de d'unicode.

Pour les polices toutes faites, vous pouvez forcer cette correspondace avec l'option « -u fichier.uni ».

Si vous tenez à les installer, copiez de la même manière tous les fichiers commençant par « lat9 » et se terminant par « .uni » dans le répertoire /usr/lib/kbd/consoletrans avec la commande:

> `

>         cp lat9*.uni /usr/lib/kbd/consoletrans

> `

D'habitude, setfont est exécuté par des scripts au démarrage ; par exemple dans `/etc/rc.d/init.d/keytable` ou `/etc/rc.d/rc.local`, `init.d/keytable` ou `rc.keymap`.

La commande :

> `

>             find /etc/rc.d -type f | xargs grep setfont

> `

vous fournira sur le nom exact du fichier lançant setfont ; il vous suffit alors de l'éditer pour que vos modifications soient désormais prise en en compte à chaque démarrage...

Les distributions RedHat et Debian constituent des exceptions : la police par défaut étant définie dans `/etc/sysconfig/i18n` pour la RedHat et `/etc/kbd/config` pour les Debian.

Dans `/etc/sysconfig/i18n` rajouter une ligne de la forme :

> `

>             SYSFONT=xxxE-NN.psf

> `

- xxx représente le type de police ; il doit s'agir d'une lat pour les francophones ce qui signifie ISO 8859 ou latin. Sans cela il n'y a plus de caractères « étendus » comme les voyelles accentués, symboles de ponctuation comme paragraphe...
- E représente l'encodage latin, par exemple 1 pour latin1, 0 ou 9 pour latin9
- NNN représente la taille individuelle de chaque caractère ; 08 est presque illisible mais 16 est un peu gros... À régler selon les goûts de chacun.

Je vous conseille la police lat9-16u.psf ou son équivalent lat0-16.psf installée par défaut sur la plupart des distributions, très souvent compressée donc avec le suffixe « .gz » .

[ rajouter une explication sur comment installer la police ]

La section « une police, des polices » vous donnera plus de détails sur les polices disponibles.

## 4.5 Vieilles versions

Si lors du chargement de la table de clavier vous rencontrez un message d'erreur similaire au suivant :

> `

>             (guylhem@victis:guylhem)$ loadkeys fr-latin9.map
>             Loading /usr/lib/kbd/keytables/fr-latin9.map
>             unknown keysym 'dead_cedilla'
>             /usr/lib/kbd/keytables/fr-latin9.map:67: parse error
>             syntax error in map file
>             key bindings not changed

> `

Cela signifie que votre version de kbd dont le programme loadkeys dépend est trop vieille : il faut vous procurer une version plus récente du programme.

Il existait et existe encore des versions des tables de clavier pour ceux ne voulant ni touches mortes ni accents, mais celles-ci tombent actuellement en désuétude puisque la grande majorité des programmes prennent désormais en charge ces fameuses touches mortes et les caractères accentués.

De plus, les tables fournies avec ce HOWTO permettent de se servir des touches mortes ou de s'en passer si un programme les refuse, les deux cas ayant été prévus :

## 4.6 Améliorations spécifiques au clavier français latin9

Ça y est, vous pouvez taper du texte latin 9 sous Linux en mode console !

Seules 2 touches ont été modifiées :

### a) carré/cube

Elle sert maintenant à oe/OE liés ; en AltGr on y trouve les guillemets français.

Le carré & le cube restent respectivement accessibles en AltGr (ù) et Alt Gr(*), les guillemets étant aussi directement accessibles avec AltGr (w) et AltGr (x), selon la norme ISO 9995 part 3 appliquée à la norme AZERTY française.

En résumé :

- AltGr (oe) : «
- AltGr + Shift (oe) : »
- AltGr (w) : «
- AltGr (x) : »
- AltGr (m) : ¹
- AltGr (ù) : ²
- AltGr (*) : ³

### b) dollar / livre / symbole monétaire international

Étant donné que le symbole monétaire international n'est plus disponible dans la norme d'encodage ISO 8859-15, il a été remplacé par la division centésimale de l'euro : le cent, disponible donc en AltGr ($).

Dans les précédentes versions, le dollar & la livre, des monnaies étrangères, avaient été déplacés pour laisser la place à l'euro et au cent, notre monnaie.

De telles modifications étaient permises par les recommandations officielles de l'EURO WORKSHOP mais allaient à l'encontre de la norme AZERTY : si la position AltGr (e) est déjà occupée sur un clavier, la position de l'euro est laissée au libre choix des programmeurs.

AltGr (e) sert à faire « ê » depuis 1992 sous Linux, mais devant les protestations légitimes d'utilisateurs disposant d'un clavier où l'euro est sérigraphié en AltGr (e), j'ai du déplacer le ê en AltGr + Shift ($).

Désolé d'avoir rompu la « tradition » linuxienne pour conserver la compatibilité à la norme AZERTY & aux recommandations officielles de l'EURO WORKSHOP !

En résumé :

- AltGr (e) : euro
- AltGr ($) : cent
- AltGr + Shift ($) : ê

## 4.7 Pour les autres claviers latin9

L'euro & les cents ont été rajoutés respectivement en AltGr (e) & en AltGr (c).

La touche AltGr a donc été rajoutée ; pour utiliser ces fonctions avec toute table de clavier, il suffit de charger other-latin9.map après votre table nationale.

La plupart des améliorations du clavier français ont été transposées aux claviers nationaux par des auteurs externes.

Toutefois, je ne possède pas chaque modèle de clavier et ne peut expliquer en détail toutes ces modifications ; des sections spécifiques seront donc rajoutées par la suite par d'autres auteurs.

## 4.8 Dans tous les cas

« Home », « End », « Delete » et « BackSpace » ont été corrigées & les touches « Windows » ont été correctement définies, pour passer d'une console virtuelle à l'autre.

Des « Composes », séquences à préfixer par la touche compose ( « ImprÉcran » ou « Print Screen » par défaut) ont été rajoutées, mais cela reste transparent pour l'utilisateur.

Par exemple:

- COMPOSE ^ suivi d'une des lettres (s,S,z,Z) sert à obtenir les lettres finlandaises rajoutées
- COMPOSE " suivi d'une des lettres (y,Y) sert à obtenir les y trémas franco-néerlandais rajoutés
- COMPOSE - suivi d'une des lettres (e,c,l,y) sert à obtenir l'euro, le cent, la livre, le yen

Next Previous Contents