วันอาทิตย์ที่ 18 มีนาคม พ.ศ. 2550

จะสลับ keyboard layout ด้วยแป้นไหนดี?

ในบอร์ด opentle มีการถกกันเรื่องการใช้แป้น accent grave สลับภาษาในลินุกซ์ทะเลกัน มองในแง่ดี นั่นคือเริ่มมีผู้ใช้หลายคนสนใจใช้ระบบปฏิบัติการลินุกซ์กันมากขึ้น โดยเฉพาะผู้ใช้ที่ใช้วินโดวส์อยู่ในปัจจุบัน แสดงว่าผู้ใช้ลินุกซ์เริ่มขยายจำนวน สุดท้ายลงเอยด้วยการที่ทีมพัฒนา ยอมเผยแพร่วิธีการตั้งให้ลินุกซ์ทะเล 8.0 และ Ubuntu สามารถเลือกแป้นสลับภาษาเป็นแป้น accent grave ได้ โดยสามารถทำได้โดยผู้ใช้ทั่วไปเพราะมร.โชคเตรียมแพ็กเกจและเขียนอธิบายขั้นตอนไว้อย่างละเอียด และยังอธิบายแบบลึกซึ้งหน่อยเผื่อใครจะเอาไปประยุกต์ใช้กับดิสโตรอื่น

