5. إعداد إكس للعربية

XFree86 هو أحد التنفيذات المتوفرة مجاناً لمعايير إكس للنوافذ وهو أكثرها شيواً. كتب XFree86 بفرض أن اللغات اللاتينية وحدها ستستعمل فيه. هذا يعني أن موائمة التطبيقات في العالم متعدد اللغات هو عائق جديد وتعقيد إضافي. وربما كان الأفضل أن نلقيه بعيداً ونبدأ من الصفر ولكن عليا أن تعامل مع الواقع الحالي أولاً ;)

5.1. تثبيت الخطوط

لسوء الحظ، XFree86 لا يأتي مع خطوط عربية كاملة. في الحقيقة، يضم مخزن(مجازاً) XFree86 طقم خطوط عربية كاملة ولكنها تحذف عند التثبيت لأسباب تتعلق تحسن أداء الذاكرة. كل هذا الحديث كان عن خطوط الخارطة النقطية bitmap fonts [6] أما بالنسبة للخطوط العربية من نوع TrueType فإن XFree86 لا يحتوي أياً منها.

لمعرفة الخطوط المثبتة والمتوفرة حالياً في نظامك:

$ xlsfonts | more
    

5.1.1. Install Bitmap Fonts

قم بتنزيل الخطوط من هذا الرابط: http://old.arabeyes.org/download/3rd/10x21.pcf.gz

لتثبيتها ، فقط انسخها في أحد مجلدات الخطوط لديك (مثلاً /usr/X11R6/lib/X11/fonts/misc/):

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

الأوامر أعلاه تجعل من الخط متوفراً من أجلك. . لتجرب فيما إذا كان نظام إكس يستطيع رؤية هذه الخطوط اكتب :

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

5.1.2. تثبيت خطوط TrueType

حتى تتمكن من استعمال TTF (أي TrueType Fonts) يجب أن تملك خادم خطوط إكس يدعم هذه الخطوط.بدءاً من XFree86 4.x ، الذي يمكنه دعم هذه الخطوط بشكل طبيعي(دون خادم خطوط إضافي). هناك خادما خطوط شائعا هما: xfsو xfstt. الفرق الرئيسي بينهما هو أن xfs يدعم الخطوط من النوع الأول (التي تسمى خطوط PostScript من Adobe).

يمكنك تنزيل خطوط TTF عربية قسم الخطوط في الموقع: http://old.arabeyes.org/resources.php

5.1.2.1. خادم xfs
  1. لتعرف فيما إذا كان xfs يعمل قم بما يلي:

     
    $ ps -waux | grep xfs
                 

    إذا لم يكن يعمل، تأكد من تشغيله قبل إعادة تشغيل إكس.

    $ xfs -droppriv -daemon
                 
  2. ستحتاج لإضافة السطر التالي إلى ملف /etc/X11/XF86Config-4 (تحت بند 'FontPath'):

    FontPath  "unix/:7100"
                 
  3. لعمل دليل خطوط نفذ الأوامر التالية من داخل ذلك الدليل:

    $ ttmkfdir -o fonts.scale ; mkfontdir 
                 
  4. انظر هل يعلم خادم xfs عن دليلنا الجديد /etc/X11/fs/config. تجدها مكتوبة تحت بند 'catalogue' ، حيث تفصل بين الأدلة المختلفة فواصل .

5.1.2.2. خادم xfstt

المكان الذي يحتفظ به خادم xfstt بالخطوط يختلف من توزيعة لأخرى . على سبيل المثال، في ديبيان /usr/share/fonts/truetype/ . ضع خطوطك هناك ليعرف عنها.

تقوم بتحديث القائمة بكتابة:

$ xfstt --sync
$ xfstt &
         

حتى يرى XFree86 خطوط التي يوفرها خادم xfstt يجب إضافة السطر التالي إلى ملف /etc/X11/XF86Config-4:

FontPath  "unix/:7101"[7]
         

5.1.3. تثبيت خطوط من نوع Type 1

خطوط Type 1 هي الخطوط التي يستعملها ghostscript . وهي ضرورية لأن بعض البرامج الكبيرة (مثل StarOffice حتى الآن) يدعمها دون خطوط TrueType . وهي ضرورية إذا كنت تستعمل TeX .

