5. Configurer X Windows pour l'arabe

XFree86 est une implémentation X Windows qui est disponible gratuitement et qui est une des plus populaire. XFree86 est écrit en considérant que son utilisation englobera uniquement les langues utilisant le script latin. Ceci veut dire que l'adaptation de l'application au nouveau monde de l'internationalisation est lourde et complexe. Ca serait bien si l'on pouvait tout jeter et recommencer depuis le tout début, mais nous allons travailler avec ce que l'on a pour l'instant ;)

5.1. Installer les fontes

Malheureusement, XFree86 n'est pas livré avec des fontes arabes complètes. En fait, le repository XFree86 inclut bien une fonte arabe complète mais qui est tronquée durant l'installation pour des raisons d'optimisation mémoire. Ceci n'est vrai que pour les fontes bitmap. XFree86 ne contient aucune fonte arabe truetype complète.

Pour trouver quelle fontes vous avez installées sur votre système, faites:

$ xlsfonts | more
    

5.1.1. Installer les fontes bitmap

Vous pouvez télécharger la fonte complète ici: http://old.arabeyes.org/download/3rd/10x21.pcf.gz

Pour l'installer, il suffit de la copier vers un de vos répertoires de fontes (/usr/X11R6/lib/X11/fonts/misc/ par exemple):

# cd /usr/X11R6/lib/X11/fonts/misc
# mkfontdir && xset fp+ `pwd` && xset fp rehash
      

Ceci devrait rendre la fonte disponible pour vous. Pour tester si votre système XFree86 peut voir la fonte, vous pouvez faire:

$ xlsfonts | grep arabeyes
-misc-fixed-medium-r-normal--20-200-75-75-c-100-arabeyes-1
      

5.1.2. Installer les fontes truetype