อย่างไรก็ตามทีมพัฒนายังยืนยันว่า ไม่เห็นด้วยที่จะใช้แป้น accent grave ในการสลับภาษา เนื่องจากเป็นการทำให้แป้นพิมพ์ทำงานไม่ตรงกับมาตรฐาน กล่าวคือ แป้นดังกล่าวเมื่อเป็นแป้น layout ภาษาอังกฤษจะเป็นแป้นสำหรับพิมพ์ตัว accent grave หรือ back quote (`) เมื่อเป็นแป้น layout ภาษาไทยแบบ มอก.820.2533 หรือที่รู้จักกันในชื่อ 'เกษมณี' จะเป็นแป้น under score (_) หรือ layout ภาษาไทยแบบ มอก.820.2538 ซึ่งเป็นมาตรฐานใหม่ แต่ยังไม่มีใครทำแป้นพิมพ์ที่มี layout นี้ออกมา จะเป็นตัวฟองมัน (๏) ซึ่งทีมงานให้ความสำคัญกับมาตรฐานเป็นอันดับหนึ่ง ที่ผ่านมาเมื่อมีผู้ถามเรื่องสลับภาษา เราก็จะแนะนำให้ใช้แป้น Alt-Shift หรือตั้งเป็นแป้นอื่นๆ ตามที่มีให้เลือก ส่วน grave จะใช้สลับไม่ได้โดยอธิบายเรื่องมาตรฐานไป ซี่งที่ผ่านมา มีคนถามไม่มากนัก และส่วนใหญ่ก็เป็นคนในวงการอยู่แล้ว แต่ตอนนี้สถานะการณ์เปลี่ยนไปเพราะมีผู้ใช้ใหม่ ที่ใช้วินโดวส์อยู่ประจำ เริ่มเข้ามาลองมากขึ้น ทีมงานเลยลงมติว่า ให้มีช่องทางทำให้ใช้ accent grave เป็นแป้นสลับภาษาได้ แต่ไม่กำหนดเป็นค่าปริยาย โดยในรุ่น 8.0 นี้ ใช้วิธีให้วิธีการไปก่อน ดังลิงก์ข้างบน ส่วนรุ่นหน้า คงต้องระดมความคิดเห็นอีกที เนื่องจากการทำให้สามารถใช้แป้น accent grave เป็นแป้นสลับภาษาได้ ทำให้ยังเปิดช่องให้ใช้งานผิดจากมาตรฐานได้อยู่ต่อไป

กล่าวถึงมาตรฐาน ต้องเข้าใจกันก่อนว่า มาตรฐานกำหนดแค่ layout ว่า แป้นพิมพ์ US วางอย่างไร แป้นพิมพ์ไทยวางอย่างไร แต่มิได้กำหนดว่าจะสลับ layout อย่างไร อาจจะด้วยว่า ภาษาส่วนใหญ่ ใช้ตัวอักษร latin ทำให้ไม่จำเป็นต้องมีการสลับ layout มีบางภาษาที่ต้องมีการสลับ layout ส่วนใหญ่เป็นภาษาทางเอเชีย เช่นไทย ลาว จีน ญี่ปุ่น เป็นต้น ในความคิดผม ทางที่ดีที่สุดคือ เพิ่มแป้นพิเศษสำหรับเอาไว้สลับภาษา ไม่ให้ซ้ำกับแป้นที่มีอยู่ แต่ในเมื่อแป้นพิมพ์ที่ผลิตใช้กันทั่วไปไม่มีแป้นดังกล่าว จึงจำเป็นต้องใช้แป้นที่มีอยู่

สำหรับ X Window ซึ่งเป็นระบบกราฟิกบนหลายระบบปฏิบัติการ โดยเฉพาะทาง Unix และ Unix clone เช่น Linux ได้เลือกใช้แป้นที่มีผลกระทบกับการใช้งานปกติน้อยที่สุด เช่นการใช้แป้นเดี่ยว ที่ปกติไม่ได้ใช้ เช่น right ctrl, right alt, win key, menu key แม้แต่แป้น caps lock (ยังมีใครใช้แป้นนี้พิมพ์ตัวพิมพ์ใหญ่อยู่อีกรึ?) หรือใช้แป้นร่วม เช่น shift-shift, ctrl-ctrl, ctrl-shift, alt-shift เป็นต้น แต่แป้นที่เป็นค่าปริยายที่หลายๆ ระบบเลือกใช้คือ alt-shift

สำหรับคนไทย เราเคยใช้มาแล้วหลายแป้น เช่น ESC ในเวิร์ดราชวิถี, F10 ใน CU Writer, Alt ในซอฟต์แวร์ตระกูลสหวิริยา เช่น TSM, แป้น accent grave ในซอฟต์แวร์ของ IRC เช่น Thai Pro ซึ่งต่อมา IRC เป็นผู้ที่ได้ทำระบบภาษาไทยให้กับ Windows 3.x อย่างเป็นทางการ จึงได้นำวิธีการสลับ keyboard layout แบบของตนมาใช้ด้วย และกลายเป็น de facto ที่สืบทอดมาจนถึง Windows รุ่นปัจจุบัน อันที่จริง มันเคยหายไปตอน Windows 2000 คงเพราะเป็นรุ่นแรกๆ ที่ก้าวสู่ระบบปฏิบัติการที่เป็น Internationalization คือรวมทุกภาษาไว้ในชุดติดตั้งเดียวกัน ไม่ใช่การ localize เป็นภาษาๆ ไปเหมือนรุ่นก่อนๆ

สารภาพว่าตอนนั้นภาวนาให้การสลับแป้นด้วย accent grave หายไปจริงๆ เพราะก่อนนั้น สมัยที่เรียน ผมและหลายคนต้องปิดการใช้ accent grave เป็นแป้นสลับภาษา หันไปใช้ alt-shift แทน เพราะในการเรียนเขียนโปรแกรมและระบบยูนิกซ์ มันต้องใช้แป้นนี้ทั้งนั้น และใช้บ่อยด้วย ถ้า Windows เลิกใช้ accent grave ทั้ง Windows และ X Window จะใช้แป้นสลับ keyboard layout โดยปริยายเป็นแป้นเดียวกันคือ alt-shift ซึ่งถ้าตอนนั้น MS ใจแข็งหน่อย บังคับให้ใช้ alt-shift สลับภาษาเท่านั้น คนไทยที่ใช้ Windows ก็จะเจ็บจิ๊ดเดียว เมื่อฝึกการสลับภาษาแบบใหม่ แต่คงเพราะ MS เอาใจลูกค้าไม่อยากให้เจ็บแม้แต่จิ๊ดเดียว มากกว่ายึดมาตรฐาน ก็เลยยังให้ผู้ใช้เลือกใช้ accent grave ได้เหมือนเดิม อันนี้เชื่อว่าไม่ใช่เพราะ MS ต้องการสะกดลูกค้าไม่ให้หันไปใช้ระบบอื่นแต่อย่างใด

กลับเข้าสู่คำถาม "เราจะสลับ keyboard layout ด้วยแป้นไหนดี?"
แน่นอน ตัด ESC ทิ้งได้เลย ส่วน F10 ก็ถูกใช้เป็นแป้นสำคัญในซอฟต์แวร์หลายตัวไปแล้ว accent grave นั้นอันที่จริงก็เป็นแป้นที่ไม่ควรใช้เช่นกัน เพราะจะพิมพ์สัญลักษณ์ `แบบนี้' ไม่สะดวกเป็นแน่แท้ แต่คนไทยที่เป็นลูกค้า MS อยู่ ถูกฝึกให้ไม่ใช้สัญลักษณ์ back quote จนชิน จนกลายเป็นอักษรที่คนไทยไม่ได้ใช้ไปเสีย แต่เป็นอักษรที่เลี่ยงไม่ได้สำหรับ programmer หลายๆ ภาษา อาจจะรวมไปถึง *nix admin ด้วย ที่จะเลี่ยงไม่ใช้ accent grave สลับภาษา แต่ programmer กับ admin เป็นชนกลุ่มน้อยของไทย ชนกลุ่มใหญ่คือผู้ใช้ที่ไม่รู้จักปุ่ม back quote หรือ accent grave เสียแล้ว

ในความคิดของผมเอง ย้ำว่าเป็นความคิดของผมคนเดียว ซึ่งพยายามคิดเรื่องนี้ให้ตกผลึกเหมือนกัน ในตอนแรก ผม say no สำหรับการใช้ accent grave เป็นแป้นสลับภาษาโดยเด็ดขาด แต่ในขณะเดียวกัน ผมก็มีแนวคิดว่าแป้นสลับภาษาไม่ควรถูกบังคับให้ใช้วิธีเดียว แม้ว่าการใช้ alt-shift จะกลายเป็น de facto standard ไปแล้ว แต่ควรให้มีทางเลือกอื่นๆ ให้ผู้ใช้ด้วย เช่น ผู้ที่พิมพ์แบบจิ้มดีด จะไม่ยอมรับการกดแป้นร่วม 2 แป้นเพื่อสลับภาษา และแป้นพิมพ์พิเศษบางระบบ ได้เตรียมแป้นสลับภาษาไว้ด้วย เช่นแป้นพิมพ์ของแล็ปท็อป OLPC

ส่วนการกด alt-shift แม้ว่าจะเหมาะกับคนที่พิมพ์สัมผัส แต่ก็ใช่ว่าจะไม่มีข้อเสียเลย ปัญหาที่พบเองเพียงประการเดียวคือ การใช้แป้น alt-tab ในการสลับวินโดวต่างๆ จะกดวนได้ทางเดียว ไม่สามารถกด alt-shift-tab เพื่อวนกลับได้ ซึ่งทำให้รำคาญนิดหน่อย เพราะถ้ากด alt-tab วนเลยไอคอนของวินโดวที่ต้องการ จะไม่สามารถวนกลับได้ นอกจากนี้ ก็มีผู้ยกประเด็นการกดแป้น alt, ctrl และ shift ในการเล่นเกม ซึ่งตัวอย่างที่ยกมาคือเกม supertux คือถ้ากด shift เพื่อก้ม กับ alt เพื่อยิง มันก็ยิงได้ตามปกติ แต่แป้นพิมพ์จะสลับภาษาไปด้วย อันนี้ก็ทำให้ รำคาญนิดหน่อยเช่นกัน ที่จริงปัญหาสองเรื่องนี้ ควรจะมีทางออก

ทีนี้เมื่อคิดไปคิดมา จึงคิดตกว่า ผู้ใช้อยากใช้ accent grave ก็ช่างเค้าเถอะ แต่เราก็ต้องบอกเค้าว่าไม่ควรใช้ อาจจะต้องยกตัวอย่างว่า เค้าจะเสียประโยชน์อะไรบ้าง และได้แต่หวังว่า ต่อไปการใช้ accent grave ในการสลับ keyboard layout จะค่อยๆ หายไป

ในฐานะที่เข้าร่วมทีมพัฒนาลินุกซ์ทะเลตั้งแต่รุ่น 4.1 เป็นต้นมา ขอตอบในส่วนของปุ่ม `grave' นะครับ

  • แป้นสลับภาษาโดยปริยาย ของลินุกซ์ทะเลคือ alt-shift ซึ่งผู้ใช้สามารถเปลี่ยนเป็นแป้นอื่นๆ ได้อีกหลายแป้น เช่นแป้น Win, แป้น right Alt แป้น right Ctrl ซึ่ง เป็นแป้นที่ไม่มีความจำเป็นในการใช้งาน หรือกดผสมกันเช่น shift-shift หรือ ctrl-ctrl หรืออื่นๆ อีกหลายวิธี แต่ไม่ควรใช้แป้น grave เป็นตัวเปลี่ยนภาษา เนื่องจากเป็นแป้นที่มีหน้าที่อื่นอยู่แล้ว และไม่สามารถใช้แป้นอื่นแทนได้ คือการพิมพ์อักษร ` ~ ๏ ๛ ตามมาตรฐาน TIS-820.2538

  • ในทางเทคนิคสามารถตั้งให้ใช้ grave ได้แน่นอนครับ แต่จะไม่ถูกตั้งเป็นค่าปริยายของลินุกซ์ทะเล เนื่องจากจะเป็นการไม่ทำตามมาตรฐาน คือเมื่อใช้ grave เป็นแป้นสลับภาษา จะทำให้การใช้แป้นนี้พิมพ์อย่างน้อย 2 ตัวดังที่กล่าวไปแล้วทำไม่ได้ ซึ่งเรื่องมาตรฐานนี้ เนคเทคเป็นหน่วยงานที่ร่วมสร้างขึ้นมา และจุดยืนของเนคเทคเองคือ จะต้องยึดถือมาตรฐานเป็นสำคัญ

  • การอ้างว่ามีผู้ใช้เยอะจนชิน ไม่สามารถหักล้างความจำเป็นเรื่องมาตรฐานได้ โดยเฉพาะเมื่อเนคเทคเป็นหน่วยงานของรัฐ ยิ่งต้องทำเป็นตัวอย่าง

  • เมื่อผมต้องใช้ OS อื่นๆ เช่น Mac ผมก็ต้องถามคนที่ใช้เป็นว่าสลับภาษาอย่างไร ก็ทราบว่าใช้ Option - Space Bar เปลี่ยนไม่ได้ ทุกภาษาใช้แบบนี้ ก็ยอมรับตามนั้น ใช้ได้เหมือนกัน ดีกว่าเปลี่ยนภาษาไม่ได้เลย หรือต้องใช้เมาส์คลิกเปลี่ยนเอา โดยส่วนตัวผมก็ไม่ได้คิดอะไรมาก เวลาไปเจอ OS แปลกๆ คือคิดว่า ถ้าเราจะใช้ OS นี้ เราก็ต้องทำตัวแบบเข้าเมืองตาหลิ่ว ต้องหลิ่วตาตาม สรุปคือ ต้องขอให้ผู้ใช้เปิดใจตรงนี้ด้วยครับ

  • ผมเข้าใจนะครับ คนที่พิมพ์ด้วยวิธีจิ้มดีด ใช้ 1-2 นิ้ว พิมพ์ได้ทั้งหมด จะไม่ค่อยสะดวกในการกด Alt-shift ก็แนะนำให้ตั้งเป็นแป้นเดียวแทนครับ เช่นแป้น Win หรือ right-Alt ในขณะที่คนที่พิมพ์สัมผัส อย่างคุณเทพพิทักษ์ หรือผม จะชอบกด Alt-Shift มากกว่า เพราะกดได้ง่าย โดยไม่ต้องขยับมือมาก

  • ที่กล่าวมาทั้งหมด ผมขีดกรอบไว้ที่แป้นพิมพ์สำหรับเดสก์ท็อปคอมพิวเตอร์นะครับ รวมแล็ปท็อปด้วย ถ้าเป็นอุปกรณ์อื่นๆ ซึ่งมีวิธีการในการป้อนข้อมูลแตกต่างกัน คงมีหนทางในการสลับภาษาที่แตกต่างออกไปได้อีกหลายวิธี ซึ่งอาจจะสะดวกกว่านี้ หรือไม่ ก็แล้วแต่ละครับ ผมว่าอยู่นอกกรอบที่เราตั้งโจทย์ไว้ อ่อ อย่าง OLPC ที่ได้ร่วมออกแบบแป้นด้วย โดยเฉพาะในเรื่องภาษาไทย ก็จะมีแป้นพิเศษสำหรับสลับภาษาต่างหากเลยครับ ไม่ซ้ำซ้อนกับแป้นใด

  • แต่ทั้งนี้ ก็เป็นไปได้ที่จะทำเป็นทางเลือก ซึ่งไม่ใช่ค่าปริยาย เห็นว่าคุณโชคมีวิธีการดังกล่าวอยู่แล้ว

5 ความคิดเห็น :

  1. เอาแบบญี่ปุ่นไหมครับ เขาใช้ Ctrl + Space bar คนจิ้มดีดก็คงไม่มีปัญหามั๊ง ;)



    ยังไงก็ตาม โดยส่วนตัวผมอยากให้ใช้ Alt + Shift เหมือนเดิมครับ (คง Alt ขวาไว้สลับชั่วคราว)



    ยอมรับว่าสาเหตุหนึ่งที่ทำให้ติดใจใช้ Linux อยู่ทุกวันนี้ เพราะสามารถกด Alt ขวาเพื่อสลับคีย์บอร์ดชั่วคราวได้ ทำให้ผมสามารถพิมพ์สลับไปมาระหว่าง ไทย - Eng ได้สะดวกมากๆ

    ตอบกลับลบ
  2. ctrl-spacebar นี่กดคล้าย option-spacebar ของ Mac เลยนะครับ :-D



    คุณโชคก็ชอบกด right alt เพื่อสลับภาษาชั่วคราว คุณโชคบอก นี่คือวิีการสลับภาษาที่ดีที่สุด เพราะไม่ต้องคอยจำว่าตอนนี้อยู่โหมดภาษาอะไร

    ตอบกลับลบ
  3. เคยได้ยินมาว่าของเกาหลีใช้ Alt คู่ครับ

    ตอบกลับลบ
  4. ผมว่านะ ถ้าสามารถแก้ไขคำที่พิมพ์ผิดไปแล้วเพราะลืมสลับภาษาได้ง่ายๆ เช่น Ctrl + Back space ก็คงช่วยให้หายงอแงกันได้บ้าง (ไปยุที่ blog คุณเทพมาแล้วเหมือนกัน อิอิ)

    ตอบกลับลบ
  5. ถ้าใช้ Ctrl + Space bar เปลี่ยนภาษานี่ พวกโปรแกรมเมอร์สมัยนี้โวยแน่ๆ ครับ เพราะ IDE สมัยนี้ใช้ Ctrl + Space bar เพื่อทำ auto complete ทั้งนั้น ไม่ว่าจะเป็น VS.NET สำหรับ C# หรือ Eclipse, NetBeans สำหรับ Java ต่างก็ใช้เหมือนกันหมด :-)

    ตอบกลับลบ