تثبيت هذه الخطوط مباشر. في الدليل الذي يحتويها اكتب:

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

المسار لملف Fontmap قد يختلف أيضا من توزيعة لأخرى. على سبيل المثال، إنه في توزيعتي ديبيان/usr/share/gs/6.53/Fontmap.GS .

يمكن تحويل خطوط TrueType إلى خطوط Type 1 (وهذا ما ستقوم به بسبب قلة الخطوط العربية من هذا النوع).

$ ttf2pt1 -b fontname.ttf fontname
      

يمكنك الحصول علىttf2pt1 من هنا : http://quadrant.netspace.net.au/ttf2pt1/

5.1.4. إعداد الحواف الملساء Anti-aliasing

Anti-aliasing هي التي تجعل الخطوط تبدة جميلة. تقريباً وكأن أحدهم وضع اسفنجة أم ممحاة على حواف الحروف الحادة بحيث تصبح ملساء . هذا ما تححقه مكتبة Xft ، الذي صمم ليكون واجهة راسم FreeType مع امتداد تصوير إكس X Rendering Extension. عادةً ما يسمى 'gdkxft' أو ما شابه. انظر توزيعتك.

لإعداد Xft ليعمل عنك ، إما أن تفحص الإعدادات العامة للنظام برمته (/etc/X11/XftConfig) أو تلك الخاصة بك كمستخدم (~/.xftconfig) . تأكد من وضع الأسطر التالية فيه:

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

معظم البرامج لا تأتي مع تفعيل Xft ، حتى تلك التي ترتبط بها، حيث معظم الحزم الثنائية الجاهزة تترك دون دعم Xft .أفضل مثال على ذلك Mozilla. بدءاً من الإصدارة 1.2 يمكنك تصنيفه مع إضافة الخيار '--enable-xft' .

5.2. تثبيت طريفيات إكس

5.2.1. تثبيت mlterm

http://mlterm.sourceforge.net/

كان Mlterm أول طرفية تدعم العربية وثنائية الإتجاه بشكل مرضٍ. حيث معظم توزيعاته الثنائية تدعم utf-8 و ثنائية الإتجاه. إذا لم تكن توزيتك كذلك، نزل الملف المصدري وثبته كما يلي:

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

افتح مجلد باسم ~/.mlterm في دليلك البيت وضع فيه ملفين: font و main.ملف font اكتب فيه:

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

وملف main اكتب فيه:

ENCODING = utf8
fontsize = 20
      

بمجرد تشغيل mlterm ، ستكون قادراً على أن تقرأ العربية في كل البرنامج النصية التي تدعم UTF-8. يجب أن تلاحظ أن less لن يعمل ما لم تضع قيمة متغير البيئة LESSCHARSET لتكون 'UTF-8' .

5.2.2. إعداد iterm

تكمل لاحقاً.

5.3. إعداد خارطة المفاتيح في إكس

هناك برنامجان يجب أن تعرفهما:

  1. xmodmap: يغير خارطة المفاتيح في إكس وهي طريقة قديمة غير مفضلة.

  2. setxkbmap: يحدد لوحة المفاتيح في إكس عن طريق إمتداد لوحة المفاتيح لإكس "X Keyboard Extension" . وهي الطريقة الجديدة المتبعة في XFree86 4.x

بدءاً من XFree86 4.2.0 يوجد مسبقاً خارطة الرموز للوحة المفاتيح العربية، التي يفترض أن تكون موجودة في $X11DIR/lib/X11/xkb/symbols/ar. إذا كان الملف مفقوداً أو كنت تستمل إصدارة قديمة من XFree86 (خصوصاً 3.3.6) يمكنك تنزيل هذه: http://old.arabeyes.org/download/3rd/arabic.xkb

على أي حالل، إذا كان لديك XFree86 4.2 فما فوق، يمكنك تغير : لوحة المفاتيح

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

أو أضف هذا أسطراً لملف /etc/X11/XF86Config-4 كهذه:

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


[6] خطوط الخارطة النقطية bitmap fonts هي خطوط تزداد قبحاً كلما كبر حجمها ولكنها سريعة مقارنة بالخطوط الوصفية.

[7] قد يختلف الرقم من توزيعة لأخرى.