ดูโปรแกรมมาตรฐานเก่าๆในระบบ X วินโดว์อีกครั้ง
www.tanabutr.co.th/photobook
"ไม่มีคำว่าสายสำหรับการเริ่มต้น"
จะว่าผมล้าสมัยก็ได้, วันนี้เพิ่งดูอย่างจริงจังว่าหลังจากที่ X ใช้ Xft/fontconfig (ซึ่งก็นานแล้ว) มีตัวเลือกเกี่ยวกับฟอนต์ -fa เพิ่มขึ้นมาสำหรับโปรแกรมมาตรฐานในระบบ X วินโดว์. คือปรกติใช้แต่ -fn แล้วระบุชื่อฟอนต์แบบ XLFD ซึ่งเข้าใจยากเช่น
$ xfd -fn -nectec-fixed-bold-r-normal--18-180-72-72-c-90-tis620-0
ตรงนี้ก็มีทางหนีทีไล่คือไปสร้างไฟล์ fonts.alias เขียนชื่อสั้นเป็นนามแฝงให้กับชื่อฟอนต์แบบ XLFD. ถ้าใช้ตัวเลือก -fa จะเป็นการระบุฟอนต์แบบ fontconfig คือชื่อตามที่แสดงด้วยคำสั่ง fc-list.
$ fc-list Luxi Serif:style=Regular LucidaBright:style=Italic Utopia:style=Bold Italic Nimbus Sans L:style=Regular Italic ...
คราวนี้เอาชื่อฟอนต์สไตล์ fontconfig มาใช้เช่น
$ xfd -fa TlwgMono & $ xfd -fa TlwgMono:style=Bold & $ xfd -fa TlwgMono-10 & ( หรือ xfd -fa TlwgMono:size=10 )
นอกจากโปรแกรมมาตรฐาน X วินโดว์ xfd แล้วเท่าที่รู้มี xterm ใช้ตัวเลือก -fa ได้ (เคยเห็นในบล็อกของพี่ฮุ้ย). แล้วจะรู้ได้ยังไงว่าโปรแกรมไหน (อาจจะ) ใช้ตัวเลือก -fa ได้ก็ใช้คำสั่ง ldd ซึ่งเอาไว้ดูว่าโปรแกรมใช้แชร์ไลบรารี (shared library) อะไรบ้าง. ถ้ามี libXft* อยู่ก็น่าจะใช้ตัวเลือก -fa ได้ด้วย. อันนี้ผมหมายถึงโปรแกรมมาตรฐาน X วินโดว์เก่าๆนะ.
$ ldd `which xfd` | grep Xft
libXft.so.2 => /usr/lib/libXft.so.2 (0x40040000)
$ ldd `which xedit` | grep Xft (ใช้ตัวเลือก -fa ไม่ได้)
เลยทำการสำรวจโปรแกรมที่อยู่ใน /usr/X11R6/bin ทั้งหมดซะเลย
$ for i in /usr/X11R6/bin/*; do if (ldd $i | grep Xft > /dev/null); then echo $i; fi; done ldd: error: you do not have read permission for `/usr/X11R6/bin/X' ldd: error: you do not have read permission for `/usr/X11R6/bin/Xorg' ldd: /usr/X11R6/bin/lesstif: No such file or directory /usr/X11R6/bin/x11perf /usr/X11R6/bin/xclock /usr/X11R6/bin/xditview /usr/X11R6/bin/xfd /usr/X11R6/bin/xlogo
สรุปว่ามีไม่กี่โปรแกรมที่ใช้ libXft* และรู้สึกจะมีแค่โปรแกรม xfd ที่ใช้ตัวเลือก -fa เท่านั้น. ส่วนพวก xclock เลือกฟอนต์ (-face) ตอนที่แสดงเป็นนาฬิกาดิจิตอล. xlogo ไม่เห็นมีให้เลือกฟอนต์แต่ใช้ Xft ? ขึ้เกียจคิดต่อว่ามันเอาไปใช้ตรงไหน.
