XFree86 هو أحد التنفيذات المتوفرة مجاناً لمعايير إكس للنوافذ وهو أكثرها شيواً. كتب XFree86 بفرض أن اللغات اللاتينية وحدها ستستعمل فيه. هذا يعني أن موائمة التطبيقات في العالم متعدد اللغات هو عائق جديد وتعقيد إضافي. وربما كان الأفضل أن نلقيه بعيداً ونبدأ من الصفر ولكن عليا أن تعامل مع الواقع الحالي أولاً ;)
لسوء الحظ، XFree86 لا يأتي مع خطوط عربية كاملة. في الحقيقة، يضم مخزن(مجازاً) XFree86 طقم خطوط عربية كاملة ولكنها تحذف عند التثبيت لأسباب تتعلق تحسن أداء الذاكرة. كل هذا الحديث كان عن خطوط الخارطة النقطية bitmap fonts [6] أما بالنسبة للخطوط العربية من نوع TrueType فإن XFree86 لا يحتوي أياً منها.
لمعرفة الخطوط المثبتة والمتوفرة حالياً في نظامك:
$ xlsfonts | more
|
قم بتنزيل الخطوط من هذا الرابط: 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
|
حتى تتمكن من استعمال TTF (أي TrueType Fonts) يجب أن تملك خادم خطوط إكس يدعم هذه الخطوط.بدءاً من XFree86 4.x ، الذي يمكنه دعم هذه الخطوط بشكل طبيعي(دون خادم خطوط إضافي). هناك خادما خطوط شائعا هما: xfsو xfstt. الفرق الرئيسي بينهما هو أن xfs يدعم الخطوط من النوع الأول (التي تسمى خطوط PostScript من Adobe).
يمكنك تنزيل خطوط TTF عربية قسم الخطوط في الموقع: http://old.arabeyes.org/resources.php
لتعرف فيما إذا كان xfs يعمل قم بما يلي:
$ ps -waux | grep xfs
|
إذا لم يكن يعمل، تأكد من تشغيله قبل إعادة تشغيل إكس.
$ xfs -droppriv -daemon
|
ستحتاج لإضافة السطر التالي إلى ملف /etc/X11/XF86Config-4 (تحت بند 'FontPath'):
FontPath "unix/:7100" |
لعمل دليل خطوط نفذ الأوامر التالية من داخل ذلك الدليل:
$ ttmkfdir -o fonts.scale ; mkfontdir
|
انظر هل يعلم خادم xfs عن دليلنا الجديد /etc/X11/fs/config. تجدها مكتوبة تحت بند 'catalogue' ، حيث تفصل بين الأدلة المختلفة فواصل .
المكان الذي يحتفظ به خادم xfstt بالخطوط يختلف من توزيعة لأخرى . على سبيل المثال، في ديبيان /usr/share/fonts/truetype/ . ضع خطوطك هناك ليعرف عنها.
تقوم بتحديث القائمة بكتابة:
$ xfstt --sync $ xfstt & |
حتى يرى XFree86 خطوط التي يوفرها خادم xfstt يجب إضافة السطر التالي إلى ملف /etc/X11/XF86Config-4:
FontPath "unix/:7101"[7] |
خطوط 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/
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' .
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' .
هناك برنامجان يجب أن تعرفهما:
xmodmap: يغير خارطة المفاتيح في إكس وهي طريقة قديمة غير مفضلة.
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 |