วันนี้มีพี่คนหนึ่งมาปรึกษาเรื่องภาษาไทยบน Linux ก็ถามสองสามข้อ และหนึ่งในนั้นก็คือเรื่องการใช้ Caplock เขาบอกว่ามีบริษัทคอมพิวเตอร์รายหนึ่งติดตั้ง Linux ลงไปด้วยเมื่อมีการตรวจรับพบว่าเมื่อใช้แป้นพิมพ์ภาษาไทย เมื่อกด Caplock (ยกแคร่) มันกลับไม่พิมพ์แถวบนให้ก็เลย Comment มาว่าเจ้าหน้าต่างบ้านนั้นมันทำได้นะ ฮาเลยครับพี่น้อง ผมก็ใช้มานมนานไม่ได้สนใจสักเท่าไหร่เพราะเหตุการยกแคร่แล้วพิมพ์ไทยแถวบนมันไม่เกิดกับผมเลย ก็ทำให้พาลสงสัยไปว่าคนใช้เขาใช้กันแบบไหน แต่ไหนๆ ก็ถูกถามมาแล้วก็เลยไปไล่ๆ ดูถ้าใครใช้แบบพิศดารก็ลองแก้ๆ ดูครับ
file /etc/X11/xkb/symbols/th แล้วแทรกบรรทัด
key <CAPS> { [ Shift_Lock ] };
ถ้าใช้ปัตโชติ หรือ สมอ. 2538 ก็ใส่ให้ถูก block แค่นี้ก็ใช้ Caplock ยกแคร่แถวบนได้แล้ว เฮ้อ แต่ก็ยังงงๆ ว่าใครจะใช้เน้อ!!
Comments
ShiftLock
ถ้าจะเพิ่มบรรทัดนั้น ใช้ XkbOptions "caps:shiftlock" ก็ได้
แต่เท่าที่ลองบน debian sid (xorg 7.3) มันไม่ได้ผลทั้งคู่แฮะ แต่ผมทดสอบโดยสั่ง setxkbmap เอานะ ยังไม่ได้ลอง restart X เพราเปิดงานไว้เต็มจอเลย :P
อีกวิธีหนึ่งที่เป็นไปได้คือ เพิ่มบรรทัดนี้ที่ต้น block ของ xkb_symbols:
เป็นวิธีที่ XKB ออกแบบไว้สำหรับระบุพฤติกรรมของปุ่ม ว่าให้ CapsLock มีผลกับปุ่ม
แต่ผมว่า CapsLock มันเอาไว้ "lock capital" ของภาษาอังกฤษ ซึ่งปุ่มนี้ในคีย์บอร์ดภาษาอังกฤษเอง ก็ไม่มีผลกับปุ่มที่ไม่ใช่พยัญชนะ เช่น ตัวเลข เครื่องหมายพิเศษ การที่กำหนดให้มีผลกับทุกปุ่ม อาจเป็นการเปลี่ยนหน้าที่ของ CapsLock ให้กลายเป็น ShiftLock (ซึ่งอาจเป็นสิ่งที่ผู้ใช้ต้องการก็ได้ เหมือนที่ผมเองก็ config ให้ CapsLock เป็น Ctrl ถ้าสามารถใช้วิธีกำหนด XkbOptions ได้ก็ลงตัว)
เทพ.