ปุ่มมหัศจรรย์ และวันของผม

Mon 1 Jan 0001
ใช้เวลาอ่าน 1 นาที

เรื่องราวการสนทนากันใน Web Board ของ OpenTLE.Org ที่แสดงความคิดเห็นกันอย่างเข้มข้นเต็มไปด้วยแง่คิดและสาระ มีทั้งคนที่เข้าใจ และ ไม่เข้าใจ เลยต้องมานั่งเขียน Blog หัวข้อแปลก ๆ แบบนี้ จริง ๆ แล้วเรื่องปุ่มสลับภาษานี้มีบทบาทสำคัญอย่างยิ่งแบบที่ใครหลายคนคาดไม่ถึง… รวมทั้งตัวผมเอง คาดไม่ถึงไม่ได้หมายถึงไม่เข้าใจความต้องการนะครับก็เข้าใจเพราะผมเองก็เคยใช้ Windows มาเหมือนกันเคยใช้ปุ่ม Grave ในการสลับภาษา เคยผ่านยุคที่ต้องเปลี่ยนมาใช้ Alt + Shift ก็มีบ้างตอนนั้นที่กดผิดกดถูก จนในที่สุดผมก็สามารถผ่านพ้นมาได้ด้วยดีจนในทุกวันนี้ปุ่มที่ใช้ในการเปลี่ยนภาษาของผมคือ Alt_R คือการกดปุ่ม Alt_R ชั่วคราวเวลาจะเปลี่ยนภาษา เพราะน้อยครั้งที่จะเปลี่ยนเป็นภาษาใด ภาษาหนึ่งนาน ๆ จนมาเมื่อไม่กี่วันนี้ได้มีคนเปิดกระทู้ขึ้นมาในเว็บบอร์ด ซึ่งจริง ๆ แล้วเรื่องนี้เป็นเรื่องที่ถูกถามบ่อยที่สุดเรื่องหนึ่ง แต่ทุกครั้งผมก็ตอบว่า Alt + Shift และเรื่องราวก็จบไปทุกครั้งเพราะคนที่ถามเขาก็เข้าใจว่านี่ไม่ใช่ Windows นะ เหตุการณ์มีอยู่ว่า… อ่านที่นี่ และ ที่นี่ จนมีบางท่านยกให้เป็น มหากาพย์ Grave ไปซะนั้น ผมก็มานั่งคิดหาทางออกอีกรอบหลังจากที่เคยคิดมาหลายรอบว่าจะทำอย่างไรกับเหตุการณ์นี้ดี หลายคนก็คงคิดว่าก็ทำไปสิไม่เห็นมีอะไรเสียหาย หลายคนก็บอกว่าในเมื่อจะเปลี่ยนก็เริ่มต้นเสียตั้งแต่วันนี้ บ้างก็บอกค่อย ๆ เป็นค่อย ๆ ไปคนไทยก็เป็นแบบนี้ จนผมหยุดเรื่องนี้ไว้นานจนคิดว่ามันคงเข้ารูปเข้ารอย แต่เมื่อมีการจุดชะนวนความคิดขึ้นมาใหม่การเป็นทางเลือกก็น่าจะเป็นทางออกที่ดี แต่ไม่ได้หมายความว่าผมรณรงค์ให้ใช้ปุ่มนี้นะครับ สาเหตุที่ผมกลับมาคิดอีกรอบก็คือ ผู้ใช้ ก็คือผู้ใช้ ใช้จริง ๆ โดยไม่ได้ทำอย่างอื่นซึ่งมีจำนวนมากมายนักถ้าปุ่มปุ่มเดียวเป็นสาเหตุให้คนเข้าไม่ถึงลินุกซ์ก็น่าเสียดายเป็นอย่างยิ่ง อย่างน้อย ๆ ก็ให้ได้เข้ามาได้ใช้งาน แล้วอะไร ๆ ก็ตามมามากมายกว่านี้ วันนี้ผมก็เลยตัดสินใจทำ patch ให้กับลินุกซ์ทะเล 8.0 ซึ่งรวมไปถึง Ubuntu Edgy 6.10 ด้วยโดยมีวิธีทำดังนี้ สำหรับ Distro อื่น ๆ ก็จะคล้าย ๆ กันแต่เอา package ดังกล่าวไปลงไม่ได้นะครับ ไหน ๆ ก็ไหน ๆ แล้วผมก็คงเขียนวิธีทำไว้ให้ และย้ำว่าผมไม่ได้รณรงค์ให้ใช้แบบนี้ และผมไม่มีแผน support กรณีนี้ แต่ยินดีเป็นอย่างยิ่งถ้าวิธีของผมทำให้คนหันมาสนใจลินุกซ์มากขึ้น เพราะนั้นคือเป้าหมายสูงสุดของผม คุณจะใช้ลินุกซ์ตัวไหนผมก็ยินดี มาดูวิธีการนะครับ

วิธีการนี้ใช้กับ Xorg นะครับเพราะผมไม่ได้ทดสอบกับ XFree86

แฟ้มที่เกี่ยวข้องมีดังนี้

$XkbPATH/symbols/group 
$XkbPATH/rules /base*

โดย $XkbPATH จะขึ้นอยู่กับ Distro เท่าที่ผมทราบมีดังนี้

Ubuntu/TLE   /etc/X11/xkb
Debian/SID/Etch /usr/share/X11/xkb
FC6 /usr/share/X11/xkb

ในแฟ้ม group ให้เพิ่มบรรทัดต่อไปนี้

 


partial modifier_keys
xkb_symbols "grave_toggle" {
virtual_modifiers AltGr;
key <TLDE> {
symbols[Group1]= [ ISO_Next_Group ],
symbols[Group2]= [ ISO_Prev_Group ],
virtualMods= AltGr
};
};

หมายเหตุ: กฏการเขียนอาจเขียนได้แตกต่างจากนี้ได้อีก

ในแฟ้ม base เพิ่มบรรทัดต่อไปนี้บริเวณที่เหมาะสม

 

grp:grave_toggle      =       +group(grave_toggle)

 

ในแฟ้ม base.lst เพิ่มบรรทัดต่อไปนี้บริเวณที่เหมาะสม

 

grp:grave_toggle     Grave key changes group.

 

และ ในแฟ้ม base.xml เพิ่มบรรทัดต่อไปนี้บริเวณที่เหมาะสม

 

<option>
<configItem>
<name>grp:grave_toggle</name>
<description>Grave key changes group.</description>
</configItem>
</option>