  Le French-HOWTO : Linux & la langue franaise
  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 matires

























































  1. Prsentation

     1.1 Introduction
     1.2 Les franais ne sont pas les seuls francophones !
     1.3 Attention

  2. Les problmes

     2.1 Prsentation
     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 caractres
     3.7 Unicode, iso-8859, latin
     3.8 UTC, GMT

  4. Rglage 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 dfaut au dmarrage
     4.5 Vieilles versions

  5. Rglage du clavier sous XFree

     5.1 Introduction
     5.2 Conseils
     5.3 Est-ce ncessaire ?
     5.4 french ou fr ?
     5.5 Table de correspondances
     5.6 Faire de ces modification les dfaut au lancement de X
     5.7 O trouver ces fichiers
     5.8 Autre mthodes

  6. Rglage 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 franais
     6.5 Les variables
     6.6 Les caractres 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. Rglage 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



  ______________________________________________________________________

  11..  PPrrsseennttaattiioonn



  11..11..  IInnttrroodduuccttiioonn


  Ce document a t crit pour aider  configurer un ordinateur dot du
  systme d'exploitation Linux pour des utilisateurs francophones ; il y
  est expliqu par exemple comment configurer priphriques et
  applications afin de prendre en compte les particularits et les
  spcificits de notre langue...

  Toutefois, ce document ne traite pas de l'installation du systme
  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
  apprtez maintenant  mieux la configurer ; veuillez donc vous rfrer
   d'autres HOWTOs pour l'installation.

  N'tant pas l'unique auteur de ce document, les personnes m'ayant
  donnes des conseils  rajouter sont explicitement cites.

  Les adresses lectroniques de ces contribueurs ont t volontairement
  modifies en remplaant les a enrouls par des  afin d'viter les
  publipostages trs gnants.


  11..22..  LLeess ffrraannaaiiss nnee ssoonntt ppaass lleess sseeuullss ffrraannccoopphhoonneess !!


  Pour chaque manipulation dpendant du pays concern, quatres versions
  sont donc proposes : une canadienne franaise, une belge wallone, une
  franaise et une suisse romande.  Le Grand Duch du Luxembourg
  utilisant les conventions franaises, j'invite les lecteurs
  luxembourgeois  se reporter aux exemples franais !

  Toutefois seuls les fichiers destins aux franais (table de clavier
  en mode console, X...) sont inclus, puisque la majorit des lecteurs
  seront certainement franais et que seuls ces fichiers prsentent des
  amliorations par rapport aux dfauts.
  Envoyez-moi donc vos fichiers belges, canadiens, luxembourgeois ou
  suisses ; ils seront inclus avec plaisir s'ils se montrent plus utiles
  que ceux proposs par dfaut !


  11..33..  AAtttteennttiioonn


  Nat Makarevitch nous recommande :

  ROOT : certaines manipulations recommandes par ce document ne peuvent
  tre effectues que sous un compte privilgi (root) ; la plus grande
  prudence est alors de rigueur car toute action inadquate peut mettre
  en pril 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, grce auquel l'utilisateur peut retrouver le nom complet
  (chemin de rpertoires) 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 monts 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





  22..  LLeess pprroobbllmmeess



  22..11..  PPrrsseennttaattiioonn


  Le problme de tout utilisateur non-amricain lors de l'installation
  de Linux est de lui faire comprendre que, justement, il n'est pas
  amricain !

  Cela a des consquences sur :


    les caractres spciaux que l'on utilise, accentus (   ) ou
     bien ligaturs (  , voire e dans l'o qui vient  peine
     d'apparatre sous Linux en mode console ; j'espre bientt
     prsenter ici une solution simple pour en disposer sous X aussi !)

    la correspondance entre la srigraphie des cabochons (touches) sur
     lesquels vous appuyez et les codes que Linux renvoie, celui-ci
     supposant un clavier QWERTY amricain par dfaut

    le format de page pris en charge par les programmes que vous
     utilisez pour imprimer, diffrent entre les tats-Unis (14 x 8,5
     pouces pour du papier dit lgal) 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 utilise pour les messages d'erreur



  22..22..  SSoolluuttiioonnss


  Tout tant prconfigur pour un anglophone nord-amricain -bien que
  ceux-ci ne reprsentent pas la majorit de la population mondiale- ,
  il faut donc se faire reconnatre comme une exception par les
  diffrents 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 systme trs ouvert  des
  modifications de toute sorte et comme vous allez le dcouvrir au fil
  de ce document, il est assez simple d'obtenir un rsultat trs
  correct.


  22..33..  AAiiddee


  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'hsitez pas  contacter l'quipe de
  traduction des HOWTOs ; pour cel, adressez-vous  ric Dumas (dumas 
  freenix.fr ou dumas  linux.eu.org) .


  33..  LLee vvooccaabbuullaaiirree :: ppeettiitt lleexxiiqquuee


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


  33..11..  88 bbiittss


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


  33..22..  TTaabbllee ddee ccllaavviieerr


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


  33..33..  HHoommee,, EEnndd,, PPaaggee UUpp eett PPaaggee DDoowwnn


  Les touches Home, End, Page Up et Page Down (dont les noms
  varient selon les claviers) sont les touches permettant respectivement
  d'aller en dbut/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 reoit, se dit :
  tient, c'est la touche End qu'on a press, donc le renvoie la chane
  associe, en l'occurence pour End \e[4  

  Lorsque bash ou un autre programme reoit cette chane... il ne la
  connat pas !  Donc il faut lui dire dans le .inputrc que \e[4 
  signifie aller  la fin de la ligne.


  33..44..  TToouucchheess mmoorrtteess


  Les touches mortes sont des touches qui ne produisent pas de
  caractres en elles-mmes, mais qui modifient la faon dont la frappe
  suivante va tre interprte (par exemple, le trma ou l'accent
  circonflexe sont en gnral 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 franais, l'accent aigu (en AltGr de 1
     pour les franais et en AltGr de  pour les belges), l'accent grave
     (en AltGr de 7 pour les franais & en AltGr de carr/cube pour les
     belges), le trma et l'accent circonflexe (tous deux  ct du P)

    pour les canadiens, les accent graves, circonflexes, les trmas et
     la cdille

    pour les suisses, les accent aigus, graves, circonflexes, les
     trmas et la tilde


  33..55..  BBaacckkssppaaccee ,, DDeelleettee



    BackSpace Touche place en haut  droite du pav principal, au
     dessus d' Entre, au cabochon marqu d'une flche vers la gauche.

    Delete Touche du pav curseur au cabochon marqu Suppr ou Del,
      gauche de Fin.  Le pav numrique 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 Caractre ASCII 0x08, ou control-h.

    DEL Caractre ASCII 0x7F, ou control-?

    ^D Caractre ASCII 0x04, ou control-d.

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


  33..66..  PPoolliiccee ddee ccaarraaccttrreess


  Une police de caractres est une correspondance entre des codes
  informatiques ou nombres hexadcimaux et des caractres
  (alphanumriques...) 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
  hexadcimal eb correspond  .

  La police de caractre est la somme des reprsentations graphiques des
  caractres d'un standard.


  33..77..  UUnniiccooddee,, iissoo--88885599,, llaattiinn


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

  L'ASCII codait ses caratres sur 7bits, rendant donc impossible
  d'incorporer des caractres accentus  la norme dja prsente.

  Les normes iso-8859 latin et cp (pour les plus connues) vinrent
  pallier  cette dficience en encodant les caractres sur 8bits.  Mais
  plusieurs de ces normes taient ncessaire du fait de l'impossibilit
  de faire tenir les caractres de toutes les langues du monde sur
  8bits.  La norme iso-8859-1 latin1, la plus utilise, se destine par
  exemple au langues d'europe de l'ouest, du nord, d'amrique, la norme
  iso-8859-2 latin2 est prvue pour l'europe de l'est...

  L'unicode offre l'avantage de proposer les caractres ncessaires 
  toutes les langues du monde, mais reste encore peu utilis ou
  implment.

  En effet, il est impossible de l'utiliser en pratique sous linux-
  console, la mmoire exige de la carte vido ne permettant pas de
  stocker tous les caractres 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 rpendent sous X, grace
  a des outils comme freetype, xfstt (...).

  Actuellement, la nouvelle norme europenne iso-8859-15 latin9 souvent
  abbrge en latin0 est cense permettre la transition vers l'unicode
  en apportant  l'ancien iso-8859-1 latin1 les caractres qu'il
  manquait actuellement.

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



  33..88..  UUTTCC,, GGMMTT


  Nous n'utilise pas les mmes normes horaires que les ango-amricains !

  La France se trouve en zone MET (heure moyenne europenne) GMT+1 ; la
  zone MET DST correspond  l'heure d't active GMT+2.

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

  GMT est l'heure solaire moyenne de Greenwich. L'heure est compte 
  partir de midi et est donc dcale de 12 h  par rapport au temps
  universel. GMT est base sur la rotation de la Terre, ce n'est donc
  pas un temps rgulier. 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 mridien zro). Il est bas sur des talons
  atomiques, mais des secondes intercalaires sont ajoutes
  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 prcisions
  sur la dtermination 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 rfrence aux diffrentes heures
  lgales.  L'acronyme GMT est employ 99% du temps pour dsigner UTC,
  mais c'est une erreur (ou un abus de langage).

  Enfin, il existe l'heure astronomique, aussi compte sur des talons
  atomiques mais dcale 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.


  44..  RRggllaaggee dduu ccllaavviieerr ssoouuss LLiinnuuxx



  44..11..  IInnttrroodduuccttiioonn


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

  Pour installer un clavier franais sous Linux, tapez selon que vous
  soyez respectivement Franais, Canadien Franais, Belge Wallon ou
  Suisse Romand :



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





  44..22..  OO ttrroouuvveerr cceess ffiicchhiieerrss


  french.map est inclu dans ce HOWTO (au chapitre Fichiers inclus) et
  tous les autres fichiers se trouvent d'ordinaire dans le rpertoire
  /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
  tlcharger 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/"





  44..33..  AAtttteennttiioonn aauu ssttttyy !!


  Avec french.map et french (pour X window : cf. chapitre Rgler 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
  caractre).

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

  Supprimez-donc ces lignes de vos fichier d'initialisation de
  l'interprteur de commandes ( shell ), comme .bashrc, .bash_profile
  ou .tcshrc .


  44..44..  FFaaiirree ddee cceess mmooddiiffiiccaattiioonnss lleess ddffaauutt aauu ddmmaarrrraaggee


  D'habitude, loadkeys est excut par des scripts au dmarrage ; 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 lanant loadkeys ; il vous
  suffit alors de l'diter pour que vos modifications soient dsormais
  prise en en compte  chaque dmarrage.

  Les distributions RedHat constituent une exception : la table de
  clavier par dfaut tant dfinie dans /etc/sysconfig/keyboard.

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


  44..55..  VViieeiilllleess vveerrssiioonnss


  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
  dpend) est trop vieille : il faut vous procurer une version plus
  rcente 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 dsutude puisque la grande majorit des programmes
  prennent dsormais en charge ces fameuses touches mortes et les
  caractres accentus.

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


  55..  RRggllaaggee dduu ccllaavviieerr ssoouuss XXFFrreeee



  55..11..  IInnttrroodduuccttiioonn


  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 grce  votre
  .xinitrc ( lire !).

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


  Les utilisateurs dsirant personnaliser leur table xmodmap employaient
  le programme xkeycaps.

  XFree 2.1 et les version ultrieures reconnaissent la disposition des
  touches du clavier gre par loadkeys, cela rendant thoriquement
  xmodmap inutile.

  Mais la gestion de la touche COMPOSE assure par XFree 3.1 laissait
  un peu  dsirer, la table hrite de loadkeys ne servant gure.

  Il fallait donc continuer  employer xmodmap, l'utilitaire logiciel
  standard permettant d'obliger le serveur X  associer les vnements
  souris/clavier  des caracres.

  Sous XFree version 3.2 et postrieures, xkb rendit xmodmap
  dfinitivement 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
  confirmes !!!

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

  Quelle histoire complique !

  De ce fait, elles ne fonctionnents que pour les clients X
  internationaliss, c'est--dire qui grent eux-mmes les problmes
  lis aux mthodes d'entre de donnes des diffrentes langues
  nationales.

  Ceci est trs gnant lorsqu'on veut pouvoir saisir du texte comportant
  des lettres accentues, alors que le client utilis n'est pas
  internationalis !

  Thomas Quinot (Thomas.Quinot  cuivre.fdn.fr) vous propose donc sa
  libX11 modifie, qui gre les touches mortes de manire transparente
  pour tous les clients.

  Elle permet galement de traiter les squences composes inconnues
  comme des paires de caractres, par example :

  ~ + / = ~/

  Pour l'utiliser :

    Rcuprez libX11-XF3.3.1.tar.gz ;

    Extrayez le fichier libX11.so.6.1 ;

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

    Excutez ldconfig ;

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


  55..22..  CCoonnsseeiillss


  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 rpertoire
  /usr/X11R6/lib/X11/xkb/symbols/ , procurez-vous donc une version plus
  rcente de X window !


  55..33..  EEsstt--ccee nncceessssaaiirree ??


  Sans xkb, XFree se rabattra par dfaut sur votre configuration de
  clavier pour Linux (avec loadkeys).  Toutefois, la translation n'est
  pas parfaite et je vous recommanderais plutt 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
  considre comme utilisateur d'un clavier anglo-amricain !

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


  55..44..  ffrreenncchh oouu ffrr ??


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

  De plus, il bnficie de nombreuses amliorations pour pallier au
  dficiences de nombreux programmes.

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

  french rpond  ce problme 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 trma !


  55..55..  TTaabbllee ddee ccoorrrreessppoonnddaanncceess



    AltGr (voyelle) : voyelle accent grave

    AltGr + Shift (voyelle) : voyelle trma

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

    AltGr + Shift (touche au dessous de la voyelle) : voyelle majuscule
     trma

    AltGr + Shift (minuscule accentue) : majuscule accentue

  Par exemple :



    AltGr (e) : 

    AltGr + Shift () : 

  L'astuce marche aussi pour le c cdille :


    AltGr + Shift () : 

  Donc mme dans les pires conditions (si aucune touche morte ne
  fonctionne), on peut quand mme accder  toutes les voyelles
  accentues, majuscules et minuscules !

  Vous y trouverez en plus les guillemets franais ( ), les symboles
  employs 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 grce  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.


  55..66..  FFaaiirree ddee cceess mmooddiiffiiccaattiioonn lleess ddffaauutt aauu llaanncceemmeenntt ddee XX


  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 rcentes de XFree,
                                               # AltGr et RightAlt sont synonymes.
       ScrollLock      Compose                 # Pour faire des caractres spciaux.
                                               # 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 ncessaire pour xkb
       XkbModel        "pc102"         #
       XkbLayout       "french"        #
       XkbRules        "xfree86"       #
       # Remplacer french par ca ou be ou fr_CH
       EndSection




  Pour cette partie Xkb, certains prfrent :



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





  55..77..  OO ttrroouuvveerr cceess ffiicchhiieerrss


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

  Pour l'installer, vous pouvez donc le recopier ou plus simplement le
  tlcharger 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.


  55..88..  AAuuttrree mmtthhooddeess


  Une autre mthode pour obtenir des caratres 8 bits :

  Dans /usr/X11R6/lib/X11/locale/iso8859-1/Compose se trouve une table
  de correspondance entre deux caractres et un rsultat ; les deux
  caractres sont mlangs 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 paramtrage prconis, rgl dans XF86Config, la fait correspondre
   la touche Arrt Dfil 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 franais, dsormais
  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 dcider d'attribuer Compose  une autre
  touche ; je vous recommande toutefois d'utiliser ScrollLock, bien
  moins utilise que les autres touches.

  NB : La touche carr/cube), peu utilise, est par dfaut assigne aux
  guillemets franais 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 dfaut, il vous suffit avant
  d'utiliser les fichiers de configuration pour XFree et linux en mode
  console de reprer la ligne mise en commentaire au dbut du fichier et
  de supprimer ce commentaire !


  66..  RRggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss eenn mmooddee tteexxttee



  66..11..  TToouutt dd''aabboorrdd


  Le huitime bit doit survivre  l'entre du noyau, assurez-vous-en
  donc avec :

  stty cs8 -istrip -parenb

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

  -NO8BIT


  66..22..  AAppppeelleerr llaa ppoolliiccee


  Charger une police de caractres adaptes :

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


    xxx repsente 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
     caractres tendus (voyelles accentus, symboles de ponctuation
     comme paragraphe... )


    NNN reprsente la taille individuelle de chaque caractre ; 08 est
     presque illisible mais 16 est un peu gros...  rgler selon les
     gots de chacun.


  66..33..  UUnnee ppoolliiccee,, ddeess ppoolliicceess......


  De nous jours, une nouvelle norme latin0 (iso-8859-15) vient
  d'apparatre, destine  remplacer l'ensemble des polices europennes
  par une seule.

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

  Elle apporte notamment des caractres qui manquaient beaucoup pour les
  franais et les finlandais :


    e dans l'o en majuscule et minuscule pour les franais, 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 europens

  Cette nouvelle norme, iso-8859-15 latin9 aussi connue sous le nom
  gnrique latin0, reste cependant encore trs peu rpendue par rapport
   la norme actuelle iso-8859-1 latin1.

  Pour l'utiliser, vous devez tlcharger 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 caractres latin9

  En attendant, ric Dubreuil (ericdub  club-internet.fr) nous
  conseille la police lat1u-16.psf, permettant d'avoir tous les
  caractres accentues sans pour autant enlaidir mc, un gestionnaire de
  fichier trs populaire mais trs sensible  la police utilise !

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

  Citons quand mme yuedit et le projet 9 (9term, 9wm...) qui
  utilisent l'unicode sous X, avec plus ou moins de succs.

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

  Mais, hlas!, aussi grande que soit la mmoire des cartes vidos
  actuelles, elle ne peut charger l'intgralit des caractres d'une
  police unicode.

  Il existe donc des jeux de caractres limits 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





  66..44..  LLeess mmeessssaaggeess eenn ffrraannaaiiss


  Linux en 'version franaise' existe... mais ne semble pas facile 
  obtenir.

  La librairie locale(7) utilise par la librairie C se sert de
  variables d'environnement pour dfinir les prfrences linguistiques
  et nationales


    LC_COLLATE  quivalence de caractres pour les comparaisons.  (ex:
      peut tre quivalent  ae)

    LC_CTYPE    caractres affichables

    LC_MONETARY monnaie utilise

    LC_MESSAGES langue des messages

    LC_TIME     format de la date

    LC_ALL      valeur par dfaut des variables prcedentes

    LANG        surpasse les variables prcdentes.

  Les valeurs utilisables pour le franais sont:


    fr franais gnrique

    fr_FR franais de France

    fr_BE franais de Belgique

    fr_CH franais de Suisse

    fr_LU franais du Luxembourg

    fr_CA franais du Canada

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



          export LANG=fr




  Les donnes correspondantes aux prfrences se trouvent gnralement
  dans /usr/share/locale. S'ils manquent, vous pouvez rcuperer leur
  source sur ftp://dkuug.dk/i18n/WG15-collection

  Pour se faire SON linux en franais il faut en pratique disposer des
  sources de la libc et d'un minimum de comptences (langage C).

  Voici donc, pour la bonne bouche, quelques renseignements collects...

  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 dfaut dans /usr/lib/locale, et a
  contient de quoi prciser 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 dtails. 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 gre un fichier qui
  est dans /etc/locale/.  (NDG : De nos jours, ils se trouvent plutt
  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 rgles franaises, l il faut aller dans les sources de
  libc/locale et dans chacun des sous-rpertoires jeter un oeil sur le
  fichier exemple, le modifier pour le franais (c'est des tout petits
  fichiers), et faire 'make', avant de copier le rsultat dans
  /usr/lib/local/fr/ et de faire un 'export LC_ALL=fr'.  

  Autre astuce pour mnager les vieux logiciels :

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

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


    Les pages de manuel en franais (archive man-fr-*) adaptes par C.
     Blaess. Il suffit d'extraire le contenu de l'archive dans le
     rpertoire /usr/man/fr.

    Une intressante documentation technique : locale.fr (P. D'Cruze,
     adapte par . Dumas)

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


  66..55..  LLeess vvaarriiaabblleess


  Ces variables doivent tre exportes  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
       # caractres 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 cits dont le nom commence par
  . doivent se trouver dans votre rpertoire maison !


  66..66..  LLeess ccaarraaccttrreess 88 bbiittss ddaannss lleess pprrooggrraammmmeess uuttiilliissaanntt rreeaaddlliinnee
  tteellss bbaasshh oouu nnccffttpp......


  Readline est une librairie de saisie de caractres avec historique et
  completion ; elle est utilise par de nombreux programmes (bash,
  ncftp, gnuplot...).

  Par dfaut, le 8 me bit sert  coder la touche Meta.

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

  Si vous souhaitez voir et saisir des accents avec les applications
  complies avec readline, comme bash pour les versions suprieures 
  1.13, ajoutez ceci dans votre fichier $INPUTRC (par dfaut ~/.inputrc)
  :



       # Permettre de rentrer & recevoir des caractres accentus
       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 caractres vers l'avant avec Delete
  et vers l'arrire avec Backspace, ceci n'tant pas prvu sur les
  tables de clavier par dfaut mimant le comportement d'un clavier de
  console VT100 .

  Les deux dernires options vous permettront d'utiliser Home et End
  pour aller au dbut 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 grce  ce fichier ; pour obtenir le code
  d'une touche invoquer cat puis appuyer sur la touche : son code
  apparat.

  Le code physique :



        ^[





  correspond  la squence 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, grce  la variable d'environnement INPUTRC, utiliser
  un fichier commun  tous les utilisateurs.

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












































  # ~/.bashrc : execut par bash(1) pour les shells lancs aprs 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, prsenter des
  diffrences pour afficher par exemple une citation en laant le
  programme fortune.


  66..77..  zzsshh

  Celui-ci se contente d'un stty pass8.


  66..88..  ttccsshh


  Pour tcsh, placer, dans le fichier /etc/csh.login (ou dans les
  fichiers .tcshrc des utilisateurs concerns) les variables indiques
  plus haut en remplaant 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





  66..99..  PPoouurr ttoouuss lleess sshheellllss


  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" plutt 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 utilises,
  sinon tcsh agit en iso_8859_1, quelle que soit les valeurs donnes 
  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





  66..1100..  LL''hheeuurree


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

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

  Aprs avoir regard sur la pendule la plus proche de vous, tapez :

  clock

  puis

  date

  La premire heure est celle du bios, la seconde celle calcule par
  Linux  partir de /etc/zoneconfig.

  Pour peu que vous ayez install timezone, votre machine peut jongler
  aisment entre les diffrents fuseaux horaires... ce que les DOS ou
  Windows ne permettent pas !

  b) L'heure du choix !

  De l, deux possibilites : soit vous dcidez de laisser l'heure
  systme  l'heure locale (peu pratique, except si vous hbergez aussi
  sur votre disque dur ces systmes d'exploitation peu volu, ne
  sachant mme 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 rglage

  Pour procder, regardez d'abord si l'heure systme retourne 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 rglage
  du fuseau.


    Pour les franais, 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 dcisions futures de la cour europenne, l'heure d't
  (daylight savings) risque d'tre abandonn...  ce qui compliquera
  cette explication !


    Pour les canadiens franais :

  Vous tes dans une zone horaire GMT-4 si vous habitez autour de
  Montral .

  Pour les autres provinces, consulter un dictionnaire !

  Premirement, 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).

  Ds lors, clock et date doivent vous retourner la mme heure...



    Pour les canadiens franais : utilisez GMT+4


    Pour les franais, belges wallons et suisses romands :

  Si vous lisez ce document en t, le dcalage 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
  rgler le systme : tapez :

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

  clock

  date

  L'heure calcule correspond donc  l'heure de Greenwich, l'heure
  systme  l'heure locale... soit l'inverse de ce que l'on veut.

  Un simple : clock -w

  Va alors mettre l'heure du systme en heure de Greenwich, utilisant
  pour cel l'heure locale inverse volontairement avec l'heure systme.

  d) Rgler le fuseau horaire :

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

  Et voil ! Le systme 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, procdez de mme en remplaant les -2
  par X, X reprsentant l'oppos de votre dcalage horaire (par
  exemple -4 au Qubec, 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

  Trs simple et trs utile : plus besoin de se souvenir du dcalage
  horaire (plus ou moins X heures) puisque Linux se charge dsormais de
  tout !


  66..1111..  vvii


  Normalement, aucune modification n'est ncessaire  part l'utilisation
  de loadkyes (dtaille 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 csure automatique de la ligne  N caractres :
  set tw=79

  " Indentation (pour les programmeurs) :
  " set cindent

  " Rglages 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 aprs
  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'intrieur 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 gzipps

  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





  66..1122..  EEmmaaccss


  Voici un fichier de configuration de base pour employer les accents.
  XEmacs les accepte lui par dfaut 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++ mme 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 Makarvitch suggre 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 prdfinis
  qui ne sont pas forcement ceux qui sont en place sur le systme.

  Si vous constatez des problmes, vous devez redfinir la liste ispell-
  dictionary-alist des dictionnaires.

  Cette liste contient :

    le nom du dictionnaire

    la liste des caractres composant un mot

    la lise oppose des caractres ne composant pas un mot

    les caractres de liaison  l'interieur des mots ("-", "'"...)

    vrai ou faux si ces caractres peuvent tre prsents 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" ; franais
         "[A-Za-z--]" "[^A-Za-z--]"
         "[---']" nil ("-n") "~nroff")
        ("francais-TeX" ; franais
         "[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 norvgien
         "[A-Za-z]" "[^A-Za-z]"
         "[---'^`\"]" t nil "~nroff")
        ))

  Le dictionnaire "francais-TeX" est un lien symbolique sur "francais"
  qui permet d'ajouter une entre 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))





  66..1133..  lleessss


  /etc/profile ou les fichiers de dmarrage du shell (comme .bashrc et
  .bash_profile dans votre rpertoire 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 rpertoire maison
  : il permet d'employer les touches flches, Page_up, Page_down, Home
  et End.

  Ne pas ngliger la page de manuel de less car il peut tre intressant
  de changer la valeur de sa variable d'environnement de configuration
  ("LESS").

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


  66..1144..  llss


  Utilisez les options :



       -N --color=auto




  ou, plus simplement, dfinissez dans les fichiers de dmarrage de
  votre shell les alias suivants permettant de voir les fichiers dont le
  nom comprend des caractres 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 complte de tous les fichiers
  prsents dans le rpertoire, avec leurs attributs, leurs tailles...

  Pablo Saratxaga conseille d'utiliser --color=auto car --color=yes
  fera avoir des codes escape ansi mme 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.


  66..1155..  fflleexx


  Donnez l'option :



       -8




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


  66..1166..  eellmm


  Rajoutez ces trois lignes dans votre .elm/elmrc :



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





  66..1177..  ccooll


  Assurez-vous :

  1) qu'il a t corrig et fasse un



       setlocale(LC_CTYPE,"");




  2) de dfinir




  LC_CTYPE=ISO-8859-1




  dans l'environment.


  66..1188..  rrllooggiinn


  Utilisez l'option :



       -8





  66..1199..  jjooee


  Utiliser ftp://sunsite.unc.edu:/pub/Linux/apps/editors/joe-2.8.tar.gz
  ou plus rcent qui devraient fonctionner aprs dition du fichier de
  configuration : placer l'option -asis dans /usr/lib/joerc en premire
  colonne.


  66..2200..  TTeeXX eett LLaaTTeeXX


  Le plus simple consiste  employer GuTemberg, une distribution de
  LaTeX avec tous les dfauts rgls pour des francophones par des
  francophones !

  Mais si vous prfrez une version standard non modifie, il suffit
  d'ajouter au dbut 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 sparment 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 configurs
  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





  66..2211..  MMaannuueell


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

  Si vous utilisez une distribution RedHat ou Debian, celles-ci sont
  prsentes sur le cdrom : il suffit de les slectionner lors de
  l'installation.

  De l, deux possibilites :


    soit vous ne voulez que des manuels en franais, 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 prfrez par dfaut des manuels en franais 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 dfaut et
  se rabattra sinon sur des pages en anglais.


  66..2222..  CCoorrrreecctteeuurr oorrtthhooggrraapphhiiqquuee iissppeellll


  Vous pouvez vous le procurer sur son site original HYDRO-QUBEC :
  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 franais l'installation.


  66..2233..  LLeess ccllaavviieerrss 110055 ttoouucchheess


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

  Comment s'en servir ?

  En mode console, diter french.map et dcommenter les lignes en
  parlant !

  De mme pour french (pour Xwindow).


  66..2244..  PPGGPP



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

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

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

  Premirement, il faut se procurer pgp-international ( cause de
  problmes de patentes et de lgislation 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 rpertoire maison, dans un sous rpertoire
  .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 !


  66..2255..  IImmpprreessssiioonn eenn mmooddee aasscciiii


  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 mme genre.

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


  66..2266..  uunniiccooddee//llaattiinn//ccpp...... jjee nn''aaii ppaass ccoommpprriiss ccee ddeerrnniieerr ppaarraaggrraapphhee !!


  Voici donc plus d'explications grce  Pablo Sartxaga (srtxg 
  chanae.alphanet.ch) dans un message explicant la diffrence
  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 "thta (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 possdes les glyphes  la bonne place par rapport au codage
  de caractres 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 crer des images an ascii-art,
  un fichier par caractre (256 fichiers donc), il te suffit alors de jongler
  avec les fichiers pour les changer de place et rgnerer la fonte).
  Note cependant que le codage cp437 n'inclus pas tous les caractres de
  iso-8859-1, notamment manquent quasi toutes les majuscules accentues, et
  les lettres  necessaires en portguais. Tu peux toujours modifier la fonte
  pour crer ces caractres 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 utilise.

   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 ds lors que tu charges une fonte t uest suppose 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 dfaut 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 dfaut 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 auprs 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" plutt que "def", ils font _presque_ la mme
  chose, mais "cp437" est visuellement plus agreable car il remplace les
  caractres non prsents dans la fonte par les lettres non accentues 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 caractres 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 caractres
   gauche  cause des caractres de largeur nulle :)

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




  Lire aussi les articles de news : "FAQ - les accents franais 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 .


  66..2277..  nnccuurrsseess


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


  66..2277..11..  IInnttrroodduuccttiioonn


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

  La version standard de curses utilise le huitime  bit  pour la vido
  inversee  (voir  le  flag  _STANDOUT  dfini dans
  /usr/include/curses.h).  Cependant, ncurses semble  fonctionner en
  8-bits et affiche le iso-latin-8859-1 correctement.


  66..2277..22..  LLeess aacccceennttss


  Alors Denis BRAUSSEN (PostOffice  mail.dotcom.fr) rpond  cette
  question :

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

  Remarque: les distrib LinuX sont livres en gnral avec la version
  1.9.9e de ncurses, or il se trouve que la librairie form de cette
  version est BUGGE (problmes de rafraichissement des fentres).

  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 livre
  sur la plupart des distributions (RedHat 4.2, 5.0, 5.1, SlackWare 3.2,
  Debian 1.9) en tout cas.

  Symptme : 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 installes !).

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


    rcupererer :

    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 rpertoire /usr/share/locale les fichiers fr_FR et
     en_DK (qui est inclus dans fr_FR)

    crer le rpertoire /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 crera l'entre fr dans /usr/share/locale soit :



               /usr/share/locale/fr





  Ce rpertoire 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
     franaise a t faite par ric DUMAS (hlas ce doc ne traite
     principalement que de LC_MESSAGES.  quand la suite ric ? ;-) )

    complter ventuellement l'intitialisation des variables du shell
     comme dcrit dans la section sur bash ou tcsh

    dans un programme, utilisez la fonction  setlocale() (man
     setlocale.3) pour fixer les paramtres 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.


  66..2288..  DDiivveerrss


  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 thme de l'ISO-8859-1 et sur comment
  manipuler les caractres 8-bits est disponible sur
   ftp://grasp.insa-lyon.fr/pub/faq/fr/accents

  Pour perl, si tout d'un coup aprs 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 dfinition des locales a
  (encore) chang : il faut les rgnrer  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





  77..  RRggllaaggee dduu ccllaavviieerr ppoouurr lleess aapppplliiccaattiioonnss XX

  77..11..  LLeess xxtteerrmmiinnaauuxx ((xxtteerrmm,, nnxxtteerrmm,, rrxxvvtt......))


  Les faire fonctionner avec toutes les touches standard du clavier 102
  touches relve 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
  bnficer 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 rsoudre tous les
  problmes de rxvt et de xterm ...

  Pour les rsoudre sans crer 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 mme le pav numrique, fonctionnant comme en mode
  console, i.e.  Shift-Page_up permettant de faire dfiler une page,
  voire mieux : le pav numrique reconnaissant enfin la diffrence
  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 paralllement 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





  77..22..  LLeess aapppplliiccaattiioonnss MMoottiiff


  L, je n'ai malheureusement aucun remde miracle !

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


  77..33..  LLee mmaannuueell


  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 


  77..44..  NNuummLLoocckk


  Frdric Petit nous dit que j'ai dcouvert que si l'on met
  ServerNumLock dans la section keyboard de XF86Config, a marche trs
  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 numrique et la led
  correspondante est allume ...


  77..55..  XXDDMM


  Frdric Petit nous conseille d'utiliser ce /etc/X11/xdm/Xresources
  afin de ne rencontrer aucun problme avec nos touches spciales
  (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()





  88..  RReemmeerrcciieemmeennttss


  Ce document ne serait pas ce qu'il est sans l'aide de Nat Makarvitch
  (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 alphabtique ces contribueurs :

  Jean-Michel Antoine
  Michel Billaud
  Stephane Bortzmeyer
  Rmy 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 mme 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 intgrer dans les prochaines versions !

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


  99..  FFiicchhiieerrss iinncclluuss ddaannss ccee HHOOWWTTOO


  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 franais, sans le comparer  un
  // clavier amricain par dfaut : on y gagne plus de flexibilit, ce
  // modle devient plus personalisable ...

  // Les touches , , ,  & , prsentes en mode minuscule (i.e. sans shift)
  // ne sont pas disponibles en mode majuscule car elles sont respectivement
  // remplaces par 2, 7, 9, 0 & % .
  // Pour obtenir les majuscules accentues , , ,  & , vous pouvez soit
  // utiliser AltGr + Shift (minuscule accentue), soit utiliser les accent
  // dits "morts", i.e. fonctionnant comme l'accent circonflexe & le trma .
  // Sont disponibles :  AltGr (1) : accent aig, AltGr (7) : accent grave,
  // AltGr (^) : cdille ; pour s'en servir, procder comme avec l'accent
  // circonflexe & le trma : ex : AltGr (1) + e :  ; AltGr (1) + e :  ...
  // La tilde (~) n'tant pas employe sur des lettres en franais, elle reste
  // en AltGr (2) une touche normale .
  // Une tilde "morte" (avec la cdille "morte") est toutefois disponibles sur la
  // touche accent circonflexe & trma 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 &  trma :
  // AltGr (voyelle) : voyelle-minuscule  accent circonflexe
  // AltGr + Shift (voyelle) : voyelle-minuscule  trma
  // AltGr (en dessous de la voyelle) : voyelle-majuscule  accent circonflexe
  // AltGr + Shift (en dessous de la voyelle) : voyelle majuscule  trma

  // Plusieurs lettres trangres, utilises comme signes mathmatiques ou
  // physiques, abbrviations (...) ont t rajoutes en AltGr :
  // T->Phi;, r->(TM), y->yen, c-> et , f->seora, m->seor,
  // 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'accder en mieux  toutes ces touches,
  // mailez moi !
  // Vtre 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 possibilites pour cette touche "au carr" () :
  // * un mode mathmatique o elle renvoie "au carr" en mode normal, "au cube"
  // si elle est Shifte 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 littraire est donc propos par dfault, pour disposer des
  // guillemets franais  &  ; 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 supplmentaires sur un clavier "Windows95"

  // / (carr/cube) par dfaut puisqu'on a mis les guillemets franais !
  //    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 dfinitions de alt & control (keycode) ne sont qu'optionelles ; n'ont
  # donc t redfinis alt (nombre) et atl + shift (nombre) pour inverser le
  # comportement par dfaut : touche = signe ; touche + shift = nombre, or ici
  # alt touche = Meta_nombre ; alt + shift touche = Meta_signe
  #
  # Shift (pav numrique) pour taper de l'hxadcimal !
  # control alt suppr : rebooter
  # control altgr suppr : arrter
  #
  # 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 littraire + 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

  # Trs 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 =

  # Fentre gauche = Alt puisque d'habitude c'est la position d'Alt !
  keycode 125 = Alt

  # Fentre droite = AltGr puisque d'habitude c'est la position d'AltGr !
  keycode 126 = AltGr

  # Menu = compose (mlanger 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 caractres
  # latin1 comme le copyright, le yen (...) qu'il me les envoie !





