Afin que vous puissiez utiliser les TTF (fontes truetype) vous devez posséder un serveur de fontes qui supporte les fontes truetype. Les XFree86 4.x peuvent supporter nativement les fontes truetype. Il existe deux serveurs populaires: xfs et xfstt. La différence principale entre les deux est que xfs supporte en plus les fontes de Type 1 (fontes postscript d'Adobe).

Vous pouvez avoir des TTF's depuis la section des fontes ici: http://old.arabeyes.org/resources.php

5.1.2.1. xfs
  1. Pour vérifier que vous êtes bien en train d'éxécuter xfs faites:

     
    $ ps -waux | grep xfs
                 

    S'il n'est pas éxécuté, assurez vous bien de le redémarrer avant de redémarrer XFree86.

    $ xfs -droppriv -daemon
                 
  2. Vous devez ajouter la ligne suivante à votre fichier /etc/X11/XF86Config-4 (où se situe l'entrée `FontPath' dans le fichier):

    FontPath  "unix/:7100"
                 
  3. Créer le répertoire des fontes en éxécutant les commandes suivantes à partir du répertoire:

    $ ttmkfdir -o fonts.scale ; mkfontdir 
                 
  4. Vérifiez que votre fichier xfs /etc/X11/fs/config connaît votre nouveau répertoire de fontes truetype. Elles devraient être listées sous la ligne `catalogue', avec les répertoires des fontes séparés par des virgules.

5.1.2.2. xfstt

L'endroit où xfstt garde les fontes truetype varie apparemment d'une distribution à l'autre. Par exemple, il se trouve dans /usr/share/fonts/truetype/ dans Debian. Vous devez mettre vos TTF's dans ce répertoire afin qu'il les trouvent.

Vous pouvez mettre à jour la liste des fontes chargées en faisant:

$ xfstt --sync
$ xfstt &
         

Afin que XFree86 sache à propos de xfstt vous devez ajouter la ligne suivante:

FontPath  "unix/:7101"[5]
         

5.1.3. Installer les fontes de type 1

Les fontes de type 1 sont celles qu'utilise ghostscript. Ceci est particulièrement important car quelques grandes applications (comme StarOffice jusqu'à récemment) ne supportaient que les fontes de type 1 et pas les fontes truetype. C'est également utile si vous utilisez TeX pour vos compostions.

L'installation des fontes de type 1 est immédiate. En se mettant dans le répertoire contenant vos fontes:

# type1inst
# cat Fontmap >> /PATH/TO/YOUR/SYSTEM-WIDE/Fontmap
      

Le chemin vers votre fichier Fontmap varie également. Par exemple, il est /usr/share/gs/6.53/Fontmap.GS dans ma distribution Debian.

Vous pouvez également convertir vos fontes truetype en fontes de type 1 (ce que vous devrez probablement faire).

$ ttf2pt1 -b fontname.ttf fontname
      

Vous pouvez avoir ttf2pt1 ici: http://quadrant.netspace.net.au/ttf2pt1/

5.1.4. Configurer l'anti-aliasing

L'anti-aliasing est ce qui rend votre fonte si belle. C'est presque comme si quelqu'un avait pris une gomme et avait adoucit les lettres avec, pour rendre les angles lisses. Ceci est réalisé à l'aide de la bibiothèque Xft, qui est désignée pour interfacer le rasterizer FreeType avec l'extension X Rendering. Elle est souvent appellée `gdkxft' ou similaire. Vérifiez dans votre distribution.

Pour configurer Xft afin qu'il fonctionne avec vous, vérifiez le fichier de configuration (/etc/X11/XftConfig) pour trouver où devrait être votre configuration personalisée (~/.xftconfig). Ajoutez-y ce qui suit:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <dir>/usr/X11R6/lib/X11/fonts/truetype</dir>
</fontconfig>
      

La majorité des applications actuellement ne sont pas livrées avec Xft fonctionnelle, même si le code source est lié à elle, les distributions binaires sont souvent laissées sans support Xft. Un bon exemple en est Mozilla. Pour la version 1.2 vous devrez compiler le code source vous même avec l'option `--enable-xft'.

5.2. Réglage des terminaux X

5.2.1. Réglage de mlterm

http://mlterm.sourceforge.net/

Mlterm a été le premier terminal X à supporter l'arabe et bidi d'une manière satisfaisante. La plupart des distributions binaires ont le support d'utf-8 et de bidi. Si la votre ne l'a pas, vous pouvez télécharger et compiler mlterm comme ceci:

$ ./configure --enable-fribidi && make && make install
      

Créez un répertoire nommé ~/.mlterm dans votre répertoire home avec deux fichiers: font et main. font doit contenir:

ISO10646_UCS2_1 = 20,-misc-fixed-medium-r-normal--20-200-75-75-c-100-arabeyes-1;
      

et main doit contenir ce qui suit:

ENCODING = utf8
fontsize = 20
      

Maintenant, une fois que vous démmarrez mlterm, vous devrez être capable de lire l'arabe sous n'importe quelle application de texte qui supporte l'UTF-8. Aussi, notez que less peut ne pas fonctionner si vous ne réglez pas la variable LESSCHARSET à `UTF-8'.

5.2.2. Réglage de iterm

Doit être complété.

5.3. Réglage des "Keymaps"

Il existe deux programmes de clés que vous devez connaître:

  1. xmodmap: modifie les keymaps et les correspondances des boutons du pointeur dans X. Ceci est l'ancienne manière de faire.

  2. setxkbmap: règle le clavier en utilisant l'extension clavier. C'est la nouvelle façon de régler le clavier (comme dans XFree86 4.x).

Dans XFree86 4.2.0 il y a déjà une carte de symboles pour le clavier arabe, qui devrait se trouver dans $X11DIR/lib/X11/xkb/symbols/ar. Si ce fichier est manquant ou que vous avez une version antérieure de XFree86 (3.3.6 particulièrement), vous pouvez utiliser cette keymap: http://old.arabeyes.org/download/3rd/arabic.xkb

Cependant, si vous possédez XFree86 4.2 ou plus récent, vous pouvez simplement permuter votre clavier en faisant:

$ setxkbmap -rules xfree86 -model pc102 -layout ar -variant nodeadkeys ar 
    

Ou vous pouvez simplement ajouter ceci à votre fichier /etc/X11/XF86Config-4 comme ceci:

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbRules" "xfree86"
        Option      "XkbModel"  "pc102"
        Option      "XkbLayout" "ar"
        Option      "XkbOptions"        "grp:ctrl_shift_toggle"
EndSection
    


[5] Notez SVP que le numéro par défaut du port variera aussi d'une distribution à l'autre.