Theppitak's blog

My personal blog.

02 พฤศจิกายน 2555

IBus LibThai

แผนการหนึ่งที่ผมคิดจะทำมานานแล้ว คือการเชื่อมต่อ LibThai เข้ากับ IBus ซึ่งเป็น input method framework แบบใหม่ที่กำลังจะมาแทนที่ระบบเดิมแทบทั้งหมด ไม่ว่าจะเป็นรุ่นเก๋ากึ๊กอย่าง XIM หรือทางลัดของ toolkit อย่าง GTK+ IM module หรือ Qt4 IM module หรือจะเป็นระบบที่ยังอายุไม่มากอย่าง SCIM หรือ uim ทั้งหมดจะค่อย ๆ ถูก IBus แทนที่ในดิสโทรต่าง ๆ เช่น สำหรับ Fedora ซึ่งเป็นต้นน้ำนั้น ก็ใช้ IBus โดยปริยายแล้ว และ Debian เองก็เตรียมจะใช้ IBus เป็นตัวหลักเช่นกัน

ทั้งนี้ การเชื่อมรวมกับ IBus ก็เป็นเป้าหมายของ GNOME มาระยะหนึ่ง และสำเร็จในรุ่น 3.6 นี้เอง

แนวโน้มแบบนี้ ทำให้ผมปรารภกับเพื่อน ๆ ในแวดวงมาตั้งแต่ปีก่อนแล้วว่าคงต้องพยายามให้มี input method ภาษาไทยใน IBus แล้วแหละ แต่ก็ชะลอมาเรื่อย ด้วยเหตุผลต่าง ๆ คือ หนึ่ง ผมมีเวลาทำงานน้อย เนื่องจากต้องสลับไปทำหลายงาน, สอง หาเอกสารของ IBus ไม่เจอ (เพิ่งเจอ Developer guide เมื่อเร็ว ๆ นี้ หลังจากที่ได้งมแกะซอร์สของ engine อื่นเป็นตัวอย่างไปเยอะแล้ว), สาม มอดูล ibus-m17n ที่ไปใช้ input method จากคลังของ m17n ก็พอใช้การได้ มีภาษาไทยมาเรียบร้อย ซึ่งผมเคยคุยกับคุณทาคาฮาชิที่ ETL ซึ่งเป็นผู้ดูแลทางเมลและร่วมทดสอบจนมันใช้การได้ สามารถแก้ลำดับการป้อนได้ด้วย (ถ้า app รองรับ) ความเร่งด่วนที่จะต้องเขียน engine ตัวใหม่ก็ลดลง

ผมทดลองใช้ IBus มาระยะหนึ่ง โดยเฉพาะตอนที่ไปเรียนภาษาจีนเมื่อต้นปี ต้องการป้อนภาษาจีน จึงเป็นตัวกระตุ้นให้ใช้ IBus เป็นหลัก แต่รู้สึกไม่พอใจกับ input method ภาษาไทยของ ibus-m17n เลย เนื่องจากมันตอบสนองช้ามากในหลาย ๆ กรณี เช่น เมื่อใช้กับเว็บที่มี Javascript หนัก ๆ อย่าง facebook หรือ Google+ อีกทั้งการพยายาม fallback ไปใช้ pre-edit string โดยอุบัติเหตุก็น่ารำคาญ เนื่องจากอักขระตัวสุดท้ายจะสูญหาย ซึ่งบั๊กนี้ดูเหมือนจะแก้ไปแล้ว แต่มันก็ยังกลับมาเป็นพัก ๆ อยู่ดี

หลังจากที่ห่างหายจากการป้อนภาษาจีนมาระยะหนึ่ง ผมจึงแอบกลับมาใช้ gtk-im-libthai ตามเดิม เพื่อความรวดเร็วของงาน จนกระทั่งถูกกระตุ้นอีกครั้งหนึ่งจากโครงการอักษรอีสาน ที่ทีมงานกำลังร่วมกันออกแบบ input method ของอักษรธรรม และเริ่มศึกษา framework ที่จะใช้สร้างต้นแบบ ซึ่งตัวเลือกอันดับต้น ๆ ก็คือ IBus นั่นเอง

นั่นแหละ ผมถึงได้กลับมาปัดฝุ่นโค้ด ibus-libthai ที่ร่างไว้ตั้งแต่ปีกลาย เอามาปรับต่อจนใช้การได้เมื่อเช้านี้เอง

ตัวโค้ด อยู่ที่ SVN ของ LTN ซึ่งสามารถ checkout มาทดสอบได้:

$ svn co http://linux.thai.net/svn/software/ibus-libthai/trunk \
  ibus-libthai

เนื่องจากมันเพิ่งจะใช้การได้เมื่อเช้านี้เอง จึงคาดหวังได้ว่าอาจยังมีปัญหาต่าง ๆ อยู่ ผมเองก็ยังทดลองใช้เองไปเรื่อย ๆ ถ้าใครกล้าใช้ และมีข้อแนะนำก็แจ้งผมได้ครับ

ป้ายกำกับ: ,

0 ความเห็น:

แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)

<< กลับหน้าแรก

hacker emblem