Le French-HOWTO : Linux & la langue fran�aise
 �crit par Guylhem Aznar, guylhem � oeil.qc.ca
 v2.1 ; Juillet 1998

 Copyright (�) 1997, 1998 Guylhem Aznar.  Librement distribuable et
 modifiable selon les termes du LDP
 ______________________________________________________________________

 Table des mati�res

























































 1. Pr�sentation

    1.1 Introduction
    1.2 Les fran�ais ne sont pas les seuls francophones !
    1.3 Attention

 2. Les probl�mes

    2.1 Pr�sentation
    2.2 Solutions
    2.3 Aide

 3. Le vocabulaire : petit lexique

    3.1 8 bits
    3.2 Table de clavier
    3.3 �Home�, �End�, �Page Up� et �Page Down�
    3.4 �Touches mortes�
    3.5 �Backspace� , �Delete�
    3.6 Police de caract�res
    3.7 Unicode, iso-8859, latin
    3.8 UTC, GMT

 4. R�glage du clavier sous Linux

    4.1 Introduction
    4.2 O� trouver ces fichiers
    4.3 Attention au stty !
    4.4 Faire de ces modifications les d�faut au d�marrage
    4.5 Vieilles versions

 5. R�glage du clavier sous XFree

    5.1 Introduction
    5.2 Conseils
    5.3 Est-ce n�cessaire ?
    5.4 �french� ou �fr� ?
    5.5 Table de correspondances
    5.6 Faire de ces modification les d�faut au lancement de X
    5.7 O� trouver ces fichiers
    5.8 Autre m�thodes

 6. R�glage du clavier pour les applications en mode texte

    6.1 Tout d'abord
    6.2 Appeler la police
    6.3 Une police, des polices...
    6.4 Les messages en fran�ais
    6.5 Les variables
    6.6 Les caract�res 8 bits dans les programmes utilisant readline tels bash ou ncftp...
    6.7 zsh
    6.8 tcsh
    6.9 Pour tous les shells
    6.10 L'heure
    6.11 vi
    6.12 Emacs
    6.13 less
    6.14 ls
    6.15 flex
    6.16 elm
    6.17 col
    6.18 rlogin
    6.19 joe
    6.20 TeX et LaTeX
    6.21 Manuel
    6.22 Correcteur orthographique ispell
    6.23 Les claviers 105 touches
    6.24 PGP
    6.25 Impression en mode ascii
    6.26 unicode/latin/cp... je n'ai pas compris ce dernier paragraphe !
    6.27 ncurses
       6.27.1 Introduction
       6.27.2 Les accents
    6.28 Divers

 7. R�glage du clavier pour les applications X

    7.1 Les xterminaux (xterm, nxterm, rxvt...)
    7.2 Les applications Motif
    7.3 Le manuel
    7.4 NumLock
    7.5 XDM

 8. Remerciements

 9. Fichiers inclus dans ce HOWTO



 ______________________________________________________________________

 11..  PPrr��sseennttaattiioonn



 11..11..  IInnttrroodduuccttiioonn


 Ce document a �t� �crit pour aider � configurer un ordinateur dot� du
 syst�me d'exploitation Linux pour des utilisateurs francophones ; il y
 est expliqu� par exemple comment configurer p�riph�riques et
 applications afin de prendre en compte les particularit�s et les
 sp�cificit�s de notre langue...

 Toutefois, ce document ne traite pas de l'installation du syst�me
 d'exploitation Linux ; il est implicitement suppos� que vous avez
 correctement install� une distribution de Linux (RedHat, Debian ou
 Slackware, cette liste n'�tant pas exhaustive) et que vous vous
 appr�tez maintenant � mieux la configurer ; veuillez donc vous r�f�rer
 � d'autres HOWTOs pour l'installation.

 N'�tant pas l'unique auteur de ce document, les personnes m'ayant
 donn�es des conseils � rajouter sont explicitement cit�es.

 Les adresses �lectroniques de ces contribueurs ont �t� volontairement
 modifi�es en rempla�ant les �a enroul�s� par des �� afin d'�viter les
 publipostages tr�s g�nants.


 11..22..  LLeess ffrraann��aaiiss nnee ssoonntt ppaass lleess sseeuullss ffrraannccoopphhoonneess !!


 Pour chaque manipulation d�pendant du pays concern�, quatres versions
 sont donc propos�es : une canadienne fran�aise, une belge wallone, une
 fran�aise et une suisse romande.  Le Grand Duch� du Luxembourg
 utilisant les conventions fran�aises, j'invite les lecteurs
 luxembourgeois � se reporter aux exemples fran�ais !

 Toutefois seuls les fichiers destin�s aux fran�ais (table de clavier
 en mode console, X...) sont inclus, puisque la majorit� des lecteurs
 seront certainement fran�ais et que seuls ces fichiers pr�sentent des
 am�liorations par rapport aux d�fauts.
 Envoyez-moi donc vos fichiers belges, canadiens, luxembourgeois ou
 suisses ; ils seront inclus avec plaisir s'ils se montrent plus utiles
 que ceux propos�s par d�faut !


 11..33..  AAtttteennttiioonn


 Nat Makarevitch nous recommande :

 ROOT : certaines manipulations recommand�es par ce document ne peuvent
 �tre effectu�es que sous un compte privil�gi� (root) ; la plus grande
 prudence est alors de rigueur car toute action inad�quate peut mettre
 en p�ril le contenu des disques.  Sauvegarder les fichiers existants,
 par exemple en les copiant en *.old, avant de les modifier ou
 remplacer.

 CHERCHER : le paquetage GNU nomm� "find" offre un programme appel�
 locate, gr�ce auquel l'utilisateur peut retrouver le nom complet
 (chemin de r�pertoires) d'un fichier dont il ne connait que le nom.

 Certaines distributions Linux fournissent cela en /usr/lib/locate.
 Lancer, en tant que root, /usr/lib/locate/updatedb : cela invoque un
 find / sur les disques mont�s et place les noms de tous les fichiers
 (sous forme hash) dans /usr/lib/locate/find.codes alors que locate
 permet ensuite de localiser l'un d'eux :



      (guylhem@barberouge:guylhem)# locate noms_des_fichiers_�_retrouver





 22..  LLeess pprroobbll��mmeess



 22..11..  PPrr��sseennttaattiioonn


 Le probl�me de tout utilisateur non-am�ricain lors de l'installation
 de Linux est de lui faire comprendre que, justement, il n'est pas
 am�ricain !

 Cela a des cons�quences sur :


 �  les caract�res sp�ciaux que l'on utilise, accentu�s (� � � �) ou
    bien ligatur�s ( � , voire �e dans l'o� qui vient � peine
    d'appara�tre sous Linux en mode console ; j'esp�re bient�t
    pr�senter ici une solution simple pour en disposer sous X aussi !)

 �  la correspondance entre la s�rigraphie des cabochons (touches) sur
    lesquels vous appuyez et les codes que Linux renvoie, celui-ci
    supposant un clavier QWERTY am�ricain par d�faut

 �  le format de page pris en charge par les programmes que vous
    utilisez pour imprimer, diff�rent entre les �tats-Unis (14 x 8,5
    pouces pour du papier dit l�gal) et l'Europe (29,7 x 21 cm pour des
    feuilles a4)

 �  le format des dates et de l'heure


 �  le format de la monnaie

 �  la langue utilis�e pour les messages d'erreur



 22..22..  SSoolluuttiioonnss


 Tout �tant pr�configur� pour un anglophone nord-am�ricain -bien que
 ceux-ci ne repr�sentent pas la majorit� de la population mondiale- ,
 il faut donc se faire reconna�tre comme une �exception� par les
 diff�rents programmes, par des options ou des variables � exporter
 voire dans les pires des cas une modification du code source suivie
 d'une recompilation.

 Heureusement, �l'esprit� de Linux rend le syst�me tr�s ouvert � des
 modifications de toute sorte et comme vous allez le d�couvrir au fil
 de ce document, il est assez simple d'obtenir un r�sultat tr�s
 correct.


 22..33..  AAiiddee


 Pour le moment, le futur de l'internationalisation de Linux porte sur
 la traduction des messages d'erreur, des programmes (comme le KDE),
 des pages de manuel et de la documentation, alors si vous vous sentez
 l'�me d'un traducteur, n'h�sitez pas � contacter l'�quipe de
 traduction des HOWTOs ; pour cel�, adressez-vous � �ric Dumas (dumas �
 freenix.fr ou dumas � linux.eu.org) .


 33..  LLee vvooccaabbuullaaiirree :: ppeettiitt lleexxiiqquuee


 Tout d'abord, un mot sur le vocabulaire employ� :


 33..11..  88 bbiittss


 Des caract�res sont dits �8 bits� s'ils contiennent par exemple des
 accents ou des signes sp�ciaux (comme paragraphe), non inclus dans le
 standard ASCII 7 bits (sans accents ni caract�res sp�ciaux) qui
 correspond aux 127 premiers caract�res des 256.


 33..22..  TTaabbllee ddee ccllaavviieerr


 Une table de clavier est un fichier permettant de faire correspondre
 l'empreinte physique des cabochons (touches) du clavier au r�sultat
 obtenu sur l'�cran de l'ordinateur.


 33..33..  ��HHoommee��,, ��EEnndd��,, ��PPaaggee UUpp�� eett ��PPaaggee DDoowwnn��


 Les touches �Home�, �End�, �Page Up� et �Page Down� (dont les noms
 varient selon les claviers) sont les touches permettant respectivement
 d'aller en d�but/fin de ligne et de monter/descendre d'une page.

 Par exemple, pour que les touches Home et End fonctionnent dans le
 shell bash (voir plus bas), on peut mettre dans un fichier .inputrc
 les lignes suivantes:
            "\e[1~" : beginning-of-line
            "\e[4~" : end-of-line




 D'autre part, on sait que les codes affectes a ces touches sont
 respectivement 102 et 107 pour Home et End en mode terminal.

 Le code est issu du clavier : lorsqu'on presse la touche, il le
 renvoit � la table de clavier qui, lorsqu'elle le re�oit, se dit :
 �tient, c'est la touche End qu'on a press�, donc le renvoie la cha�ne
 associ�e, en l'occurence pour End �\e[4 � �

 Lorsque bash ou un autre programme re�oit cette cha�ne... il ne la
 conna�t pas !  Donc il faut lui dire dans le .inputrc que �\e[4 �
 signifie �aller � la fin de la ligne�.


 33..44..  ��TToouucchheess mmoorrtteess��


 Les touches mortes sont des touches qui ne produisent pas de
 caract�res en elles-m�mes, mais qui modifient la fa�on dont la frappe
 suivante va �tre interpr�t�e (par exemple, le tr�ma ou l'accent
 circonflexe sont en g�n�ral des touches mortes.)

 Une touche morte est une touche qui doit donc �tre suivie d'un espace
 pour obtenir l'accent seul, ou dans le cas o� elle est suivie d'une
 voyelle y positionne un accent, par exemple :



      ^ e donne �




 Les touches mortes sont :

 �  pour les claviers belges et fran�ais, l'accent aigu (en AltGr de 1
    pour les fran�ais et en AltGr de � pour les belges), l'accent grave
    (en AltGr de 7 pour les fran�ais & en AltGr de carr�/cube pour les
    belges), le tr�ma et l'accent circonflexe (tous deux � c�t� du P)

 �  pour les canadiens, les accent graves, circonflexes, les tr�mas et
    la c�dille

 �  pour les suisses, les accent aigus, graves, circonflexes, les
    tr�mas et la tilde


 33..55..  ��BBaacckkssppaaccee�� ,, ��DDeelleettee��



 �  BackSpace Touche plac�e en haut � droite du pav� principal, au
    dessus d' �Entr�e�, au cabochon marqu� d'une fl�che vers la gauche.

 �  Delete Touche du pav� curseur au cabochon marqu� �Suppr� ou �Del�,
    � gauche de �Fin�.  Le pav� num�rique offre une touche au marquage
    identique et � effet identique lorsque �Verr Num� _N_u_m_L_o_c_k _e_s_t
    _d_e_s_a_c_t_i_v_�.

 Ces deux touches correspondent chacune � un de ces codes :

 �  BS Caract�re ASCII 0x08, ou control-h.

 �  DEL Caract�re ASCII 0x7F, ou control-?

 �  ^D Caract�re ASCII 0x04, ou control-d.

 Ceci dans le but d'effacer � gauche du curseur avec Backspace, �
 droite du curseur avec Delete.


 33..66..  PPoolliiccee ddee ccaarraacctt��rreess


 Une police de caract�res est une correspondance entre des codes
 informatiques ou nombres hexad�cimaux et des caract�res
 (alphanum�riques...) affichables par l'ordinateur.

 Cette correspondance se nomme �norme� ou �standard� (comme l'unicode,
 l'iso-8859 latin, le cp ...).

 Par exemple, dans le standard ASCII �tendu par l'iso-8859-1, le nombre
 hexad�cimal �eb� correspond � ��.

 La police de caract�re est la somme des repr�sentations graphiques des
 caract�res d'un standard.


 33..77..  UUnniiccooddee,, iissoo--88885599,, llaattiinn


 L'unicode est l'un de ces standard, destin� � terme � remplacer les
 diff�rentes �volutions de l'ASCII.

 L'ASCII codait ses carat�res sur 7bits, rendant donc impossible
 d'incorporer des caract�res accentu�s � la norme d�ja pr�sente.

 Les normes iso-8859 latin et cp (pour les plus connues) vinrent
 pallier � cette d�ficience en encodant les caract�res sur 8bits.  Mais
 plusieurs de ces normes �taient n�cessaire du fait de l'impossibilit�
 de faire tenir les caract�res de toutes les langues du monde sur
 8bits.  La norme iso-8859-1 latin1, la plus utilis�e, se destine par
 exemple au langues d'europe de l'ouest, du nord, d'am�rique, la norme
 iso-8859-2 latin2 est pr�vue pour l'europe de l'est...

 L'unicode offre l'avantage de proposer les caract�res n�cessaires �
 toutes les langues du monde, mais reste encore peu utilis� ou
 impl�ment�.

 En effet, il est impossible de l'utiliser en pratique sous linux-
 console, la m�moire exig�e de la carte vid�o ne permettant pas de
 stocker tous les caract�res de l'unicode, et sous X la gestion
 actuelle des polices rendrait son utilisation trop inconfortable.

 Attendos un peu que les polices �True Type� se r�pendent sous X, grace
 a des outils comme freetype, xfstt (...).

 Actuellement, la nouvelle norme europ�enne iso-8859-15 latin9 souvent
 abbr�g�e en latin0 est cens�e permettre la transition vers l'unicode
 en apportant � l'ancien iso-8859-1 latin1 les caract�res qu'il
 manquait actuellement.

 Cet HOWTO sera mis � jour sous peu pour vous permettre de transiter
 vers le latin0 en toute s�r�nit�, pour utiliser l'EURO par exemple.



 33..88..  UUTTCC,, GGMMTT


 Nous n'utilise pas les m�mes normes horaires que les ango-am�ricains !

 La France se trouve en zone MET (heure moyenne europ�enne) GMT+1 ; la
 zone �MET DST� correspond � l'heure d'�t� activ�e GMT+2.

 Voici donc une petite explication de la diff�rence entre GMT et UTC
 par Edgar Bonet Orozco :

 GMT est l'heure solaire moyenne de Greenwich. L'heure est compt�e �
 partir de midi et est donc d�cal�e de 12 h  par rapport au temps
 universel. GMT est bas�e sur la rotation de la Terre, ce n'est donc
 pas un temps r�gulier. En effet, la vitesse de rotation de la Terre
 subit des variations faibles mais assez cahotiques, en plus elle
 diminue sur le long terme.

 UTC (temps universel coordonn�) est compt� � partir de minuit
 (toujours par rapport au m�ridien z�ro). Il est bas� sur des �talons
 atomiques, mais des secondes intercalaires sont ajout�es
 occasionnellement pour faire en sorte qu'il ne s'�carte jamais de plus
 de une seconde de l'heure solaire moyenne. Tu auras plus de pr�cisions
 sur la d�termination de UTC dans http://opdaf1.obspm.fr/, et en
 particulier dans http://opdaf1.obspm.fr/www/lexique.html.

 C'est le temps UTC qui sert de r�f�rence aux diff�rentes heures
 l�gales.  L'acronyme �GMT� est employ� 99% du temps pour d�signer UTC,
 mais c'est une erreur (ou un abus de langage).

 Enfin, il existe l'heure astronomique, aussi compt�e sur des �talons
 atomiques mais d�cal�e de 4 minutes par jour de l'heure terrestre car
 se basant sur la position de la terre dans l'espace par rapport aux
 �toiles.


 44..  RR��ggllaaggee dduu ccllaavviieerr ssoouuss LLiinnuuxx



 44..11..  IInnttrroodduuccttiioonn


 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 que vous
 soyez respectivement Fran�ais, Canadien Fran�ais, Belge Wallon ou
 Suisse Romand :



      loadkeys french.map
      loadkeys cf.map
      loadkeys be-latin1.map
      loadkeys sf-latin1.map





 44..22..  OO�� ttrroouuvveerr cceess ffiicchhiieerrss


 french.map est inclu dans ce HOWTO (au chapitre �Fichiers inclus�) et
 tous les autres fichiers se trouvent d'ordinaire dans le r�pertoire
 /usr/lib/kbd/keytables ou dans /usr/share/keytables avec les
 distributions debian.

 Pour l'installer, vous pouvez donc le recopier ou plus simplement le
 t�l�charger par ftp.

 Tapez donc :



      ftp ftp.linux.france.com
      cd pub/
      cd french
      get french.map
      exit
      su root -c "cp french.map /usr/lib/kbd/keytables/"





 44..33..  AAtttteennttiioonn aauu ssttttyy !!


 Avec french.map et french (pour X window : cf. chapitre �R�gler le
 clavier 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 (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 fichier d'initialisation de
 l'interpr�teur de commandes ( �shell� ), comme .bashrc, .bash_profile
 ou .tcshrc .


 44..44..  FFaaiirree ddee cceess mmooddiiffiiccaattiioonnss lleess dd��ffaauutt aauu dd��mmaarrrraaggee


 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 sur 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 constituent une exception : la table de
 clavier par d�faut �tant d�finie dans /etc/sysconfig/keyboard.

 Remplacer donc dans le fichier propre � votre distribution la table de
 clavier en question par french.map.


 44..55..  VViieeiilllleess vveerrssiioonnss


 Si vous rencontrez les messages d'erreur suivants :



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




 Cel� 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.


 55..  RR��ggllaaggee dduu ccllaavviieerr ssoouuss XXFFrreeee



 55..11..  IInnttrroodduuccttiioonn


 �xmodmap� servait � changer les tables de clavier sous XFree, un
 fichier de configuration d'ordinaire nomm�
 /usr/X11/lib/X11/xinit/.Xmodmap �tant pris en charge gr�ce � votre
 .xinitrc (� lire !).

 Pour convertir une table console correcte, on utilisait �mk_modmap�
 (livr� avec l'archive 'kbd' et g�n�ralement install� en
 /usr/lib/kbd/keytables)


 Les utilisateurs d�sirant personnaliser leur table xmodmap employaient
 le programme �xkeycaps�.

 XFree 2.1 et les version ult�rieures reconnaissent la disposition des
 touches du clavier g�r�e par �loadkeys�, cela rendant th�oriquement
 xmodmap inutile.

 Mais la gestion de la touche �COMPOSE� assur�e par XFree 3.1 laissait
 un peu � d�sirer, la table h�rit�e de �loadkeys� ne servant gu�re.

 Il fallait donc continuer � employer xmodmap, l'utilitaire logiciel
 standard permettant d'obliger le serveur X � associer les �v�nements
 souris/clavier � des carac�res.

 Sous XFree version 3.2 et post�rieures, �xkb� rendit xmodmap
 d�finitivement obsolete.

 Mais ne voil�-t-il pas les rumeurs qui voulaient que les prochaines
 versions de XFree (3.3.1) ne supporte plus les touches mortes se sont
 confirm�es !!!

 Dans la distribution X11 du X Consortium (donc XFree86, qui en est
 directement issu), il n'existe plus de m�canisme g�n�ral de gestion
 des touches mortes, ou des solutions approximatives obligeant �
 supprimer (aussi) xkb !

 Quelle histoire compliqu�e !

 De ce fait, elles ne fonctionnents que pour les clients X
 �internationalis�s�, c'est-�-dire qui g�rent eux-m�mes les probl�mes
 li�s aux m�thodes d'entr�e de donn�es des diff�rentes langues
 nationales.

 Ceci est tr�s g�nant lorsqu'on veut pouvoir saisir du texte comportant
 des lettres accentu�es, alors que le client utilis� n'est pas
 internationalis� !

 Thomas Quinot (Thomas.Quinot � cuivre.fdn.fr) vous propose donc sa
 libX11 modifi�e, qui g�re les touches mortes de mani�re transparente
 pour tous les clients.

 Elle permet �galement de traiter les s�quences compos�es inconnues
 comme des paires de caract�res, par example :

 ~ + / = ~/

 Pour l'utiliser :

 �  R�cup�rez libX11-XF3.3.1.tar.gz ;

 �  Extrayez le fichier libX11.so.6.1 ;

 �  Placez-le dans /usr/X11R6/lib/ ;

 �  Ex�cutez ldconfig ;

 �  D�sactivez l'extension XKB en utilisant l'option XkbDisable dans la
    section Keyboard de votre XF86Config.


 55..22..  CCoonnsseeiillss


 Personellement, je vous recommande de ne pas toucher � la libX11 mais
 d'utiliser les alternatives du fichier french en attendant un autre
 changement de la politique du X11 Consortium envers les touches mortes
 ou en rajoutant les options d'internationalisation au code source de
 vos programmes.

 Actuellement, si vous n'avez pas de r�pertoire
 /usr/X11R6/lib/X11/xkb/symbols/ , procurez-vous donc une version plus
 r�cente de X window !


 55..33..  EEsstt--ccee nn��cceessssaaiirree ??


 Sans xkb, XFree se rabattra par d�faut sur votre configuration de
 clavier pour Linux (avec loadkeys).  Toutefois, la translation n'est
 pas parfaite et je vous recommanderais plut�t d'�viter cette option,
 aussi bien que l'ancien gestionnaire de clavier Xmodmap.

 Il se peut aussi que sans aucune commande pour xkb, XFree vous
 consid�re comme utilisateur d'un clavier anglo-am�ricain !

 Il convient donc d'utiliser �fr� ou �french� avec xkb ; toutefois ce
 dernier permet d'utiliser de multiples am�liorations pour disposer du
 plus de confort possible (gage de confort : je l'utilise actuellement
 :-) ).


 55..44..  ��ffrreenncchh�� oouu ��ffrr�� ??


 Je vous conseille de choisir french que je maintient � jour, plus
 r�cent que fr et plus adapt� car maintenu par un francophone :-)

 De plus, il b�n�ficie de nombreuses am�liorations pour pallier au
 d�ficiences de nombreux programmes.

 Par exemple, certains programmes en Motif comme Netscape (tm) ne
 savent pas encore g�rer les touches mortes ... donc impossible de
 taper par exemple des � ou des � sur les claviers belges et fran�ais,
 puisque la touche morte �accent circonflexe� est le seul moyen
 d'obtenir ces caract�res !

 �french� r�pond � ce probl�me en proposant une solution de
 remplacement : AltGr (voyelle) permet d'obtenir la voyelle avec un
 accent grave, AltGr+Shift (voyelle) permet d'obtenir la voyelle avec
 un tr�ma !


 55..55..  TTaabbllee ddee ccoorrrreessppoonnddaanncceess



 �  AltGr (voyelle) : voyelle accent grave

 �  AltGr + Shift (voyelle) : voyelle tr�ma

 �  AltGr (touche au dessous de la voyelle) : voyelle majuscule accent
    grave

 �  AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule
    tr�ma

 �  AltGr + Shift (minuscule accentu�e) : majuscule accentu�e

 Par exemple :



 �  AltGr (e) : �

 �  AltGr + Shift (�) : �

 L'astuce marche aussi pour le c c�dille :


 �  AltGr + Shift (�) : �

 Donc m�me dans les pires conditions (si aucune touche morte ne
 fonctionne), on peut quand m�me acc�der � toutes les voyelles
 accentu�es, majuscules et minuscules !

 Vous y trouverez en plus les guillemets fran�ais (� �), les symboles
 employ�s en physique (�, �, delta, phi ...), des signes de monnaies
 (yen, cent) ou de copyright ((TM), �) ainsi que des lettres d'autres
 langues (�, � ...).

 Tous ces signes s'obtiennent gr�ce � AltGr (lettre), par exemple AltGr
 (b) donne �, AltGr (r) donne (TM), AltGr (y) donne yen...

 Pour ce qui est du choix entre les deux... � vous de voir !

 Un conseil : essayez l'un puis l'autre.


 55..66..  FFaaiirree ddee cceess mmooddiiffiiccaattiioonn lleess dd��ffaauutt aauu llaanncceemmeenntt ddee XX


 Pour XFree, votre fichier XF86Config doit contenir une section
 Keyboard :



      Section "Keyboard"
      Protocol        "Standard"
      AutoRepeat      500 30
      LeftAlt         Meta
      RightAlt        ModeShift               # Important pour Alt-gr, mais dans les
                                              # versions r�centes de XFree,
                                              # AltGr et RightAlt sont synonymes.
      ScrollLock      Compose                 # Pour faire des caract�res sp�ciaux.
                                              # Utiliser sinon une des 3 touches des
                                              # nouveaux claviers 105 touches...

      RightCtl        Control                 # Garder la touche normale


      XkbKeycodes     "xfree86"       #
      XkbTypes        "default"       #
      XkbCompat       "default"       #
      XkbSymbols      "french(pc102)" #
      XkbGeometry     "pc(pc102)"     #  Tout est n�cessaire pour xkb
      XkbModel        "pc102"         #
      XkbLayout       "french"        #
      XkbRules        "xfree86"       #
      # Remplacer �french� par �ca� ou �be� ou �fr_CH�
      EndSection




 Pour cette partie Xkb, certains pr�f�rent :



 XkbKeymap "xfree86(french)"
 XkbKeycodes  "xfree86"
 XkbSymbols   "en_US(pc101)+french"
 XkbGeometry  "pc(pc101)"





 55..77..  OO�� ttrroouuvveerr cceess ffiicchhiieerrss


 french est inclu dans ce HOWTO (au chapitre �Fichiers inclus�) et tous
 les autres fichiers se trouvent d'ordinaire dans le r�pertoire
 /usr/X11R6/lib/X11/xkb/symbols/.

 Pour l'installer, vous pouvez donc le recopier ou plus simplement le
 t�l�charger par ftp.

 Tapez donc :


      ftp ftp.linux.france.com
      cd pub/
      cd french
      get french
      exit
      su root -c "cp french /usr/X11R6/lib/X11/xkb/symbols/"




 Mettre �french� dans /usr/X11R6/lib/X11/xkb/symbols/french et �
 french.map� dans /usr/lib/kbd/keytables/french.map ou
 /usr/share/keytables/french.map.


 55..88..  AAuuttrree mm��tthhooddeess


 Une autre m�thode pour obtenir des carat�res 8 bits :

 Dans /usr/X11R6/lib/X11/locale/iso8859-1/Compose se trouve une table
 de �correspondance� entre deux caract�res et un r�sultat ; les deux
 caract�res sont �m�lang�s� lors de l'appui sur la touche Compose : par
 exemple;


      <Touche COMPOSE> e ^




 a toutes les chances de vous donner �

 Pour utiliser la touche Compose, vous devez l'affecter � une touche !

 Le param�trage pr�conis�, r�gl� dans XF86Config, la fait correspondre
 � la touche �Arr�t D�fil� par la commande :

 ScrollLock   Compose

 dans la section keyboard.

 �ditez sinon votre table de clavier et remplacez par exemple :

              key <TLDE> {    [       twosuperior,    threesuperior   ]       };




 par :


              key <TLDE> {            [       twosuperior,    threesuperior   ],
                                              [       Compose                         ]       };




 Si vous avez par exemple un clavier belge ou fran�ais, d�sormais
 appuyer sur la touche (carr�/cube) vous donnera normalement (carr�) en
 minuscules, (cube) en majuscules et en AltGr la fameuse fonction
 Compose ; vous pouvez bien sur d�cider d'attribuer Compose � une autre
 touche ; je vous recommande toutefois d'utiliser ScrollLock, bien
 moins utilis�e que les autres touches.

 NB : La touche carr�/cube), peu utilis�e, est par d�faut assign�e aux
 guillemets fran�ais carr� et cube restant accessible respectivement en
 AltGr et AltGr + Shift ainsi que par l'accent circonflexe suivi du
 chiffre.

 Pour modifier ce comportement par d�faut, il vous suffit avant
 d'utiliser les fichiers de configuration pour XFree et linux en mode
 console de rep�rer la ligne mise en commentaire au d�but du fichier et
 de supprimer ce commentaire !


 66..  RR��ggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss eenn mmooddee tteexxttee



 66..11..  TToouutt dd''aabboorrdd


 Le huiti�me bit doit survivre � l'entr�e du noyau, assurez-vous-en
 donc avec :

 stty cs8 -istrip -parenb

 Ensuite, il convient de s'assurer que l'application est apte �
 supporter les caract�res 8 bits : par exemple, ispell n'est pas
 compil� pour des caract�res 8 bits par d�faut : il faut le recompiler
 sans l'option :

 -NO8BIT


 66..22..  AAppppeelleerr llaa ppoolliiccee


 Charger une police de caract�res adapt�es :

 setfont /usr/lib/kbd/consolefonts/xxx-NNN


 �  xxx rep�sente le type de police ; il doit s'agir d'une iso01/lat1
    ou iso15/lat0 pour les francophones sinon il n'y a plus de
    caract�res ��tendus� (voyelles accentu�s, symboles de ponctuation
    comme paragraphe... )


 �  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.


 66..33..  UUnnee ppoolliiccee,, ddeess ppoolliicceess......


 De nous jours, une nouvelle norme latin0 (iso-8859-15) vient
 d'appara�tre, destin�e � remplacer l'ensemble des polices europ�ennes
 par une seule.

 Son but est voisin de l'unicode, mais elle � l'avantage d'�tre plus
 l�g�re que celui-ci et d'�tre applicable tout de suite.

 Elle apporte notamment des caract�res qui manquaient beaucoup pour les
 fran�ais et les finlandais :


 �  �e dans l'o� en majuscule et minuscule pour les fran�ais, par
    exemple pour les mots oeuf, coeur, boeuf, oeil ...

 �  �s chapeau invers� en majuscule et minuscule pour les finlandais

 �  �z chapeau invers� en majuscule et minuscule pour les finlandais

 �  �l'EURO� pour tous les pays europ�ens

 Cette nouvelle norme, iso-8859-15 latin9 aussi connue sous le nom
 g�n�rique latin0, reste cependant encore tr�s peu r�pendue par rapport
 � la norme actuelle iso-8859-1 latin1.

 Pour l'utiliser, vous devez t�l�charger les fichiers correspondants
 sur par ftp.

 Tapez donc :


      ftp ftp.linux.france.com
      cd pub/
      cd french
      get latin0.tgz
      exit




 Vous trouverez dans l'archive latin0.tgz :


 �  des polices .psf � mettre dans /usr/lib/kbd/consolefonts/, que l'on
    peut essayer avec setfont

 �  des polices .pcf � mettre dans /usr/X11R6/lib/X11/fonts/misc/, que
    l'on peut utiliser en tapant sous root :



      cd /usr/X11R6/lib/X11/fonts/misc/
      mkfontdir
      xset +fp /usr/X11R6/lib/X11/fonts/misc/





 Puis en choissant dans xfontsel les polices d'�encdng� (encodage) 15 �
 utiliser avec ses diverses applications.

 �  de nouvelles tables de clavier pour linux-console et X supportant
    les nouveaux caract�res latin9

 En attendant, �ric Dubreuil (ericdub � club-internet.fr) nous
 conseille la police lat1u-16.psf, permettant d'avoir tous les
 caract�res accentu�es sans pour autant enlaidir mc, un gestionnaire de
 fichier tr�s populaire mais tr�s sensible � la police utilis�e !

 Une alternative est l'unicode, mais les programmes l'utilisant sont
 encore trop peu nombreux pour qu'elle soit valable.

 Citons quand m�me yuedit et le projet �9� (9term, 9wm...) qui
 utilisent l'unicode sous X, avec plus ou moins de succ�s.

 En revanche, sous linux-console, tout programme peut utiliser
 l'unicode.

 Mais, h�las!, aussi grande que soit la m�moire des cartes vid�os
 actuelles, elle ne peut charger l'int�gralit� des caract�res d'une
 police unicode.

 Il existe donc des �jeux de caract�res� limit�s mais bien utiles pour
 les langues baltiques, asiatiques, est-africaines...

 Essayez par exemple ce fichier unicode-lance pour passer en mode
 unicode:



      #!/bin/sh
      echo -e '\033%8'
      kbd_mode -u
      loadkeys french-unicode.map
      setfont lat1u-16.psf -m null




 et ce fichier latin-retourne pour revenir en mode latin normal:



      #!/bin/sh
      echo -e '\033%@'
      kbd_mode -a
      loadkeys french.map
      setfont lat1u-16.psf -m null





 66..44..  LLeess mmeessssaaggeess eenn ffrraann��aaiiss


 Linux en 'version fran�aise' existe... mais ne semble pas facile �
 obtenir.

 La librairie locale(7) utilis�e par la librairie C se sert de
 variables d'environnement pour d�finir les pr�f�rences linguistiques
 et nationales


 �  LC_COLLATE  �quivalence de caract�res pour les comparaisons.  (ex:
    � peut �tre �quivalent � ae)

 �  LC_CTYPE    caract�res affichables

 �  LC_MONETARY monnaie utilis�e

 �  LC_MESSAGES langue des messages

 �  LC_TIME     format de la date

 �  LC_ALL      valeur par d�faut des variables pr�cedentes

 �  LANG        surpasse les variables pr�c�dentes.

 Les valeurs utilisables pour le fran�ais sont:


 �  fr fran�ais g�n�rique

 �  fr_FR fran�ais de France

 �  fr_BE fran�ais de Belgique

 �  fr_CH fran�ais de Suisse

 �  fr_LU fran�ais du Luxembourg

 �  fr_CA fran�ais du Canada

 Par exemple, si la monnaie vous importe peu, vous pouvez indiquer



         export LANG=fr




 Les donn�es correspondantes aux pr�f�rences se trouvent g�n�ralement
 dans /usr/share/locale. S'ils manquent, vous pouvez r�cuperer leur
 source sur ftp://dkuug.dk/i18n/WG15-collection

 Pour se faire SON linux en fran�ais il faut en pratique disposer des
 sources de la libc et d'un minimum de comp�tences (langage C).

 Voici donc, pour la bonne bouche, quelques renseignements collect�s...

 Laurent Chemla nous pilote : � Si j'ai suivi, il y a deux trucs qui
 font la meme chose, d'ou embrouille, les locales et un truc appel�
 nls.

 Les locales, sous Linux, �a va par d�faut dans /usr/lib/locale, et �a
 contient de quoi pr�ciser entre autres le format des nombres
 (LC_NUMERIC), les retours des fonctions ctype (isalpha etc)
 (LC_CTYPE), le format des sommes d'argent (LC_MONETARY), le format des
 dates (LC_TIME) et encore d'autres d�tails. Sur certains Unix, il y a
 aussi LC_MESSAGES, qui contient les messages de l'OS dans la langue
 choisie par la variable d'environnement LC_MESSAGES. Pas sous Linux.
 Sous Linux, c'est nls qui fait �a, et de fait, nls g�re un fichier qui
 est dans /etc/locale/.  (NDG : De nos jours, ils se trouvent plut�t
 dans /usr/lib/locale) D'o� l'embrouille. Ils auraient mis �a dans
 /usr/lib/nls, comme tout le monde, �a aurait evite la confusion. Mais
 bon.


 Donc, si l'on veut se tenir � jour d'nls, il suffit d'aller dans les
 sources de libc/nls, faire 'make french' et copier libc.dat dans
 /etc/locale/C/libc.dat et toc, tous les messages sont en francais. Y
 compris ceux des programmes qui n'utilisent pas setlocale(): c'est
 perror() qui fait le boulot (du moins je suppose).

 Si l'on veut en plus que les programmes qui utilisent setlocale()
 utilisent nos r�gles fran�aises, l� il faut aller dans les sources de
 libc/locale et dans chacun des sous-r�pertoires jeter un oeil sur le
 fichier exemple, le modifier pour le fran�ais (c'est des tout petits
 fichiers), et faire 'make', avant de copier le r�sultat dans
 /usr/lib/local/fr/ et de faire un 'export LC_ALL=fr'.  �

 Autre astuce pour m�nager les vieux logiciels :

 cd /usr/lib ln -s /usr/share/locale

 Nat Makar�vitch rapelle � juste titre que site FTP du LIP6 offre de
 nombreux documents et fichiers utiles, en particulier :


 �  Les pages de manuel en fran�ais (archive man-fr-*) adapt�es par C.
    Blaess. Il suffit d'extraire le contenu de l'archive dans le
    r�pertoire /usr/man/fr.

 �  Une int�ressante documentation technique : locale.fr (P. D'Cruze,
    adapt�e par �. Dumas)

 Pour en apprendre davantage lire la page de manuel de �locale�
 (biblioth�que de pages de manuel 5 ou 7).


 66..55..  LLeess vvaarriiaabblleess


 Ces variables doivent �tre export�es � chaque login : mettez les donc
 dans .bashrc et .bash_profile, .tcshrc ou /etc/profile :



      # pour tcsh, utiliser setenv au lieu de export, par exemple �setenv LANG fr�

      # Les locales
      LC_CTYPE=ISO-8859-1
      LANGUAGE=fr
      LC_MESSAGES=fr
      LC_ALL=fr
      LANG=fr
      LESSCHARSET=latin1
      export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET

      # Les raccourcis : sans ll ou d, impossible de voir les fichiers comprenant des
      # caract�res 8 bits ...
      alias q="cd .."
      alias ll="ls --color=auto -a -N -l"
      alias d="ls --color=auto -a -N"
      alias indent="indent -kr"
      alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"

      # Au cas o� del/backspace ne fonctionne pas, essayez l'un des deux :
      #stty erase ^?
      #stty erase ^H




 N'oubliez pas : tous les fichiers ici cit�s dont le nom commence par
 �.� doivent se trouver dans votre r�pertoire maison !


 66..66..  LLeess ccaarraacctt��rreess 88 bbiittss ddaannss lleess pprrooggrraammmmeess uuttiilliissaanntt rreeaaddlliinnee
 tteellss bbaasshh oouu nnccffttpp......


 Readline est une librairie de saisie de caract�res avec historique et
 completion ; elle est utilis�e par de nombreux programmes (bash,
 ncftp, gnuplot...).

 Par d�faut, le 8 �me bit sert � coder la touche Meta.

 Elle est utilis�e pour coder certaines commandes mais la touche Escape
 (ou Echap) peut la remplacer.

 Si vous souhaitez voir et saisir des accents avec les applications
 compli�es avec readline, comme bash pour les versions sup�rieures �
 1.13, ajoutez ceci dans votre fichier $INPUTRC (par d�faut ~/.inputrc)
 :



      # Permettre de rentrer & recevoir des caract�res accentu�s
      set meta-flag on
      set convert-meta off
      set input-meta on
      set output-meta on

      # Pas de bip audible mais visible
      # set bell-style visible

      # Pour faire marcher Home, End, Delete, Esc + Delete & Esc + Backspace
      "\e[1~":beginning-of-line
      "\e[3~":delete-char
      "\e[4~":end-of-line
      "\e\C-h": backward-kill-word
      "\e\e[3~": kill-word




 Cel� vous permettra d'effacer des caract�res vers l'avant avec Delete
 et vers l'arri�re avec Backspace, ceci n'�tant pas pr�vu sur les
 tables de clavier par d�faut �mimant� le comportement d'un clavier de
 console VT100 .

 Les deux derni�res options vous permettront d'utiliser Home et End
 pour aller au d�but et � la fin de la ligne en cours d'�dition.

 Pour pouvoir employer une touche il suffit d'obtenir son code et
 l'associer � une fonction gr�ce � ce fichier ; pour obtenir le code
 d'une touche invoquer cat puis appuyer sur la touche : son code
 appara�t.

 Le code physique :



       ^[





 correspond � la s�quence d'�chappement.

 Par exemple, si le code de �Home� est ^[[7  il suffit d'ajouter une
 ligne



      "\e[7~": beginning-of-line




 au .inputrc.

 Plus de documentation est disponible sur la page de manuel de bash,
 section READLINE.

 On peut aussi, gr�ce � la variable d'environnement INPUTRC, utiliser
 un fichier commun � tous les utilisateurs.

 Enfin, je vous recommande d'utiliser ce fichier .bashrc (� placer dans
 votre r�pertoire maison) :












































 # ~/.bashrc : execut� par bash(1) pour les shells lanc�s apr�s le login.

 # Le path
 PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/local/bin"

 # Le prompt
 PS1="(\u@\h:\W)$ "

 # L'utilisateur
 ENV=$HOME/.bashrc
 USERNAME="votre nom"

 # Les locales
 _CTYPE=ISO-8859-1
 LANGUAGE=fr
 LC_MESSAGES=fr
 LC_ALL=fr
 LANG=fr
 LESSCHARSET=latin1
 export LC_CTYPE LANGUAGE LC_MESSAGES LC_ALL LANG LESSCHARSET

 # Les raccourcis
 alias q="cd .."
 alias ll="ls --color=auto -a -N -l"
 alias d="ls --color=auto -a -N"
 alias indent="indent -kr"
 alias elm-box="elm -f ~/Mail/Inbox"
 alias ftp=ncftp
 alias tin=rtin
 alias netscape="export LC_ALL=en_EN ; netscape $* ; LC_ALL=fr_FR"

 # Au cas o� del/backspace ne fonctionne pas, essayez l'un des deux :
 #stty erase
 #stty erase ^H

 # Refuser le talk & le write
 #mesg n

 # Permettre les coredumps
 #ulimit -c nombre_max_de_Ko

 #Fixer le masque de creation de fichiers
 #umask 022




 Le fichier .bash_profile execut� par bash(1) lors les logins, y est
 strictement identique mais peut, si vous le voulez, pr�senter des
 diff�rences pour afficher par exemple une citation en la�ant le
 programme �fortune�.


 66..77..  zzsshh

 Celui-ci se contente d'un stty pass8.


 66..88..  ttccsshh


 Pour tcsh, placer, dans le fichier /etc/csh.login (ou dans les
 fichiers .tcshrc des utilisateurs concern�s) les variables indiqu�es
 plus haut en rempla�ant export par setenv:


      setenv LC_CTYPE=ISO-8859-1
      setenv LANGUAGE=fr
      setenv LC_MESSAGES=fr
      setenv LC_ALL=fr
      setenv LANG=fr
      setenv LESSCHARSET=latin1





 66..99..  PPoouurr ttoouuss lleess sshheellllss


 Remplacer 'iso_8859_1' par 'iso-8859-1' si cela ne fonctionne pas,
 voire french.iso88591.fr_FR (ou fr_BR, fr_CA, fr_CH, fr_LU ...)

 � propos de LANG, Pablo Saratxaga signale qu'il vaut mieux �viter
 fr_FR : �Par ailleurs je conseille un simple "fr" plut�t que fr_FR
 etc.  Certains programmes n'aiment pas trop (ils ne passent pas
 vraiment par la resolution de locales mais lisent LANG
 directemment...)�

 Si nls est install�, les routines correspondantes sont utilis�es,
 sinon tcsh agit en iso_8859_1, quelle que soit les valeurs donn�es �
 LANG et LC_CTYPE : cf. la section NATIVE LANGUAGE SYSTEM de tcsh(1).

 Selon le Danish-HOWTO, utiliser :



      (guylhem@barberouge:tcsh)# setenv LC_CTYPE ISO-8859-1
      (guylhem@barberouge:tcsh)# stty pass8





 66..1100..  LL''hheeuurree


 Rien n'est plus facile que de laisser � Linux le soin de passer de
 l'heure d'�t� � l'heure d'hiver et r�ciproquement...

 a) D'abord, quelle heure est-il :-) ?

 Apr�s avoir regard� sur la pendule la plus proche de vous, tapez :

 clock

 puis

 date

 La premi�re heure est celle du bios, la seconde celle calcul�e par
 Linux � partir de /etc/zoneconfig.

 Pour peu que vous ayez install� timezone, votre machine peut jongler
 ais�ment entre les diff�rents fuseaux horaires... ce que les DOS ou
 Windows ne permettent pas !

 b) L'heure du choix !

 De l�, deux possibilit�es : soit vous d�cidez de laisser l'heure
 syst�me � l'heure locale (peu pratique, except� si vous h�bergez aussi
 sur votre disque dur ces syst�mes d'exploitation peu �volu�, ne
 sachant m�me pas exploiter les fuseaux horaires), soit vous passez �
 l'heure de Greenwich, Linux se chargeant de l'adapter � votre fuseau
 horaire.

 Dans ce cas, les grands voyages � l'�tranger avec un portable tout
 neuf �quip� de Linux se feront en toute simplicit� : le dernier
 pargraphe vous expliquera comment changer de fuseau horaire
 facilement...

 c) Le r�glage

 Pour proc�der, regardez d'abord si l'heure syst�me retourn�e par clock
 est l'heure locale ou l'heure de Greenwich (vous avez bien regard� une
 pendule comme je vous le conseille plus haut, n'est-ce pas ?).

 Si clock vous retourne l'heure locale, il va falloir jongler un peu
 avec les fuseaux horaires, sinon passez directement � l'�tape �r�glage
 du fuseau�.


 �  Pour les fran�ais, belges wallons et suisses romands :

 Vous �tes normalement dans une zone horaire MET (Medium European Time,
 soit GMT+1).

 La zone �MET DST� correspond elle � l'heure d'�t� active (GMT + 2).

 Selon les d�cisions futures de la cour europ�enne, l'heure d'�t�
 (daylight savings) risque d'�tre abandonn�...  ce qui compliquera
 cette explication !


 �  Pour les canadiens fran�ais :

 Vous �tes dans une zone horaire GMT-4 si vous habitez autour de
 Montr�al .

 Pour les autres provinces, consulter un dictionnaire !

 Premi�rement, effacez le fichier /etc/localtime ou
 /usr/lib/zoneinfo/localtime (l'emplacement varie selon les
 distributions ; si vous avez les deux fichiers, effacez /etc/localtime
 : l'autre fichier doit certainement �tre un lien vers /etc/localtime).

 D�s lors, clock et date doivent vous retourner la m�me heure...



 �  Pour les canadiens fran�ais : utilisez GMT+4


 �  Pour les fran�ais, belges wallons et suisses romands :

 Si vous lisez ce document en �t�, le d�calage de l'heure locale par
 rapport � l'heure de Greenwich est de deux heures, on va donc mettre
 temporairement le fuseau en GMT-2, soit vous lisez ce document en
 hiver et il convient de remplacer tous les �2� par des �1� dans les
 exemples suivants...

 GMT-2 ?!!? Alors que le fuseau est GMT+2 ?

 Ceci va vous retourner l'heure de Greenwich dont on a besoin pour
 r�gler le syst�me : tapez :

 ln -sf /usr/lib/zoneinfo/Etc/GMT-2 /etc/zoneconfig

 clock

 date

 L'heure calcul�e correspond donc � l'heure de Greenwich, l'heure
 syst�me � l'heure locale... soit l'inverse de ce que l'on veut.

 Un simple : clock -w

 Va alors mettre l'heure du syst�me en heure de Greenwich, utilisant
 pour cel� l'heure locale invers�e volontairement avec l'heure syst�me.

 d) R�gler le fuseau horaire :

 Tapez alors : ln -sf /usr/lib/zoneinfo/Europe/Votre-ville
 /etc/zoneconfig

 Et voil� ! Le syst�me est � l'heure de Greenwich, la conversion vers
 le fuseau horaire local et l'heure d'�t� se faisant automatiquement.

 Si vous habitez hors Europe, proc�dez de m�me en rempla�ant les �-2�
 par �X�, X repr�sentant l'oppos� de votre d�calage horaire (par
 exemple -4 au Qu�bec, donc X=+4...)

 e) Modifier le fuseau horaire :

 Si vous partez � l'�tranger, il est alors simple de modifier l'heure
 locale de votre portable : par exemple si vous partez pour Moscou :

 ln -sf /usr/lib/zoneinfo/Europe/Moscow /etc/zoneconfig

 Tr�s simple et tr�s utile : plus besoin de se souvenir du d�calage
 horaire (plus ou moins X heures) puisque Linux se charge d�sormais de
 tout !


 66..1111..  vvii


 Normalement, aucune modification n'est n�cessaire � part l'utilisation
 de loadkyes (d�taill�e plus haut).

 Ce fichier .vimrc pourrait toutefois vous �tre utile si vous utilisez
 vim au lieu d'elvis :






















 " Les guillemets anglais �"� signifient �mis en commentaire�

 " �viter un avertissement �version incorrecte� :
 version 4.0

 " Police � utiliser sous X11 :
 "set guifont=-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1

 " Fixer la c�sure automatique de la ligne � N caract�res :
 set tw=79

 " Indentation (pour les programmeurs) :
 " set cindent

 " R�glages souris :
 "set mouse=a

 " Ligne
 set nowrapscan

 " Montrer les correspondances :
 set showmatch

 " Montrer le mode
 set showmode

 " Indentation intelligente (pour les programmeurs) :
 " set uc=0

 " Faire fonctionner backspace :
 set t_kD=^?

 " Doit se trouver apr�s
 map ^H X

 " Faire fonctionner delete  :
 map \e[3~ x

 " Cacher la souris lorsqu'on tape :
 set mousehide

 " Faire voir les correspondances lors de recherches :
 " set hlsearch

 " Colorer � l'int�rieur des commentaires en C :
 let c_comment_strings=1

 " Couleur pour xiterm, rxvt, nxterm, color-xterm :
 if has("terminfo")
     set t_Co=8
     set t_Sf=\e[3%p1%dm
     set t_Sb=\e[4%p1%dm
  else
     set t_Co=8
     set t_Sf=\e[3%dm
     set t_Sb=\e[4%dm
 endif

 " Coloration syntaxique :
 if ett_Co > 1
    syntax on
 endif

 " Autoriser l'�dition de fichiers gzipp�s

 augroup gzip
   " Supprimer toutes les autocommandes
   au!
   autocmd BufReadPre,FileReadPre        *.gz set bin
   autocmd BufReadPost,FileReadPost      *.gz '[,']!gunzip
   autocmd BufReadPost,FileReadPost      *.gz set nobin
   autocmd BufReadPost,FileReadPost      *.gz execute ":doautocmd BufReadPost " .  expand("%:r")

   autocmd BufWritePost,FileWritePost    *.gz !mv <afile> <afile>:r
   autocmd BufWritePost,FileWritePost    *.gz !gzip <afile>:r

   autocmd FileAppendPre                 *.gz !gunzip <afile>
   autocmd FileAppendPre                 *.gz !mv <afile>:r <afile>
   autocmd FileAppendPost                *.gz !mv <afile> <afile>:r
   autocmd FileAppendPost                *.gz !gzip <afile>:r
 augroup END





 66..1122..  EEmmaaccss


 Voici un fichier de configuration de base pour employer les accents.
 XEmacs les accepte lui par d�faut sans broncher :-)









































   ;;
   ;; Fichier .emacs: initialisation d'emacs
   ;; Tir� du Guide du Rootard
   ;;

   (display-time)                     ;; Pour avoir l'heure dans la barre d'�tat
   (setq display-time-24hr-format t)  ;; Format 24 heures

   ;; Nouveaux modes
   (autoload 'c++-mode   "cplus-md" "C++ Editing Mode" t)
   (autoload 'perl-mode   "perl-mode" "Perl Editing Mode" t)
   (autoload 'c-mode "c-mode" "C Editing Mode" t)
   ; mieux vaudrait utiliser le "cc-mode"

   (autoload 'jargon-mode "jargon" "Jargon Mode" t)

   ;; Auto-Mode Settings : positionne le mode selon l'extension
   (setq auto-mode-alist
   (append '(("\.c$"  . c-mode)    ;; utilise le mode C++ m�me pour C
   ("\.h$"  . c-mode)
   ("\.C$"  . c++-mode)
   ("\.H$"  . c++-mode)
   ("\.cc$" . c++-mode)
   ("\.C$"  . c++-mode)
   ("\.pl$" . perl-mode)           ;; Perl
   ("/tmp/snd\.[0-9]*" . text-mode);; Text (pour le mail)
   ("[Rr][Ee][0-9]*" . text-mode)
   ("\.ada$"  . ada-mode)          ;; Ada
   ("\.spec$"  . ada-mode)
   ("\.body$"  . ada-mode)
   ("makefile$" . makefile-mode)  ;; Makefile
   ("Makefile$" . makefile-mode)
   ("Imakefile$" . makefile-mode))
   auto-mode-alist))

   ; Remapes varies a mettre ici
   (global-set-key "\eg" 'goto-line)       ;; ESC G = Aller � une ligne

   (put 'eval-expression 'disabled nil)

   ;; Accents...
   (standard-display-european 1)
   (load-library "iso-syntax")
   (set-input-mode (car (current-input-mode))
                 (nth 1 (current-input-mode))
                 0)

   ;; Sous X-Window, texte en couleurs (C/C++/Shell/Makefile,etc)
   (cond (window-system
   (setq hilit-mode-enable-list  '(not text-mode)
   hilit-background-mode   'light
   hilit-inhibit-hooks     nil
   hilit-inhibit-rebinding nil)
   (require 'hilit19)
   ))
   (if (not (equal window-system ""))
   (global-set-key "\C-?" 'delete-char))
   ))




 Le Keyboard-HOWTO conseille quand � lui :



           (standard-display-european t)
           (set-input-mode nil nil 1)
           (require 'iso-syntax)
           (load-library "iso-insert.el")
           (define-key global-map [?\C-.] 8859-1-map)




 Nat Makar�vitch sugg�re d'utiliser une version au moins �gale � 19.27,
 modifier le fichier global (commun � tous les utilisateurs)
 /usr/lib/emacs/site-lisp/site-start.el ou le ./emacs de chaque
 utilisateur concern� pour y ajouter :



              (standard-display-european t)
              (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)
              (global-set-key [delete]   'delete-char)
              (global-set-key [home]     'beginning-of-line)
              (global-set-key [end]      'end-of-line)
              (global-set-key [prior]    'scroll-down)
              (global-set-key [next]     'scroll-up)
              (global-set-key [C-right]  'forward-word)
              (global-set-key [C-left]   'backward-word)
              (global-set-key [C-prior]  'beginning-of-buffer)
              (global-set-key [C-next]   'end-of-buffer)
              (global-set-key "\033[A"  'previous-line)
              (global-set-key "\033[B"  'next-line)
              (global-set-key "\033[C"  'forward-char)
              (global-set-key "\033[D"  'backward-char)
              (global-set-key "\033[H"  'beginning-of-line)
              (global-set-key "\033[Y"  'end-of-line)
              (global-set-key "\033[1~" 'beginning-of-line)
              (global-set-key "\033[2~" 'overwrite-mode)
              ;; le delete-char peut correspondre � \004 ou � \033[3~
              (global-set-key "\033[3~" 'delete-char)
              (global-set-key "\033[4~" 'end-of-line)
              (global-set-key "\033[5~" 'scroll-down)
              (global-set-key "\033[6~" 'scroll-up)




 Pour les autres versions :


 �  19.19 :



              (standard-display-european 1)
              (set-input-mode (car (current-input-mode))
                (nth 1 (current-input-mode))
                0)





 Lire � ce propos le fichier emacs.info.

 �  19.22 :

              (load-library "iso-transl")
              (standard-display-european t)





 �  Autres :



              (standard-display-european 1)
              (load-library "iso-transl")




 Le mode ispell d'emacs a un certain nombre de dictionaires pr�d�finis
 qui ne sont pas forcement ceux qui sont en place sur le syst�me.

 Si vous constatez des probl�mes, vous devez red�finir la liste ispell-
 dictionary-alist des dictionnaires.

 Cette liste contient :

 �  le nom du dictionnaire

 �  la liste des caract�res composant un mot

 �  la lise oppos�e des caract�res ne composant pas un mot

 �  les caract�res de liaison � l'interieur des mots ("-", "'"...)

 �  vrai ou faux si ces caract�res peuvent �tre pr�sents en plusieurs
    exemplaire dans le mot

 �  une liste d'arguments pour ispell

 �  le mode d'ispell (tex, nroff..)

 Par exemple, dans le fichier .emacs :



      (setq ispell-dictionary-alist
       '((nil  ; francais.aff
        "[A-Za-z���-����������-����]" "[^A-Za-z���-����������-����]"
        "[---']" nil ("-n") "~nroff")
       ("english"  ; rosbif
        "[A-Za-z]" "[^A-Za-z]" "[---']" nil ("-B") nil)
       ("american" ; yankee
        "[A-Za-z]" "[^A-Za-z]" "[---']" nil nil nil)
       ("francais" ; fran�ais
        "[A-Za-z���-����������-����]" "[^A-Za-z���-����������-����]"
        "[---']" nil ("-n") "~nroff")
       ("francais-TeX" ; fran�ais
        "[A-Za-z���-����������-����\\]" "[^A-Za-z���-����������-����\\]"
        "[---'^`\"]" t nil "~tex")
       ("espanol" ; espa~nol.aff
        "[A-Za-z�����������]" "[^A-Za-z�����������]"
        "[---'^`\"]" t nil "~nroff")
       ("dansk" ; danois et norv�gien
        "[A-Za-z���������]" "[^A-Za-z���������]"
        "[---'^`\"]" t nil "~nroff")
       ))

 Le dictionnaire "francais-TeX" est un lien symbolique sur "francais"
 qui permet d'ajouter une entr�e pour les accents � la TeX (ex: \'e).

 Si vous utilisez X11, vous voudrez peut-�tre reconstruire les menus et
 il vous faudra recharger une partie de lisp/loaddefs.el dans votre
 .emacs :



      (setq ispell-menu-map nil)

        (if ispell-menu-map-needed
        (let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
          name)
          ;; Can put in defvar when external defines are removed.
          (setq ispell-menu-map (make-sparse-keymap "Spell"))
          (while dicts
        (setq name (car (car dicts))
          dicts (cdr dicts))
        (if (stringp name)
        (define-key ispell-menu-map (vector (intern name))
          (cons (concat "Select " (capitalize name))
        (list 'lambda () '(interactive)
          (list 'ispell-change-dictionary name))))))))

        (if ispell-menu-map-needed
        (progn
          ;; Define commands in opposite order you want them to appear in menu.
          (define-key ispell-menu-map [ispell-change-dictionary]
        '("Change Dictionary" . ispell-change-dictionary))
          (define-key ispell-menu-map [ispell-kill-ispell]
        '("Kill Process" . ispell-kill-ispell))
          (define-key ispell-menu-map [ispell-pdict-save]
        '("Save Dictionary" . (lambda () (interactive) (ispell-pdict-save t))))
          (define-key ispell-menu-map [ispell-complete-word]
        '("Complete Word" . ispell-complete-word))
          (define-key ispell-menu-map [ispell-complete-word-interior-frag]
        '("Complete Word Frag" . ispell-complete-word-interior-frag))
          (define-key ispell-menu-map [ispell-continue]
        '("Continue Check" . ispell-continue))
          (define-key ispell-menu-map [ispell-region]
        '("Check Region" . ispell-region))
          (define-key ispell-menu-map [ispell-word]
        '("Check Word" . ispell-word))
          (define-key ispell-menu-map [ispell-buffer]
        '("Check Buffer" . ispell-buffer))
          (define-key ispell-menu-map [ispell-message]
        '("Check Message" . ispell-message))
          (define-key ispell-menu-map [ispell-help]
        '("Help" . (lambda () (interactive) (describe-function 'ispell-help))))
          (put 'ispell-region 'menu-enable 'mark-active)))

        (fset 'ispell-menu-map (symbol-value 'ispell-menu-map))





 66..1133..  lleessss


 /etc/profile ou les fichiers de d�marrage du shell (comme .bashrc et
 .bash_profile dans votre r�pertoire maison) doivent contenir :



 export LESSCHARSET=latin1




 Comme fichier .lessrc je vous recommande :



      \e[B    forw-line
      \e[A    back-line
      \e[6~   forw-scroll
      \e[5~   back-scroll
      \e[1~   goto-line
      \e[4~   goto-end
      \e[C    next-file
      \e[D    prev-file
      \eOA    back-line
      \eOB    forw-line




 Pour rentrer un Esc (parfois nomm� �chap) taper �\e� ou, sous vi,
 mettez vous en mode insertion avec i puis tapez ctrl+v et enfin esc.

 Ce fichier permet d'utiliser les touches �Home�, �End,�, �PagerUp� &
 �PageDown�.

 Pour s'en servir, taper :



      lesskey -o .less .lessrc




 N'oubliez pas de mettre le fichier .less dans votre r�pertoire maison
 : il permet d'employer les touches fl�ch�es, Page_up, Page_down, Home
 et End.

 Ne pas n�gliger la page de manuel de less car il peut �tre int�ressant
 de changer la valeur de sa variable d'environnement de configuration
 ("LESS").

 J'utilise : '-C -M -i -x2'


 66..1144..  llss


 Utilisez les options :



      -N --color=auto




 ou, plus simplement, d�finissez dans les fichiers de d�marrage de
 votre shell les alias suivants permettant de voir les fichiers dont le
 nom comprend des caract�res 8 bits :


      alias ll="ls --color=auto -N -l -a"
      alias d="ls --color=auto -N"




 Un simple d remplacera le classique ls, en y ajoutant la couleur,
 alors que ll vous offrira une liste compl�te de tous les fichiers
 pr�sents dans le r�pertoire, avec leurs attributs, leurs tailles...

 Pablo Saratxaga conseille d'utiliser --color=auto car �--color=yes
 fera avoir des codes escape ansi m�me lorsqu'on redirige vers un pipe
 un fichier o� que le terminal ne supporte pas la couleur... ce n'est
 pas ce qu'on voudrait.�


 66..1155..  fflleexx


 Donnez l'option :



      -8




 si l'analyseur g�n�r� doit accepter les entrees 8-bits (bien sur qu'il
 doit le faire !).


 66..1166..  eellmm


 Rajoutez ces trois lignes dans votre .elm/elmrc :



        charset = iso-8859-1
        displaycharset = iso-8859-1
        textencoding = 8bit





 66..1177..  ccooll


 Assurez-vous :

 1) qu'il a �t� corrig� et fasse un



      setlocale(LC_CTYPE,"");




 2) de d�finir




 LC_CTYPE=ISO-8859-1




 dans l'environment.


 66..1188..  rrllooggiinn


 Utilisez l'option :



      -8





 66..1199..  jjooee


 Utiliser ftp://sunsite.unc.edu:/pub/Linux/apps/editors/joe-2.8.tar.gz
 ou plus r�cent qui devraient fonctionner apr�s �dition du fichier de
 configuration : placer l'option -asis dans /usr/lib/joerc en premi�re
 colonne.


 66..2200..  TTeeXX eett LLaaTTeeXX


 Le plus simple consiste � employer GuTemberg, une distribution de
 LaTeX avec tous les d�fauts r�gl�s pour des francophones par des
 francophones !

 Mais si vous pr�f�rez une version standard non modifi�e, il suffit
 d'ajouter au d�but de chaque fichier :


 �  Pour LaTeX:



      \documentstyle[isolatin]{article}





 �  Pour LaTeX2e:



      \documentclass[12pt,a4paper]{letter}
      \usepackage{isolatin1}
      \usepackage[french]{babel}
      \usepackage{t1enc}





 ou alors :

      \usepackage[latin1]{inputenc}
      \usepackage[T1]{fontenc}




 Au cas o� votre distribution soit trop vieille pour l'inclure,
 isolatin.sty est disponible s�par�ment sur :
  ftp.vlsivie.tuwien.ac.at/pub/8bit

 Pour gs et xdvi, il faut utiliser des options speciales (sur ma
 machine, ce sont des alias). En effet, ils sont souvent configur�s
 pour un papier de taille anglo-saxonne.

 Ces options sont les suivantes :

 gs -sPAPERSIZE=a4 xdvi -paper a4 ghostview -a4

 Pour que dvips convertisse les documents dans un format papier a4, il
 faut specifier dans le fichier config.ps (le chemin varie en  fonction
 des versions de LaTeX) : /usr/lib/texmf/dvips/config.ps ou .dvipsrc

 @ a4 210mm 297mm @+ ! %%DocumentPaperSizes: a4 @+ %%PaperSize: a4 @+
 %%BeginPaperSize: a4 @+ a4

 Sinon ajoutez � votre .Xresources :



      XDvi.paper:             a4
      Ghostview.pageMedia:    A4





 66..2211..  MMaannuueell


 Tout d'abord, il faut vous procurer les pages de manuel Linux
 traduites en fran�ais sur ftp.lip6.fr/pub/linux

 Si vous utilisez une distribution RedHat ou Debian, celles-ci sont
 pr�sentes sur le c�d�rom : il suffit de les s�lectionner lors de
 l'installation.

 De l�, deux possibilit�es :


 �  soit vous ne voulez que des manuels en fran�ais, auquel cas il faut
    faire un :



      export MANPATH=/usr/man/fr_FR





 NB: fr_FR se remplace par fr_BE, fr_CA, fr_CH ou fr_LU selon le pays
 concern�.

 �  soit vous pr�f�rez par d�faut des manuels en fran�ais et si la page
    n'existe pas, vous vous rabattez vers l'anglais, il suffir alors de
    taper :
      export LANG=fr




 man ira chercher dans le �MANPATH� des pages en �LANG� par d�faut et
 se rabattra sinon sur des pages en anglais.


 66..2222..  CCoorrrreecctteeuurr oorrtthhooggrraapphhiiqquuee iissppeellll


 Vous pouvez vous le procurer sur son site original HYDRO-QU�BEC :
 ftp.ireq-robot.hydro.qc.ca:/pub/ispell/francais-IREQ-1.3.tar.gz

 ou sur : ftp.lip6.fr/pub/ispell/francais

 Un fichier LISEZMOI explique pas � pas et en fran�ais l'installation.


 66..2233..  LLeess ccllaavviieerrss 110055 ttoouucchheess


 Aussi appel�s �claviers Microsoft (tm)�, ils ont trois touches de plus
 que les claviers normaux.

 Comment s'en servir ?

 En mode console, �diter french.map et d�commenter les lignes en
 parlant !

 De m�me pour french (pour Xwindow).


 66..2244..  PPGGPP



 Tout d'abord, un avertissement : ce paragraphe n'est destin� qu'aux
 francophones ne vivant pas en France, m�me malgr� les modifications
 r�centes de la loi !

 En effet, en France, en Iran, en Irak et dans quelques autres pays
 totalitaires, l'utilisation de logiciels de cryptographie est
 consid�r�e comme usage d'armes de guerre, ce qui est punissable par la
 loi !

 Donc sautez ce paragraphe si votre l�gislation locale ne permet pas
 d'utiliser des logiciels de cryptographie.

 Premi�rement, il faut se procurer pgp-international (� cause de
 probl�mes de patentes et de l�gislation sur l'export d'armes de
 guerre, il existe pgp-us et pgp-international, ce dernire �tant dot�
 d'un algorythme encore plus puissant) sur :
 ftp://ftp.ifi.uio.no/pub/pgp/

 Ensuite, mettre dans votre r�pertoire maison, dans un sous r�pertoire
 .pgp les fichiers :








 config.txt
 language.idx
 pgpdoc1.txt
 pgpdoc2.txt
 language.txt
 fr.hlp
 en.hlp
 pgp.hlp




 Enfin, �diter le fichier .pgp/config.txt pour y rajouter :



      Language = fr
      CharSet = latin1




 Lisez ensuite .pgp/fr.hlp pour apprendre � vous servir de pgp !


 66..2255..  IImmpprreessssiioonn eenn mmooddee aasscciiii


 Pierre-Charles David (pcdavid � club-internet.fr) vous donne ce truc :

 Pour l'impression de texte simple, beaucoup d'imprimantes attendent
 des lettres en codage IBM (celui utilis� par MS-DOS).

 Si le fichier est cod� en latin1, on doit utiliser 'recode
 latin1:ibmpc' (� placer dans les filtres lpr de /etc/ par exemple),
 sous peine de voir imprimer des 'alpha' � la place de '�', et autres
 choses du m�me genre.

 Il existe d'autres utilisation au programme recode : �ibmpc:lat1� ou
 �lat1:ibmpc� (de ou vers MS-DOS) ou �applemac� pour Macintosh (tm).


 66..2266..  uunniiccooddee//llaattiinn//ccpp...... jjee nn''aaii ppaass ccoommpprriiss ccee ddeerrnniieerr ppaarraaggrraapphhee !!


 Voici donc plus d'explications gr�ce � Pablo Sartxaga (srtxg �
 chanae.alphanet.ch) dans un message explicant la diff�rence
 unicode/latin/cp :


















  DB>   quand on lance "setfont" sans argument
  DB>   il semble qu'on obtienne le meme effet que setfont -u none

 Normal et logique.

  DB>   --> en un mot la table de conversion "unicode" est desactivee
  DB>       ce qui transforme le "e accent aigu (dec 130)" en "th�ta (dec 233)"

 Non. Il ne transforme rien du tout, il affiche tout simplemment sans
 *aucune* transformation au contraire, � toi de t'assurer que la fonte
 que tu charges poss�des les glyphes � la bonne place par rapport au codage
 de caract�res que tu utilsies (iso-8859-1).

 Autremment dit si ta fonte n'est pas iso-8859-1 tu dois dire � setfont de
 faire des mappings; en particulier s ic'est une fonte qui utilise l'encodage
 DOS cp437 tu fais "setfont -u cp437 nomdelafonte". Moi par exemple j'aime
 beaucoup la fonte t.fnt de la Slackware, et j'ai donc quelque part
 dans /etc/rc.d/* une ligne "setfont -u cp437 t.fnt"

 Ou alors tu modifies la fonte (il y a un soft qui fait cela avec
 interface svgalib, et un autre qui permet de cr�er des images an ascii-art,
 un fichier par caract�re (256 fichiers donc), il te suffit alors de jongler
 avec les fichiers pour les changer de place et r�g�nerer la fonte).
 Note cependant que le codage cp437 n'inclus pas tous les caract�res de
 iso-8859-1, notamment manquent quasi toutes les majuscules accentu�es, et
 les lettres � necessaires en portguais. Tu peux toujours modifier la fonte
 pour cr�er ces caract�res manquants.

  DB>   sur ma slackware 3.2, a aucun moment setfont n'apparait dans les scripts
  DB>   de demarrage ni dans les ~/profiles et autres ~/.bashrc

 Donc c'est la fonte dans la ROM de la carte video qui est utilis�e.

  DB>   et pourtant cette
  DB>   conversion est effectuee correctement puisque j'ai les accents a l'ecran.

 Je suppose que le kernel presupose (� juste titre) que la fonte en ROM video
 est au codage cp437.

  DB>        une fois que je lance "setfont -u none" je perds donc les accents.

 Normal, car d�s lors que tu charges une fonte t uest suppos�e savoir ce que
 tu veux (au contraire de la fonte en ROM o� tu n'as pas le choix).
 Autrefois (du temps des 1.2.* et avant) le d�faut de setfont �tait cp437
 (et il n'utilsiait pas encore des tables unicode, mais on pouvait
 switcher par \e(B et \e(K entre codage cp437 et iso (on peut toujours
 d'ailleurs)), mais maintenant le d�faut est "straight to font", pas de
 conversion.

  DB>            j'en conclue que linuX utilise la police residente par defaut de
  DB>            la carte EGA/VGA

  DB>        [Q] --> comment retrouver cette police ?

 il y a un programme (don't j'ai oubli� malheureusement le nom) qui est
 assez populaire aupr�s des possesseurs de certaines cartes graphiques chez
 qui le switch X11 -> console bousille les fontes; il permet de faire un dump
 sur un fichier; il faudrait donc que tu le lances avant de modifier la
 fonte avec setfont. Le paquetage s'appelle quelque chose comme SVGATextMode
 ou quelque chose d'approchant.

  DB>     [Q] --> quelle table appeler pour la remapper et ravoir les accents ?

 setfont -u cp437 fontedos

 ou sinon, si tu ne veux pas lancer setfont et tu veux donc garder la fonte
 de la carte graphique; essaye un "echo -e \033(B" (l'ennuyant c'est que tu
 dois le faire dans chaque console)

  DB>                 (en general setfont -u def.uni (par exemple) renvoie une
  DB>                  erreur : PIO_UNIMAPCLR: Invalid argument et je reste
  DB>                  en caracteres "graphiques")

 Ah ? Chez moi �a marche; quels kernel et kbd as-tu ?

 Sinon je te conseille "cp437" plut�t que "def", ils font _presque_ la m�me
 chose, mais "cp437" est visuellement plus agreable car il remplace les
 caract�res non pr�sents dans la fonte par les lettres non accentu�es si c'est
 des lettres, C pour � et R pour � et par un carr� blanc pour le reste, ce qui
 permtes de garder le formatage et la lecture agreables; "def" lui ne mets
 totu simplement rien pour les caract�res manquants, si bien que tu te
 trouves avec des trous, ce qui est l'horreur si tu �dites un texte par
 exemple avec vi, puisque le curseur est affich� plusieurs caract�res
 � gauche � cause des caract�res de largeur nulle :)

 Essaye aussi la fonte "t.fnt", elle est assez jolie, totue en rondeurs, je la
 trouve r�posante, et quand je dois utiliser un PC avec les fontes style
 courier par d�faut je trouve �a tr�s agressif je me demande comment ils
 peuvent travailler avec :)




 Lire aussi les articles de news : "FAQ - les accents fran�ais et
 Usenet" de F.  Yergeau dans groupes fr.usenet.reponses et
 fr.usenet.8bits "ISO 8859-1 National Character Set FAQ" de mike �
 vlsivie.tuwien.ac.at dans comp.answers .


 66..2277..  nnccuurrsseess


 Rappellons que ncurses est un librairie C qui permet de manipuler
 facilement l'affichage en mode console texte : fen�trage, lignes de
 saisie, �dition de formulaires, couleurs, caract�res �ALT� ascii semi-
 graphique ibm, comme sous dos...


 66..2277..11..  IInnttrroodduuccttiioonn


 Pour les programmes utilisant curses (comme lynx) David Sibley dit:

 �La version standard de curses utilise le huiti�me  bit  pour la vid�o
 inversee  (voir  le  flag  _STANDOUT  d�fini dans
 /usr/include/curses.h).  Cependant, ncurses semble  fonctionner en
 8-bits et affiche le iso-latin-8859-1 correctement.�


 66..2277..22..  LLeess aacccceennttss


 Alors Denis BRAUSSEN (PostOffice � mail.dotcom.fr) r�pond � cette
 question :

 �Pourquoi en utilisant ncurses 4.2 je n'arrive pas � saisir les
 accents fran�ais dans les formulaires ?�

 Remarque: les distrib LinuX sont livr�es en g�n�ral avec la version
 1.9.9e de ncurses, or il se trouve que la librairie form de cette
 version est BUGG�E (probl�mes de rafraichissement des fen�tres).

 Ne pas utiliser la 1.9.9e donc si on veut travailler avec 'form' : ce
 bug est d'ailleurs clairement �nonc� sur le site de nucurses, et je
 m'�tonne que ce soit justement cette version qui soit encore livr�e
 sur la plupart des distributions (RedHat 4.2, 5.0, 5.1, SlackWare 3.2,
 Debian 1.9) en tout cas.

 Sympt�me : la fonction  wgetch() de ncurses renvoie les codes suivants
 :


 �  je tape '�' et wgetch retourne  �meta-i�    code 233 (decimal)

 �  "  "   '�' "    "        "     �meta-h�    code 234 (decimal)

 �  etc

 C'est normal avec les polices iso-8859-1 !

 Il faut installer les "locale" (ben oui, allez savoir pourquoi, sur la
 slackware 3.2 elles ne sont pas install�es !).

 Note: les 'locales' sont des fichiers qui vont modifier le
 comportement de certains programmes pour qu'ils s'adaptent aux
 �sp�cificit�s culturelles du pays �.


 �  r�cupererer :

 �  pour la libc5 la collection de locales POSIX :
    ftp://ftp.lip6.fr/pub/linux/GCC/WG15-collection.linux.tar.gz

 �  pour la libc6, elle est dans l'ajout �localedata� :
    ftp://ftp.lip6.fr/pub/gnu/glibc-localedata-2.0.6.tar.gz

 �  copier dans le r�pertoire /usr/share/locale les fichiers fr_FR et
    en_DK (qui est inclus dans fr_FR)

 �  cr�er le r�pertoire /usr/share/i18n/charmap et copier le fichier
    ISO_8859-1:1987

 �  faire man localedef et lancer la commande :



                localedef -f ISO_8859-1:1987 -i fr_FR fr





 Ceci cr�era l'entr�e fr dans /usr/share/locale soit :



              /usr/share/locale/fr





 Ce r�pertoire devrait maintenant contenir les fichiers





          LC_COLLATE
          LC_CTYPE
          LC_MESSAGES
          LC_MONETARY
          LC_NUMERIC
          LC_TIME





 �  lire le fichier �locale.fr� que l'on peut trouver sur le serveur
    ftp.lip6.fr (chercher sous doc, linux...) et dont la traduction
    fran�aise a �t� faite par �ric DUMAS (h�las ce doc ne traite
    principalement que de LC_MESSAGES. � quand la suite �ric ? ;-) )

 �  compl�ter �ventuellement l'intitialisation des variables du shell
    comme d�crit dans la section sur bash ou tcsh

 �  dans un programme, utilisez la fonction  setlocale() (man
    setlocale.3) pour fixer les param�tres locaux CAR le noyau linux
    initialise toujours cette fonction avec l'argument une locale �C�
    (POSIX) donc sans accents !



                setlocale(LC_CTYPE,"fr_FR");





 �  Hop !! On a nos accents dans ncurses, le plus simplement du monde.


 66..2288..  DDiivveerrss


 Pour les programmes utilisant groff (comme man), utilisez le avec :



      -Tlatin1




 au lieu de :



      -Tascii




 Les vieilles versions de man utilisent aussi col, et le point suivant
 s'applique aussi.

 Une belle discussion sur le th�me de l'ISO-8859-1 et sur �comment
 manipuler les caract�res 8-bits� est disponible sur
  ftp://grasp.insa-lyon.fr/pub/faq/fr/accents

 Pour perl, si tout d'un coup apr�s une mise � jour il raconte :


      (guylhem@barberouge:guylhem)$ perl
      perl: warning: Setting locale failed for the categories:
              LC_CTYPE LC_COLLATE
      perl: warning: Please check that your locale settings:
              LC_ALL = "fr_FR",
              LC_CTYPE = "ISO-8859-1",
              LC_COLLATE = (unset),
              LANG = "fr"
          are supported and installed on your system.
      perl: warning: Falling back to the "C" locale.
      (guylhem@barberouge:guylhem)$




 Essayez cette solution de Thomas Parmelan (Thomas.Parmelan � efrei.fr)
 :

 En libc6 le format des fichiers binaires de d�finition des locales a
 (encore) chang� : il faut les r�g�n�rer � partir des sources
 (WG15collection.tar.tz sur ftp.lip6.fr:/pub/linux/GCC par exemple) et
 des programmes "locale" et "localedef" qui sont fournis dans les
 sources de la libc.

 Sinon tu peux �galement essayer ceci (c'est comme cela que �a
 fonctionne chez moi en libc-5.4.x) : �



           unset LANG
           unset LC_CTYPE
           unset LC_COLLATE
           export LC_ALL=fr_FR.ISO-8859-1





 77..  RR��ggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss XX

 77..11..  LLeess xxtteerrmmiinnaauuxx ((xxtteerrmm,, nnxxtteerrmm,, rrxxvvtt......))


 Les faire fonctionner avec toutes les touches standard du clavier 102
 touches rel�ve du miracle, quant aux accents, seule une recompilation
 vous permettra de les utiliser !

 Pour xterm, essayez de mettre dans votre .Xdefaults :



      XTerm*eightBitInput: true
      XTerm*eightBitOutput: true
      *customization: -color
      XTerm*VT100*Translations: #override\n\
      XTerm*pointerColor: red
      None<Key>Begin: string(0x1b) string("[1~")\n\
      None<Key>End: string(0x1b) string("[4~")\n\
      None<Key>Prior: scroll-back(1,halfpage)\n\
      None<Key>Next: scroll-forw(1,halfpage)\n\
      Shift<Key>Prior: scroll-back(1,page)\n\
      Shift<Key>Next: scroll-forw(1,page)




 Pablo Saratxaga conseille de rajouter dans .inputrc :



      # pour rxvt
      "\e[7~":beginning-of-line
      "\e[8~":end-of-line
      # pour xterm
      "\e[H": beginning-of-line
      "\e[F": end-of-line




 Benjamin Dauvergne pour sa part ajoute cela au  /.Xdefaults pour
 b�n�ficer d'un xterm au menu des fontes francis� :



      XTerm*fontMenu*fontdefault*Label:      Default
      XTerm*VT100*font:              9x15
      XTerm*fontMenu*font1*Label:    Illisible
      XTerm*VT100*font1:             nil2
      XTerm*fontMenu*font2*Label:    Minuscule
      XTerm*VT100*font2:             5x7
      XTerm*fontMenu*font3*Label:    Petit
      XTerm*VT100*font3:             6x10
      XTerm*fontMenu*font4*Label:    Normal
      XTerm*VT100*font4:             fixed
      XTerm*fontMenu*font5*Label:    Moyen
      XTerm*VT100*font5:             7x13
      XTerm*fontMenu*font6*Label:    Tres grand
      XTerm*VT100*font6:             10x20




 Mais ces deux solutions ne vous garantissent pas de r�soudre tous les
 probl�mes de rxvt et de xterm ...

 Pour les r�soudre sans cr�er de fichiers dans /usr/X11R6/lib/X11/app-
 defaults, je tiens sinon � votre disposition un xiterm, un terminal X
 supportant *TOUTES* les touches des claviers standard, avec Home, End,
 Page_up (...) et m�me le pav� num�rique, fonctionnant comme en mode
 console, i.e.  Shift-Page_up permettant de faire d�filer une page,
 voire mieux : le pav� num�rique reconnaissant enfin la diff�rence
 entre Verr. Num allum� et Verr. Num �teint.

 X international terminal (xiterm pour les intimes) est bien sur sous
 GPL et mis � jour pour suivre parall�lement l'�volution de rxvt.

 Sur par exemple http://www.linux-france.com/prj/xiterm ou sur
 ftp://sunsite.unc.edu/pub vous trouverez donc xiterm, qui remplace
 votre xterm classique en y apportant la couleurs, les accents et les
 touches �tendues.

 Pour l'installer, compilez-le, devenez root et tapez :









 rm /usr/X11R6/bin/xterm
 rm /usr/X11R6/lib/X11/app-defaults/xterm
 rm /usr/X11R6/lib/X11/app-defaults/rxvt
 rm /usr/X11R6/lib/X11/app-defaults/Xterm
 rm /usr/X11R6/lib/X11/app-defaults/XTerm
 rm /usr/X11R6/lib/X11/app-defaults/Rxvt
 rm /usr/X11R6/lib/X11/app-defaults/RXvt
 cp xiterm /usr/local/bin

 ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/xterm
 ln -sf /usr/local/bin/xiterm /usr/X11R6/bin/rxvt





 77..22..  LLeess aapppplliiccaattiioonnss MMoottiiff


 L�, je n'ai malheureusement aucun rem�de miracle !

 Utilisez les possibilit�s du fichier french au lieu des touches mortes
 (AltGr (voyelle) : voyelle accent circonflexe... ) !


 77..33..  LLee mmaannuueell


 Pablo Saratxaga tient � votre disposition un xman modifi� pour qu'il
 supporte la variable �LANG� et puisse afficher les pages en d'autres
 langues qu'anglais.

 Il est disponible sur :

 ftp.lip6.fr:/pub/linux/distributions/redhat-
 contrib/SRPMS/xman-3.1.6-3.src.rpm
 ftp.lip6.fr:/pub/linux/distributions/redhat-
 contrib/i386/xman-3.1.6-3.i386.rpm �


 77..44..  NNuummLLoocckk


 Fr�d�ric Petit nous dit que �j'ai d�couvert que si l'on met
 ServerNumLock dans la section keyboard de XF86Config, �a marche tr�s
 bien; pour mes propres besoins, j'ai comment� cette ligne et j'ai mis
 sur la ligne en-dessous Xleds 2, comme �a, sous X11, je suis
 automatiquement en mode NumLock pour le pad num�rique et la led
 correspondante est allum�e ...�


 77..55..  XXDDMM


 Fr�d�ric Petit nous conseille d'utiliser ce /etc/X11/xdm/Xresources
 afin de ne rencontrer aucun probl�me avec nos touches �sp�ciales�
 (Home, End ...) sous X.









 xlogin*login.translations: #override\
       Ctrl<Key>R: abort-display() \n\
       <Key>BackSpace: delete-previous-character() \n\
       <Key>Home: move-to-begining() \n\
       <Key>Delete: delete-character() \n\
       <Key>End: move-to-end() \n\
       <Key>Left: move-backward-character() \n\
       <Key>Return: set-session-argument() finish-field() \n\
       <Key>Right: move-forward-character()





 88..  RReemmeerrcciieemmeennttss


 Ce document ne serait pas ce qu'il est sans l'aide de Nat Makar�vitch
 (nat � nataa.fr.eu.org) qui l'a relu et m'a aid� � le modifier de
 nombreuses fois.

 Ce document est un hybride nait des French HOWTO 1 et Francophones-
 HOWTO qui a rassembl� toutes leurs informations en un seul HOWTO
 destin� � la communaut� linux francophone.

 La section �Configurer les applications en mode texte� s'inspire pour
 sa part des paragraphes sur emacs, zsh, tcsh, flex, less, rlogin, joe,
 col et TeX du Guide du Rootard (le second HOWTO  destin� � la
 communaut� linux francophone

 Rappelons que les sites officiels du Guide du Rootard sont :

 http://www.freenix.fr/linux/Guide

 et

 ftp.lip6.fr:/pub/linux/french/docs/

 Remercions enfin par ordre alphab�tique ces contribueurs :

 Jean-Michel Antoine
 Michel Billaud
 Stephane Bortzmeyer
 R�my Card
 Xavier Cazin
 Laurent Chemla
 Ren� Cougnenc
 Bruno Cornec
 Yann Dirson
 �ric Dubreuil
 �ric Dumas
 Pierre Ficheux
 Laurent Frigault
 Frederic Lepied
 Stephane Marzloff
 Marc Merlin
 Thomas Parmelan
 Thomas Quinot
 David Robert
 Olivier Robert
 Benjamin Ryzman
 Pablo Saratxaga
 Julien Simon
 J.M. Vansteene


 Surtout, si je vous oublie, signalez-le moi !  De m�me si vous ne
 voulez plus figurer dans cette liste...

 Envoyez moi vos suggestions et modifications (guylhem � oeil.qc.ca),
 je me ferai un plaisir de les int�grer dans les prochaines versions !

 Signalez-moi aussi les erreurs : cet HOWTO est en perp�tuel
 changement, avec des nouveaut�s incluses � chaque version ; des
 erreurs peuvent facilement s'y glisser !


 99..  FFiicchhiieerrss iinncclluuss ddaannss ccee HHOOWWTTOO


 Comme signal� plus haut, cette section ne contient que french (pour X
 window) et french.map (pour linux-console).

 Voici french (pour X11, � placer dans /usr/X11R6/lib/X11/xkb/symbols)
 :















































 // French keyboard description, (c) Guylhem Aznar, July 1997
 // Released under GNU GENERAL PUBLIC LICENSE Version 2
 // If you haven't received it, this license is available at :
 // Free Software Foundation, Inc.  675 Mass Ave, Cambridge, MA 02139, USA

 partial hidden alphanumeric_keys modifier_keys
 xkb_symbols "basic" {

 // Description *TOTALE* d'un clavier fran�ais, sans le comparer � un
 // clavier am�ricain par d�faut : on y gagne plus de flexibilit�, ce
 // mod�le devient plus personalisable ...

 // Les touches �, �, �, � & �, pr�sentes en mode minuscule (i.e. sans shift)
 // ne sont pas disponibles en mode majuscule car elles sont respectivement
 // remplac�es par 2, 7, 9, 0 & % .
 // Pour obtenir les majuscules accentu�es �, �, �, � & �, vous pouvez soit
 // utiliser AltGr + Shift (minuscule accentu�e), soit utiliser les accent
 // dits "morts", i.e. fonctionnant comme l'accent circonflexe & le tr�ma .
 // Sont disponibles :  AltGr (1) : accent aig�, AltGr (7) : accent grave,
 // AltGr (^) : c�dille ; pour s'en servir, proc�der comme avec l'accent
 // circonflexe & le tr�ma : ex : AltGr (1) + e : � ; AltGr (1) + e : � ...
 // La tilde (~) n'�tant pas employ�e sur des lettres en fran�ais, elle reste
 // en AltGr (2) une touche normale .
 // Une tilde "morte" (avec la c�dille "morte") est toutefois disponibles sur la
 // touche accent circonflexe & tr�ma en AltGr + Shift .

 // Au cas o� les dead_keys ne fonctionnent pas (certains programmes les
 // refusent), vous pouvez toujours utiliser pour obtenir les voyelles � accent
 // circonflexe & � tr�ma :
 // AltGr (voyelle) : voyelle-minuscule � accent circonflexe
 // AltGr + Shift (voyelle) : voyelle-minuscule � tr�ma
 // AltGr (en dessous de la voyelle) : voyelle-majuscule � accent circonflexe
 // AltGr + Shift (en dessous de la voyelle) : voyelle majuscule � tr�ma

 // Plusieurs lettres �trang�res, utilis�es comme signes math�matiques ou
 // physiques, abbr�viations (...) ont �t� rajout�es en AltGr :
 // T->Phi;, r->(TM), y->yen, c->� et �, f->se�ora, m->se�or,
 // g->`, h->', �->�, x->� s->�, z->�, w->Delta;, b->�

 // La correspondance essaye de se faire la plus naturelle possible, en mettant
 // ces touches l� o� l'on s'attend le plus de les trouver ...
 // mais elle est loin d'�tre parfaite :^)

 // Modifiez donc � loisir tous ces AltGr, et si vous pensez avoir trouv� la
 // configuration ultime permettant d'acc�der en mieux � toutes ces touches,
 // mailez moi !
 // V�tre arrangement, s'il est vraiement plus pratique, sera inclu dans la
 // prochaine version de la carte de correspondance du clavier !

     name[Group1]= "French";
     key <ESC>   {       [          Escape                       ]       };

 // Deux possibilit�es pour cette touche "au carr�" (�) :
 // * un mode math�matique o� elle renvoie "au carr�" en mode normal, "au cube"
 // si elle est Shift�e et "puissance 1" en Alt-gr (pour parler par exemple de
 // m.s-� ...)
 // Toutefois, accent circonflexe suivi de 1, 2, 3, -, renvoyant respectivement
 // �, �, � et -, cette touche est inutile !

 // * un mode litt�raire est donc propos� par d�fault, pour disposer des
 // guillemets fran�ais � & � ; le � et le � restant disponibles
 // respectivement en AltGr et AltGr + Shift .

 //   key <TLDE> {       [     twosuperior,   threesuperior      ],
 //                      [     onesuperior                       ]       };

     key <TLDE>  {       [   guillemotleft,  guillemotright      ],
                         [     twosuperior,   threesuperior      ]       };

     key <AE01>  {       [       ampersand,               1      ],
                         [      dead_acute                       ]       };
     key <AE02>  {       [          eacute,               2      ],
                         [      asciitilde,          Eacute      ]       };
     key <AE03>  {       [        quotedbl,               3      ],
                         [      numbersign                       ]       };
     key <AE04>  {       [      apostrophe,               4      ],
                         [       braceleft                       ]       };
     key <AE05>  {       [       parenleft,               5      ],
                         [     bracketleft                       ]       };
     key <AE06>  {       [           minus,               6      ],
                         [             bar                       ]       };
     key <AE07>  {       [          egrave,               7      ],
                         [      dead_grave,          Egrave      ]       };
     key <AE08>  {       [      underscore,               8      ],
                         [       backslash                       ]       };
     key <AE09>  {       [        ccedilla,               9      ],
                         [     asciicircum,        Ccedilla      ]       };
     key <AE10>  {       [          agrave,               0      ],
                         [              at,          Agrave      ]       };
     key <AE11>  {       [      parenright,          degree      ],
                         [    bracketright                       ]       };
     key <AE12>  {       [           equal,            plus      ],
                         [      braceright                       ]       };
     key <BKSP>  {       [       BackSpace                       ]       };
     key  <TAB>  {       [             Tab,    ISO_Left_Tab      ]       };
     key <AD01>  {       [               a,               A      ],
                         [     acircumflex,      adiaeresis      ]       };
     key <AD02>  {       [               z,               Z      ],
                         [           aring,           Aring      ]       };
     key <AD03>  {       [               e,               E      ],
                         [     ecircumflex,      ediaeresis      ]       };
     key <AD04>  {       [               r,               R      ],
                         [      registered                       ]       };
     key <AD05>  {       [               t,               T      ],
                         [           thorn,           THORN      ]       };
     key <AD06>  {       [               y,               Y      ],
                         [             yen                       ]       };
     key <AD07>  {       [               u,               U      ],
                         [     ucircumflex,      udiaeresis      ]       };
     key <AD08>  {       [               i,               I      ],
                         [     icircumflex,      idiaeresis      ]       };
     key <AD09>  {       [               o,               O      ],
                         [     ocircumflex,      odiaeresis      ]       };
     key <AD10>  {       [               p,               P      ],
                         [       paragraph                       ]       };
     key <AD11>  {       [ dead_circumflex,  dead_diaeresis      ],
                         [    dead_cedilla,      dead_tilde      ]       };
     key <AD12>  {       [          dollar,        sterling      ],
                         [        currency                       ]       };
     key <RTRN>  {       [          Return                       ]       };
     key <AC01>  {       [               q,               Q      ],
                         [     Acircumflex,      Adiaeresis      ]       };
     key <AC02>  {       [               s,               S      ],
                         [          oslash,        Ooblique      ]       };
     key <AC03>  {       [               d,               D      ],
                         [     Ecircumflex,      Ediaeresis      ]       };
     key <AC04>  {       [               f,               F      ],
                         [     ordfeminine                       ]       };
     key <AC05>  {       [               g,               G      ],
                         [       quoteleft                       ]       };
     key <AC06>  {       [               h,               H      ],
                         [      quoteright                       ]       };
     key <AC07>  {       [               j,               J      ],
                         [     Ucircumflex,      Udiaeresis      ]       };
     key <AC08>  {       [               k,               K      ],
                         [     Icircumflex,      Idiaeresis      ]       };
     key <AC09>  {       [               l,               L      ],
                         [     Ocircumflex,      Odiaeresis      ]       };
     key <AC10>  {       [               m,               M      ],
                         [       masculine                       ]       };
     key <AC11>  {       [          ugrave,         percent      ],
                         [       plusminus,          Ugrave      ]       };
     key <BKSL>  {       [        asterisk,              mu      ],
                         [     Greek_OMEGA                       ]       };
     key <LFSH>  {       [          Shift_L                      ]       };
     key <LSGT>  {       [           less,          greater      ],
                         [             bar                       ]       };
     key <AB01>  {       [               w,               W      ],
                         [             eth,             ETH      ]       };
     key <AB02>  {       [               x,               X      ],
                         [              ae,              AE      ]       };
     key <AB03>  {       [               c,               C      ],
                         [            cent                       ]       };
     key <AB04>  {       [               v,               V      ],
                         [       copyright                       ]       };
     key <AB05>  {       [               b,               B      ],
                         [          ssharp                       ]       };
     key <AB06>  {       [               n,               N      ],
                         [         notsign                       ]       };
     key <AB07>  {       [           comma,        question      ],
                         [    questiondown                       ]       };
     key <AB08>  {       [       semicolon,          period      ],
                         [        multiply                       ]       };
     key <AB09>  {       [           colon,           slash      ],
                         [        division                       ]       };
     key <AB10>  {       [          exclam,         section      ],
                         [      exclamdown                       ]       };
     key <RTSH>  {       [         Shift_R                       ]       };

     key <LCTL>  {       [       Control_L                       ]       };
 //    key <LALT>        {       [           Alt_L,          Meta_L      ]       };
     key <SPCE>  {       [           space                       ]       };
 //    key <RALT>        {       [           Alt_R,          Meta_R      ]       };
     key <RCTL>  {       [       Control_R                       ]       };

     key <FK01> {        [        F1             ]       };
     key <FK02> {        [        F2             ]       };
     key <FK03> {        [        F3             ]       };
     key <FK04> {        [        F4             ]       };
     key <FK05> {        [        F5             ]       };
     key <FK06> {        [        F6             ]       };
     key <FK07> {        [        F7             ]       };
     key <FK08> {        [        F8             ]       };
     key <FK09> {        [        F9             ]       };
     key <FK10> {        [        F10            ]       };
     key <FK11> {        [        F11            ]       };
     key <FK12> {        [        F12            ]       };

     key <PRSC> { type= "PC_SYSRQ", symbols[Group1]= [ Print, Execute ] };
     key <SCLK> {  [  Scroll_Lock        ]       };
     key <PAUS> { type= "PC_BREAK", symbols[Group1]= [ Pause, Break ] };
     key  <INS> {  [  Insert             ]       };
     key <HOME> {        [  Home                 ]       };
     key <PGUP> {        [  Prior                ]       };
     key <DELE> { [ Delete               ]                       };
     key  <END> {        [  End                  ]       };
     key <PGDN> {        [  Next                 ]       };

     key   <UP> {        [  Up                   ]       };
     key <LEFT> {        [  Left                 ]       };
     key <DOWN> {        [  Down                 ]       };
     key <RGHT> {        [  Right                ]       };

     key <NMLK> {        [  Num_Lock, Pointer_EnableKeys         ]       };
     key <KPDV> {        [  KP_Divide            ]       };
     key <KPMU> {        [  KP_Multiply          ]       };
     key <KPSU> {        [  KP_Subtract          ]       };

     key  <KP7> {        [  KP_Home,     KP_7    ]       };
     key  <KP8> {        [  KP_Up,       KP_8    ]       };
     key  <KP9> {        [  KP_Prior,    KP_9    ]       };
     key <KPAD> {        [       KP_Add          ]       };

     key  <KP4> {        [  KP_Left,     KP_4    ]       };
     key  <KP5> {        [  KP_Begin,    KP_5    ]       };
     key  <KP6> {        [  KP_Right,    KP_6    ]       };

     key  <KP1> {        [  KP_End,      KP_1    ]       };
     key  <KP2> {        [  KP_Down,     KP_2    ]       };
     key  <KP3> {        [  KP_Next,     KP_3    ]       };
     key <KPEN> {        [       KP_Enter        ]       };

     key  <KP0> {        [  KP_Insert,   KP_0    ]       };
     key <KPDL> {  [  KP_Delete, KP_Decimal ]    };

     modifier_map Shift  { Shift_L       };
     modifier_map Lock   { Caps_Lock     };
     modifier_map Control{ Control_L     };
 //    modifier_map Mod1   { Alt_L, Alt_R, Meta_L, Meta_R };
 //    modifier_map Mod2   { Num_Lock };
     modifier_map Mod3   { Mode_switch   };
 //    modifier_map Mod4   { Meta_L, Meta_R };
 //    modifier_map Mod5   { Scroll_Lock };
 };

 // Touches suppl�mentaires sur un clavier "Windows95"

 // �/� (carr�/cube) par d�faut puisqu'on a mis les guillemets fran�ais !
 //    key <LWIN> {        [      twosuperior, threesuperior        ],
 //                        [      onesuperior                       ]  };
 //    key <RWIN> {        [      Mode_switch       ]       };
 //    key <MENU> {        [      Multi_key         ]       };


 xkb_symbols "pc101" {
     key <RALT> { [ Mode_switch,  Multi_key ] };
     modifier_map Mod3 { Mode_switch };
 };

 default
 xkb_symbols "pc102" {
     key <RALT> { [ Mode_switch,  Multi_key ] };
     modifier_map Mod3 { Mode_switch };
 };

 xkb_symbols "pc104" {
     key <RALT> { [ Mode_switch ] };
     key <LWIN> { [ Meta_L ] };
     key <RWIN> { [ Multi_key ] };
     key <MENU> { [ Menu ] };
     modifier_map Mod3 { Mode_switch };
 };

 xkb_symbols "pc105" {
     key <RALT> { [ Mode_switch ] };
     key <RWIN> { [ Multi_key ] };
     modifier_map Mod3 { Mode_switch };
 };

 partial alphanumeric_keys
 xkb_symbols "nodeadkeys" {
     include "french(basic)"
     key <AE12> {        [           equal,            plus      ]       };
     key <AD11> {        [     asciicircum,       diaeresis      ]       };
     key <AD12> {        [          dollar,        sterling      ]       };
     key <AB07> {        [           comma,        question      ]       };
 };




 Et enfin voici french.map (� placer dans /usr/lib/kbd/keytables ou
 /usr/share/keytables) :















































 # French keyboard description :
 #
 # Copyright (c) July 1997 Guylhem Aznar <guylhem � oeil.qc.ca>
 # Copyright (c) August 1997 Pierre-Charles David <pcdavid � club-internet.fr>
 #  Ajout� : Linefeed, Meta_Control_backslash, Control_backslash, Meta_backslash
 #
 #      This program is free software; you can redistribute it and/or
 #    modify it under the terms of the GNU General Public License version
 #            2 as published by the Free Software Foundation.
 #
 #      This program is distributed in the hope that it will be useful,
 #      but WITHOUT ANY WARRANTY; without even the implied warranty of
 #       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #               GNU General Public License for more details.
 #
 #      You should have received a copy of the GNU General Public License
 #         along with this program; if not, write to the Free Software
 #          Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #
 # Les d�finitions de alt & control (keycode) ne sont qu'optionelles ; n'ont
 # donc �t� red�finis alt (nombre) et atl + shift (nombre) pour inverser le
 # comportement par d�faut : touche = signe ; touche + shift = nombre, or ici
 # alt touche = Meta_nombre ; alt + shift touche = Meta_signe
 #
 # Shift (pav� num�rique) pour taper de l'h�xad�cimal !
 # control alt suppr : rebooter
 # control altgr suppr : arr�ter
 #
 # ajouter pour ces deux fonction les lignes suivantes � /etc/inittab :
 # ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now
 # kb:12345:kbrequest:/sbin/halt

 keycode   0 =

 keycode   1 = Escape

 keycode   2 = ampersand        one              dead_acute
         alt     keycode 2 = Meta_one
         alt     shift   keycode 2 = Meta_ampersand

 keycode   3 = eacute           two              tilde            Eacute
         alt     keycode 3 = Meta_two
         alt     shift   keycode 3 = Meta_asciitilde

 keycode   4 = quotedbl         three            numbersign
         alt     keycode 4 = Meta_three
         alt     shift   keycode 4 = Meta_quotedbl

 keycode   5 = apostrophe       four             braceleft
         alt     keycode 5 = Meta_four
         alt     shift   keycode 5 = Meta_apostrophe

 keycode   6 = parenleft        five             bracketleft
         alt     keycode 6 = Meta_five
         alt     shift   keycode 6 = Meta_parenleft

 keycode   7 = minus            six              bar              hyphen
         alt     keycode 7 = Meta_six
         alt     shift   keycode 7 = Meta_minus

 keycode   8 = egrave           seven            dead_grave       Egrave
         alt     keycode 8 = Meta_seven
         alt     shift   keycode  8 = Meta_grave

 keycode   9 = underscore       eight            backslash        macron
         alt     keycode 9 = Meta_eight
         alt     shift   keycode 9 = Meta_underscore

 keycode  10 = ccedilla         nine             circumflex       Ccedilla
         alt     keycode 10 = Meta_nine
         alt     shift   keycode 10 = Meta_asciicircum

 keycode  11 = agrave           zero             at               Agrave
         alt     keycode 11 = Meta_zero
         alt     shift   keycode 11 = Meta_at

 keycode  12 = parenright       degree           bracketright
         alt     keycode 12 = Meta_parenright
         alt     shift   keycode  12 = Meta_bracketright

 keycode  13 = equal            plus             braceright
         alt     keycode 13 = Meta_equal
         alt     shift   keycode  13 = Meta_plus

 keycode  14 = Delete           Remove
         alt     control keycode 14 = Boot
         altgr   control keycode 14 = KeyboardSignal

 keycode  15 = Tab

 keycode  16 = a                A                acircumflex     adiaeresis

 keycode  17 = z                Z                aring           Aring

 keycode  18 = e                E                ecircumflex     ediaeresis

 keycode  19 = r                R                registered

 keycode  20 = t                T                thorn           THORN

 keycode  21 = y                Y                yen

 keycode  22 = u                U                ucircumflex     udiaeresis

 keycode  23 = i                I                icircumflex     idiaeresis

 keycode  24 = o                O                ocircumflex     odiaeresis

 keycode  25 = p                P                paragraph

 keycode  26 = dead_circumflex  dead_diaeresis   dead_cedilla    dead_tilde

 keycode  27 = dollar           pound            currency

 keycode  28 = Return
         alt     keycode  28 = 0x080d
         altgr   keycode  26 = Linefeed

 keycode  29 = Control

 keycode  30 = q                Q                Acircumflex     Adiaeresis

 keycode  31 = s                S                oslash          Oslash

 keycode  32 = d                D                Ecircumflex     Ediaeresis

 keycode  33 = f                F                ordfeminine

 keycode  34 = g                G                acute

 keycode  35 = h                H                periodcentered

 keycode  36 = j                J                Ucircumflex     Udiaeresis

 keycode  37 = k                K                Icircumflex     Idiaeresis

 keycode  38 = l                L                Ocircumflex     Odiaeresis

 keycode  39 = m                M                masculine

 keycode  40 = ugrave           percent         plusminus        Ugrave
         alt     keycode 40 = Meta_semicolon

 # Mode math
 #keycode  41 = twosuperior      threesuperior   onesuperior     periodcentered
 # Mode litt�raire + math
 keycode  41 = guillemotleft    guillemotright   twosuperior     threesuperior

 keycode  42 = Shift

 keycode  43 = asterisk         mu               onehalf

 keycode  44 = w                W                +eth            +ETH

 keycode  45 = x                X                +ae             +AE

 keycode  46 = c                C                cent

 keycode  47 = v                V                copyright

 keycode  48 = b                B                ssharp

 keycode  49 = n                N                notsign

 keycode  50 = comma            question        questiondown

 keycode  51 = semicolon        period          multiply

 keycode  52 = colon            slash           division

 keycode  53 = exclam           section         exclamdown

 keycode  54 = Shift

 keycode  55 = KP_Multiply      Hex_A           Hex_D

 keycode  56 = Alt

 keycode  57 = space
         control keycode  57 = nul
         alt     keycode  57 = Meta_space
         altgr   keycode  57 = nobreakspace

 # Tr�s utile pour tous ceux ne disposant pas de leurs deux mains
 keycode  58 =  CapsShift
 # Caps_Lock
 # ou au choix CapsShift ou Caps_On !
         shift   keycode  58 = Shift_Lock
         control keycode  58 = Control_Lock
         alt     keycode  58 = Alt_Lock
         altgr   keycode  58 = AltGr_Lock

 keycode  59 = F1               F11              Console_13
         alt     keycode  59 = Console_1
         control alt     keycode  59 = Console_1

 keycode  60 = F2               F12              Console_14
         alt     keycode  60 = Console_2
         control alt     keycode  60 = Console_2

 keycode  61 = F3               F13              Console_15
         alt     keycode  61 = Console_3
         control alt     keycode  61 = Console_3

 keycode  62 = F4               F14              Console_16
         alt     keycode  62 = Console_4
         control alt     keycode  62 = Console_4

 keycode  63 = F5               F15              Console_17
         alt     keycode  63 = Console_5
         control alt     keycode  63 = Console_5

 keycode  64 = F6               F16              Console_18
         alt     keycode  64 = Console_6
         control alt     keycode  64 = Console_6

 keycode  65 = F7               F17              Console_19
         alt     keycode  65 = Console_7
         control alt     keycode  65 = Console_7

 keycode  66 = F8               F18              Console_20
         alt     keycode  66 = Console_8
         control alt     keycode  66 = Console_8

 keycode  67 = F9               F19              Console_21
         alt     keycode  67 = Console_9
         control alt     keycode  67 = Console_9

 keycode  68 = F10              F20              Console_22
         alt     keycode  68 = Console_10
         control alt     keycode  68 = Console_10

 keycode  69 = Num_Lock         Bare_Num_Lock

 keycode  70 = Scroll_Lock      Show_Memory      Show_Registers  Show_State

 keycode  71 = KP_7             Hex_7
         alt     keycode  71 = Ascii_7

 keycode  72 = KP_8             Hex_8
         alt     keycode  72 = Ascii_8

 keycode  73 = KP_9             Hex_9
         alt     keycode  73 = Ascii_9

 keycode  74 = KP_Subtract      Hex_B            Hex_E
         alt     keycode  74 = minus

 keycode  75 = KP_4             Hex_4
         alt     keycode  75 = Ascii_4

 keycode  76 = KP_5             Hex_5
         alt     keycode  76 = Ascii_5

 keycode  77 = KP_6             Hex_6
         alt     keycode  77 = Ascii_6

 keycode  78 = KP_Add           Hex_C            Hex_F
         alt     keycode  78 = plus

 keycode  79 = KP_1             Hex_1
         alt     keycode  79 = Ascii_1

 keycode  80 = KP_2             Hex_2
         alt     keycode  80 = Ascii_2

 keycode  81 = KP_3             Hex_3
         alt     keycode  81 = Ascii_3

 keycode  82 = KP_0             Hex_0
         alt     keycode  82 = Ascii_0

 keycode  83 = KP_Period         KP_Comma
         altgr   control keycode  83 = KeyboardSignal
         control alt     keycode  83 = Boot

 # SysReq = Alt+Print Screen = 84
 keycode  84 = Last_Console

 keycode  85 =

 keycode  86 = less             greater          bar             brokenbar

 keycode  87 = F11              F11              Console_23
         alt     keycode  87 = Console_11
         control alt     keycode  87 = Console_11

 keycode  88 = F12              F12              Console_24
         alt     keycode  88 = Console_12
         control alt     keycode  88 = Console_12

 keycode  89 =

 keycode  90 =

 keycode  91 =

 keycode  92 =

 keycode  93 =

 keycode  94 =

 keycode  95 =

 keycode  96 = KP_Enter

 keycode  97 = Control

 keycode  98 = KP_Divide

 # Print Screen
 keycode  99 = Control_backslash
         control keycode  99 = Control_backslash
         alt     keycode  99 = Control_backslash

 keycode 100 = AltGr
         alt     keycode 100 = Compose

 # Ctrl+Pause = Break = 101
 keycode 101 = Break

 keycode 102 = Home

 keycode 103 = Up

 keycode 104 = PageUp
         shift   keycode 104 = Scroll_Backward

 keycode 105 = Left
         alt     keycode 105 = Decr_Console

 keycode 106 = Right
         alt     keycode 106 = Incr_Console

 keycode 107 = End

 keycode 108 = Down
         alt     keycode 108 = Last_Console

 # PageDown == Next
 keycode 109 = PageDown
         shift   keycode 109 = Scroll_Forward

 keycode 110 = Insert

 keycode 111 = BackSpace       BackSpace      SAK
         alt     keycode 111 = Meta_backslash
         control keycode 111 = Control_backslash

 keycode 112 = Macro

 keycode 113 = F13

 keycode 114 = F14

 keycode 115 = Help

 keycode 116 = Do

 keycode 117 = F17

 keycode 118 = KP_MinPlus

 keycode 119 = Pause

 keycode 120 =

 keycode 121 =

 keycode 122 =

 keycode 123 =

 keycode 124 =

 # Fen�tre gauche = Alt puisque d'habitude c'est la position d'Alt !
 keycode 125 = Alt

 # Fen�tre droite = AltGr puisque d'habitude c'est la position d'AltGr !
 keycode 126 = AltGr

 # Menu = compose (m�langer des signes et des lettres ex : (compose) ' e = �
 keycode 127 = Compose

 string F1 = "\033[[A"
 string F2 = "\033[[B"
 string F3 = "\033[[C"
 string F4 = "\033[[D"
 string F5 = "\033[[E"
 string F6 = "\033[17~"
 string F7 = "\033[18~"
 string F8 = "\033[19~"
 string F9 = "\033[20~"
 string F10 = "\033[21~"
 string F11 = "\033[23~"
 string F12 = "\033[24~"
 string F13 = "\033[25~"
 string F14 = "\033[26~"
 string F15 = "\033[28~"
 string F16 = "\033[29~"
 string F17 = "\033[31~"
 string F18 = "\033[32~"
 string F19 = "\033[33~"
 string F20 = "\033[34~"
 string F21 = ""
 string F22 = ""
 string F23 = ""
 string F24 = ""
 string F25 = ""
 string F26 = ""
 string Home = "\033[1~"
 string Insert = "\033[2~"
 string Remove = "\033[3~"
 string End = "\033[4~"
 string PageUp = "\033[5~"
 string PageDown = "\033[6~"
 string Macro = "\033[M"
 string Pause = "\033[P"

 compose '`' 'A' to '�'
 compose '`' 'a' to '�'
 compose '\'' 'A' to '�'
 compose '\'' 'a' to '�'
 compose '^' 'A' to '�'
 compose '^' 'a' to '�'
 compose '~' 'A' to '�'
 compose '~' 'a' to '�'
 compose '"' 'A' to '�'
 compose '"' 'a' to '�'
 compose 'O' 'A' to '�'
 compose 'o' 'a' to '�'
 compose '0' 'A' to '�'
 compose '0' 'a' to '�'
 compose 'A' 'A' to '�'
 compose 'a' 'a' to '�'
 compose 'A' 'E' to '�'
 compose 'a' 'e' to '�'
 compose ',' 'C' to '�'
 compose ',' 'c' to '�'
 compose '`' 'E' to '�'
 compose '`' 'e' to '�'
 compose '\'' 'E' to '�'
 compose '\'' 'e' to '�'
 compose '^' 'E' to '�'
 compose '^' 'e' to '�'
 compose '"' 'E' to '�'
 compose '"' 'e' to '�'
 compose '`' 'I' to '�'
 compose '`' 'i' to '�'
 compose '\'' 'I' to '�'
 compose '\'' 'i' to '�'
 compose '^' 'I' to '�'
 compose '^' 'i' to '�'
 compose '"' 'I' to '�'
 compose '"' 'i' to '�'
 compose '-' 'D' to '�'
 compose '-' 'd' to '�'
 compose '~' 'N' to '�'
 compose '~' 'n' to '�'
 compose '`' 'O' to '�'
 compose '`' 'o' to '�'
 compose '\'' 'O' to '�'
 compose '\'' 'o' to '�'
 compose '^' 'O' to '�'
 compose '^' 'o' to '�'
 compose '~' 'O' to '�'
 compose '~' 'o' to '�'
 compose '"' 'O' to '�'
 compose '"' 'o' to '�'
 compose '/' 'O' to '�'
 compose '/' 'o' to '�'
 compose '`' 'U' to '�'
 compose '`' 'u' to '�'
 compose '\'' 'U' to '�'
 compose '\'' 'u' to '�'
 compose '^' 'U' to '�'
 compose '^' 'u' to '�'
 compose '"' 'U' to '�'
 compose '"' 'u' to '�'
 compose '\'' 'Y' to '�'
 compose '\'' 'y' to '�'
 compose 'T' 'H' to '�'
 compose 't' 'h' to '�'
 compose 's' 's' to '�'
 compose 's' 'z' to '�'
 compose 'i' 'j' to '�'
 compose '<' '<' to '�'
 compose '>' '>' to '�'
 # si quelqu'un veut bien y inclure des �compose� pour les autres caract�res
 # latin1 comme le copyright, le yen (...) qu'il me les envoie !