เปรียบเทียบ Colemak Mod-DH กับ Colemak มาตรฐาน
เจาะลึกความแตกต่างระหว่าง Colemak Mod-DH และ Colemak มาตรฐาน พร้อมเหตุผลว่าทำไมการย้าย D และ H จึงช่วยลดอาการล้าของนิ้วชี้ พร้อมวิธีตั้งค่าบน Linux อย่างละเอียดทุกขั้นตอน
การเปลี่ยนแปลงของ Colemak Mod-DH
Colemak Mod-DH คือ Colemak มาตรฐานที่มีการย้ายตำแหน่งตัวอักษร 6 ตัว โดย D และ H จะถูกย้ายลงมาจากคอลัมน์กลางสองคอลัมน์มาไว้ใต้ตำแหน่งนิ้วชี้ ส่วน G, B, V และ M จะเข้าไปแทนที่ตำแหน่งเดิมของตัวอักษรเหล่านั้น ปุ่มอื่นๆ ทั้งหมด รวมถึงปุ่มแถวกลาง (home keys) ที่คุณเรียนรู้เป็นอันดับแรก จะยังคงอยู่ในตำแหน่งเดิมตามมาตรฐานของ Colemak ทุกประการ
ชื่อของรูปแบบนี้บ่งบอกถึงการเปลี่ยนแปลงที่เกิดขึ้น ใน Colemak มาตรฐาน D จะอยู่บนปุ่มที่ระบุว่า G และ H จะอยู่บนปุ่มที่ระบุว่า H ซึ่งปุ่มทั้งสองนี้คือคอลัมน์กลางของแป้นพิมพ์ การที่นิ้วชี้จะเอื้อมไปถึงจุดนั้นได้จำเป็นต้องดึงมือทั้งมือออกไปด้านข้าง โครงการ Mod-DH จึงถือว่าจุดนี้เป็นจุดที่อ่อนแอที่สุดของเลย์เอาต์ที่ออกแบบมาดีอยู่แล้ว และได้ย้ายตัวอักษรทั้งสองลงมาหนึ่งแถว
หากคุณกำลังอยู่ในระหว่างการเรียนรู้เลย์เอาต์ ให้เลือกใช้ Mod-DH แล้วหยุดอ่านการเปรียบเทียบต่างๆ ได้เลย แต่หากคุณพิมพ์ Colemak มาตรฐานได้คล่องโดยไม่ต้องคิดแล้ว คุณจะต้องเผชิญกับช่วงเวลาที่พิมพ์ช้าลงหลายสัปดาห์ เพื่อแลกกับความสบายในการพิมพ์ที่ไม่มีการทดสอบความเร็วใดจะแสดงผลให้คุณเห็นได้ คู่มือนี้จะแสดงการเปลี่ยนแปลงที่ชัดเจนให้คุณทราบก่อน จากนั้นจึงเป็นส่วนของ Linux ได้แก่ ชื่อรูปแบบที่คุณต้องระบุ และสิ่งที่ต้องทำเมื่อระบบของคุณไม่มีรูปแบบนี้ติดตั้งไว้
เลย์เอาต์ทั้งสองแบบเปรียบเทียบกัน
Standard Colemak เฉพาะตัวอักษร:
q w f p g j l u y ;
a r s t d h n e i o
z x c v b k m , . /Colemak Mod-DH เฉพาะตัวอักษร:
q w f p b j l u y ;
a r s t g m n e i o
z x c d v k h , . /มีตัวอักษร 6 ตัวที่แตกต่างกัน โดยสามารถทำความเข้าใจได้ง่ายกว่าในรูปแบบของการย้ายตำแหน่ง 4 จุดที่มือซ้ายและสลับตำแหน่ง 1 จุดที่มือขวา สำหรับมือซ้าย: D เลื่อนจากแถวหลักลงไปแถวล่างสุด, G เลื่อนจากแถวบนสุดลงมายังคอลัมน์กลางที่ D เคยอยู่, B เลื่อนขึ้นไปแถวบนสุดในตำแหน่งที่ G เคยอยู่ และ V เลื่อนไปทางขวาหนึ่งปุ่มไปยังตำแหน่งที่ B เคยอยู่ สำหรับมือขวา: H และ M สลับที่กัน ซึ่งทำให้ H มาอยู่ใต้นิ้วชี้และ M มาอยู่ตรงคอลัมน์กลาง
ให้อ่านแผนภาพเหล่านั้นโดยมองว่าเป็นคอลัมน์ละ 10 แถว ซึ่งเป็นโครงสร้างของคีย์บอร์ดแบบเมทริกซ์ (ortholinear) สำหรับคีย์บอร์ดแบบสลับฟันปลา (staggered) ทั่วไป มุมซ้ายล่างของ Mod-DH จะมีการจัดวางแบบที่สอง ซึ่งจะอธิบายไว้ในส่วนถัดไปด้านล่าง
เหตุใด D จึงเป็นปัญหาใน Colemak มาตรฐาน
นิ้วชี้ของคุณวางอยู่บนปุ่ม home สองปุ่ม ได้แก่ ปุ่มที่ระบุว่า F ทางซ้าย ซึ่งพิมพ์ T ในทั้งสองเลย์เอาต์ และปุ่มที่ระบุว่า J ทางขวา ซึ่งพิมพ์ N ในทั้งสองเลย์เอาต์ นิ้วชี้แต่ละข้างยังรับผิดชอบคอลัมน์ที่อยู่ติดกันด้วย คือปุ่มที่ระบุว่า G และ H ไม่มีมือข้างใดครอบคลุมทั้งสองคอลัมน์ได้โดยไม่ต้องขยับ เพราะนิ้วมีความยาวไม่เพียงพอ มือจึงต้องเลื่อนออกไปด้านข้างและทำให้นิ้วอีกสามนิ้วที่เหลือหลุดจากตำแหน่ง home การเคลื่อนที่ในแนวขวางนี้เป็นการเคลื่อนไหวที่สิ้นเปลืองที่สุดในการพิมพ์สัมผัส และเป็นสิ่งที่ Mod-DH ถูกสร้างขึ้นมาเพื่อกำจัดออกไป
Colemak มาตรฐานวาง D ไว้ที่ปุ่ม G และวาง H ไว้ที่ปุ่ม H ทำให้ปุ่มคอลัมน์กลางทั้งสองปุ่มมีตัวอักษรที่ใช้บ่อยอยู่ Mod-DH ย้าย D ไปไว้ที่ปุ่ม V และย้าย H ไปไว้ที่ปุ่ม M แทน โดยใช้การจัดวางตามแผนภาพด้านบน ปุ่มเหล่านั้นแต่ละปุ่มอยู่ห่างจากปุ่ม home ของนิ้วชี้ไปทางขวาประมาณครึ่งหนึ่งของความกว้างปุ่มบนคีย์บอร์ดแบบสลับฟันปลา นิ้วจึงสามารถงอลงมาในคอลัมน์ของตัวเองได้โดยที่มือยังคงอยู่ที่เดิม ตัวอักษรที่เข้ามาแทนที่ในคอลัมน์กลางคือ G ทางซ้ายและ M ทางขวา
ข้อโต้แย้งทั้งหมดขึ้นอยู่กับความถี่ในการพิมพ์ตัวอักษรแต่ละตัว
The data behind this chart
[
{
"label": "H",
"frequency_pct": 6.1
},
{
"label": "D",
"frequency_pct": 4.3
},
{
"label": "M",
"frequency_pct": 2.4
},
{
"label": "G",
"frequency_pct": 2.0
},
{
"label": "B",
"frequency_pct": 1.5
},
{
"label": "V",
"frequency_pct": 1.0
}
]นี่คือตัวเลขที่เผยแพร่อย่างเป็นทางการสำหรับข้อความภาษาอังกฤษทั่วไป ซึ่งอาจเปลี่ยนแปลงไปเล็กน้อยตามคลังข้อมูลที่ใช้ในการนับ แต่การจัดลำดับยังคงมีความเสถียร H มีความถี่ 6.1 เปอร์เซ็นต์ของตัวอักษรที่คุณพิมพ์ และ D มีความถี่ 4.3 เปอร์เซ็นต์ ในขณะที่ M มีความถี่ 2.4 เปอร์เซ็นต์, G มีความถี่ 2.0 เปอร์เซ็นต์ และ V มีความถี่ 1.0 เปอร์เซ็นต์ Mod-DH ไม่ได้กำจัดการเอื้อมมือในแนวขวางออกไปทั้งหมด แต่เลือกที่จะใช้การเอื้อมนั้นกับตัวอักษรที่พบน้อยแทนที่จะเป็นตัวอักษรที่ใช้บ่อย และใช้การเคลื่อนที่ของตัวอักษรจำนวน 6 ครั้งในการดำเนินการดังกล่าว
อะไรที่ยังคงเหมือนเดิม?
- ปุ่มเหย้า A R S T ทางด้านซ้าย และ N E I O ทางด้านขวา จะไม่มีการเปลี่ยนแปลง ปุ่มทั้งแปดนี้รองรับการพิมพ์ส่วนใหญ่ของคุณ และเป็นส่วนของ Colemak ที่คุณเรียนรู้เป็นอันดับแรก
- แถวบนสุดเหมือนเดิมทุกประการยกเว้นปุ่มเดียว คือ Q W F P ทางด้านซ้าย และ J L U Y พร้อมกับเครื่องหมาย semicolon ทางด้านขวา
- ปุ่มเครื่องหมายวรรคตอนทางด้านขวาไม่มีการเปลี่ยนแปลง
- แถวตัวเลขและปุ่ม modifier ทั้งหมดไม่มีการเปลี่ยนแปลง
- เกมที่ผูกคำสั่งไว้กับ WASD จะทำงานเหมือนเดิมในทั้งสองเลย์เอาต์ เนื่องจากปุ่มทางกายภาพทั้งสี่นี้มีตัวอักษรเดียวกันในแต่ละเลย์เอาต์
มีสิ่งหนึ่งที่ไม่คงเดิม การใช้ Colemak มาตรฐานจะคงตำแหน่ง Z, X, C และ V ไว้ที่ปุ่มเดิมของ QWERTY ดังนั้น Ctrl+Z, Ctrl+X, Ctrl+C และ Ctrl+V จึงยังคงอยู่ภายใต้นิ้วเดิมที่คุณใช้พิมพ์มาตั้งแต่เริ่มใช้คอมพิวเตอร์เครื่องแรก แต่ Mod-DH จำเป็นต้องใช้แถวล่างซ้ายสำหรับ D กลุ่มปุ่มดังกล่าวจึงต้องถูกปรับเปลี่ยน
การจัดวางมุมนั้นมีอยู่ 2 รูปแบบที่ใช้งานกันทั่วไป และแผนภาพด้านบนเป็นเพียงหนึ่งในนั้น รูปแบบปกติจะคง Z, X และ C ไว้ที่ปุ่มที่ระบุว่า Z, X และ C แล้วเลื่อน V ไปทางขวาหนึ่งตำแหน่งไปยังปุ่มที่ระบุว่า B ส่วนการปรับแต่งแบบ angle mod จะเลื่อนกลุ่มทั้งหมดไปทางซ้ายหนึ่งตำแหน่งแทน เพื่อให้นิ้วชี้ซ้ายงอเข้ามาที่ D แทนที่จะต้องเอื้อมลงไปทางขวา คีย์บอร์ดแบบ ISO จะมีปุ่มว่างระหว่างปุ่ม Shift ซ้ายกับ Z ซึ่ง angle mod จะใช้ปุ่มนั้น ส่วนคีย์บอร์ดแบบ ANSI ไม่มีปุ่มดังกล่าว เวอร์ชัน ANSI จึงต้องย้ายตำแหน่ง Z ซึ่งเป็นสิ่งที่ยอมรับได้เนื่องจาก Z เป็นตัวอักษรที่พบน้อยที่สุดในภาษาอังกฤษ
นั่นคือเหตุผลที่ชื่อของตัวแปรที่จัดเตรียมไว้ต้องระบุประเภทของคีย์บอร์ด เลือกตัวเลือกที่ตรงกับคีย์บอร์ดตรงหน้าคุณ จากนั้นกดปุ่มที่ระบุว่า Z สิ่งที่ปรากฏขึ้นจะบอกคุณว่าคุณกำลังใช้การจัดวางแบบใด และปุ่มลัดสำหรับการแก้ไขปุ่มใดบ้างที่ถูกย้ายตำแหน่งไป
คุณควรเปลี่ยนจาก Colemak มาตรฐานหรือไม่?
- หากคุณยังอยู่ในช่วงเรียนรู้ หรือยังใช้ QWERTY อยู่: ให้เลือกใช้ Mod-DH เพราะไม่ได้เรียนรู้ยากไปกว่า Colemak มาตรฐาน และคุณจะไม่ต้องกังวลกับเรื่องนี้อีกต่อไป หากคุณยังไม่ได้ตัดสินใจเลือกใช้ Colemak นั่นเป็นคำถามก่อนหน้านี้ และ การเปรียบเทียบระหว่าง Colemak กับ Dvorak และ QWERTY คือจุดที่คุณควรหาคำตอบ
- หากคุณพิมพ์ Colemak มาตรฐานได้อย่างคล่องแคล่วแล้ว: ประโยชน์ที่ได้รับนั้นมีจริงแต่มีเพียงเล็กน้อย ในขณะที่ต้องแลกด้วยเวลาหลายสัปดาห์ การเปลี่ยนตำแหน่งตัวอักษร 6 ตัวนั้นเพียงพอที่จะทำให้ความจำกล้ามเนื้อในการพิมพ์ของคุณสับสน และตัวอักษร 2 ตัวที่สำคัญที่สุดนั้นอยู่บนนิ้วชี้ ซึ่งปรากฏอยู่ในคำภาษาอังกฤษจำนวนมาก ผู้ที่เคยเปลี่ยนมาใช้ต่างบอกว่าต้องเผชิญกับช่วงเวลาที่พิมพ์ช้าลงอย่างทรมานอยู่สองสามวัน และต้องใช้เวลาอีกหลายสัปดาห์กว่าความเร็วเดิมจะกลับมา
- หากคุณมีคีย์บอร์ดที่ตั้งโปรแกรมได้อยู่แล้ว: กรณีนี้ถือว่ามีต้นทุนต่ำ การเปลี่ยนแปลงทำได้เพียงแค่การ build firmware ใหม่หนึ่งครั้ง และหากต้องการเปลี่ยนกลับก็ทำได้ง่ายเช่นกัน ลองใช้ดูสักหนึ่งเดือนแล้วค่อยตัดสินใจเลือกแบบที่คุณชอบที่สุด
- หากคุณพิมพ์ภาษาอื่นเป็นส่วนใหญ่ของวัน: ค่าความถี่ที่ระบุไว้ข้างต้นเป็นของภาษาอังกฤษ โปรดตรวจสอบข้อมูลของภาษาที่คุณใช้ก่อนที่จะยอมรับข้อโต้แย้งนี้ เพราะตัวอักษร D, H, G และ M ไม่ได้มีความสำคัญเท่ากันในทุกภาษา
- หากคุณมีอาการเจ็บมือ: เลย์เอาต์เป็นเพียงปัจจัยหนึ่งในหลายๆ ปัจจัย ร่วมกับความสูงของโต๊ะ เก้าอี้ คีย์บอร์ด และจำนวนชั่วโมงที่คุณนั่งทำงาน อย่าคาดหวังว่าการสลับตำแหน่งตัวอักษรจะช่วยแก้ปัญหาที่เกิดจากปัจจัยอื่นๆ ในการจัดวางอุปกรณ์ของคุณได้
คุณจะพิมพ์ Colemak Mod-DH บน Linux ได้อย่างไร
ให้ตรวจสอบระบบของคุณว่ามีสิ่งใดอยู่แล้วบ้าง ณ เดือนสิงหาคม 2026 รูปแบบ Mod-DH จะมาพร้อมกับ xkeyboard-config ซึ่งเป็นฐานข้อมูลคีย์บอร์ดที่ Linux ทุกเดสก์ท็อปใช้งาน
localectl list-x11-keymap-variants us | grep colemakระบบปัจจุบันจะแสดงรายการ colemak พร้อมกับรายการ Mod-DH โดย colemak_dh คือเวอร์ชัน ANSI, colemak_dh_iso คือเวอร์ชัน ISO, colemak_dh_ortho สำหรับคีย์บอร์ดแบบ matrix ส่วน colemak_dh_wide และ colemak_dh_wide_iso คือเวอร์ชัน wide ซึ่งจะเลื่อนมือขวาออกไปด้านนอกหนึ่งคอลัมน์ รูปแบบ UK ก็มีตัวเลือก Mod-DH เช่นกัน ดังนั้นให้รันคำสั่งเดียวกันกับ gb หากคุณใช้คีย์บอร์ดแบบ UK หาก grep ไม่แสดงผลลัพธ์ใดๆ แสดงว่า xkeyboard-config ของคุณเก่ากว่าเวอร์ชันที่มีตัวเลือกเหล่านี้ และส่วนถัดไปคือสิ่งที่คุณต้องการ
ให้ทดลองใช้ใน X session ก่อนที่จะตัดสินใจตั้งค่าใดๆ
setxkbmap -layout us -variant colemak_dh
setxkbmap -querysetxkbmap -query จะแสดง layout และ variant ที่ใช้งานอยู่ในปัจจุบัน เพื่อให้คุณยืนยันว่าการเปลี่ยนแปลงมีผลแล้ว ให้ลองพิมพ์ประโยคสองสามประโยค จากนั้นกลับไปใช้ค่าเดิมด้วย setxkbmap -layout us หาก variant ดังกล่าวไม่มีอยู่ในเครื่องของคุณ คำสั่งจะล้มเหลวด้วย Error loading new keyboard description และ layout จะยังคงเป็นค่าเดิม
โปรดสังเกตว่าคำสั่งดังกล่าวไม่ได้ทำอะไรบ้าง มันส่งผลต่อ X session ที่กำลังทำงานอยู่เท่านั้น และจะหายไปเมื่อ logout นอกจากนี้ยังไม่มีผลภายใต้ Wayland ซึ่ง compositor จะเป็นผู้จัดการ keymap เอง การทำให้ layout คงอยู่ถาวรเป็นงานที่แตกต่างกันไปในแต่ละเดสก์ท็อป ซึ่งได้มีการเขียนอธิบายไว้แล้วที่ การตั้งค่า Colemak แบบถาวรบนคอนโซล, X11 และ Wayland ทุกขั้นตอนในนั้นสามารถนำมาปรับใช้กับ variant นี้ได้ โดยให้เขียน colemak_dh ในทุกจุดที่คู่มือนั้นระบุให้ใช้ colemak
จะทำอย่างไรหากระบบของคุณไม่มีตัวเลือก colemak_dh?
มีสามวิธีในการตั้งค่าเลย์เอาต์นี้ ซึ่งแต่ละวิธีจะมีข้อจำกัดในการใช้งานที่แตกต่างกัน
การสร้าง xkb variant แบบกำหนดเอง คุณสามารถเขียนคำจำกัดความของปุ่มลงในไฟล์ symbols และลงทะเบียน variant นั้น จากนั้นจึงเรียกใช้งานด้วยชื่อเหมือนกับแพ็กเกจมาตรฐาน วิธีนี้ใช้กลไกเดียวกันจึงทำงานได้เหมือนกันทุกประการ และครอบคลุมทั้งเซสชัน X11 และ Wayland สิ่งที่ต้องแลกคือการดูแลรักษา: ไฟล์ที่คุณแก้ไขภายใต้ /usr/share/X11/xkb เป็นส่วนหนึ่งของแพ็กเกจ xkeyboard-config ดังนั้นการอัปเกรดระบบอาจเขียนทับไฟล์นี้ได้ และคุณต้องติดตั้งใหม่ในทุกเครื่องที่คุณใช้งาน
การใช้ตัวรีแมปในระดับ userspace โปรแกรม keyd จะอ่านค่าจากคีย์บอร์ดผ่าน evdev (เลเยอร์อินพุตของเคอร์เนล) และเขียนค่าปุ่มที่รีแมปแล้วกลับผ่าน uinput (อุปกรณ์จำลองอินพุตของเคอร์เนล) การสลับปุ่มจะเกิดขึ้นก่อนที่ display server จะได้รับสัญญาณ ดังนั้นไฟล์เดียวจึงครอบคลุมทั้งเซสชัน X, เซสชัน Wayland และคอนโซลข้อความปกติ โดยให้วางไฟล์แมปไว้ที่ /etc/keyd/default.conf:
[ids]
*
[main]
e = f
r = p
t = b
y = j
u = l
i = u
o = y
s = r
d = s
f = t
h = m
j = n
k = e
l = i
v = d
b = v
n = k
m = hแต่ละบรรทัดระบุว่าปุ่มทางกายภาพที่ระบุทางซ้ายจะส่งค่าเป็นปุ่มที่ระบุทางขวา ส่วนปุ่มที่ไม่ได้เปลี่ยนแปลงไม่ต้องระบุไว้ ปุ่มเซมิโคลอนมีการเปลี่ยนแปลงทั้งสองทิศทางและไม่ได้ระบุไว้ด้านบนโดยเจตนา: ให้รัน keyd list-keys เพื่อดูชื่อที่บิลด์ของคุณใช้สำหรับปุ่มนั้น จากนั้นจึงเพิ่มสองบรรทัดดังกล่าวลงไป โหลดคอนฟิกและตรวจสอบการทำงาน:
sudo systemctl enable --now keyd
sudo keyd reload
keyd monitorkeyd monitor จะแสดงทุกปุ่มตามที่ keyd มองเห็น ซึ่งเป็นวิธีตรวจสอบว่ามีการรีแมปปุ่มซ้ำซ้อนหรือไม่ ให้ตั้งค่าเลย์เอาต์ของระบบกลับเป็น US QWERTY มาตรฐานก่อนเปิดใช้งาน keyd เพราะผลลัพธ์จาก keyd จะถูกตีความโดยเลย์เอาต์ที่ตั้งค่าไว้ในระบบอีกชั้นหนึ่ง หากมีการรีแมปซ้อนกันสองครั้งจะทำให้ได้ตัวอักษรที่ไม่ตรงกับเลย์เอาต์ใดเลย
เฟิร์มแวร์คีย์บอร์ด QMK, ZMK และ Vial จะเก็บเลย์เอาต์ไว้ภายในตัวคีย์บอร์ด คีย์บอร์ดจะส่งตัวอักษรที่คุณต้องการไปให้โดยตรง และโฮสต์จะไม่ทราบเลยว่ามีการรีแมปปุ่มเกิดขึ้น สำหรับ QMK กระบวนการคือการบิลด์และแฟลชเฟิร์มแวร์:
qmk setup
qmk list-keyboards
qmk compile -kb planck/rev6 -km default
qmk flash -kb planck/rev6 -km defaultชื่อคีย์บอร์ดและ keymap ด้านบนเป็นเพียงตัวอย่าง ให้แทนที่ planck/rev6 ด้วยค่าที่ qmk list-keyboards แสดงสำหรับบอร์ดของคุณ และแทนที่ default ด้วยชื่อไดเรกทอรี keymap ที่เก็บเลย์เอาต์ Mod-DH ของคุณไว้
Vial และ VIA ใช้วิธีการเดียวกันผ่านโปรแกรมแก้ไขแบบกราฟิกผ่าน USB หากเฟิร์มแวร์ของบอร์ดคุณรองรับ คุณจึงสามารถย้ายตำแหน่งปุ่มได้โดยไม่ต้องใช้คอมไพเลอร์
วิธีการใดที่ยังคงใช้งานได้ใน text console?
มีเพียง firmware เท่านั้นที่ติดตามคุณไปทุกที่ ส่วน xkb variant นั้นขึ้นอยู่กับ session เดียวบนเครื่องเดียว และ keyd ก็ขึ้นอยู่กับเครื่องเดียวโดยต้องใช้สิทธิ์ root บนเครื่องนั้น แต่ keyboard เป็นของคุณเอง: ไม่ว่าจะเสียบเข้ากับ rescue shell, หน้าจอตั้งค่า UEFI, ระบบที่เพิ่งติดตั้งใหม่ หรือ serial console มันก็จะพิมพ์แบบ Mod-DH ได้ทันที เพราะอุปกรณ์ปลายทางไม่จำเป็นต้องรับรู้การตั้งค่าใดๆ
เรื่องนี้มีความสำคัญต่อการทำงานระยะไกลน้อยกว่าที่หลายคนคาดคิด แต่มีความสำคัญมากสำหรับ console ที่ใช้งานในเครื่อง เมื่อคุณ SSH เข้าไปยัง VPS เซิร์ฟเวอร์จะไม่เห็น layout ของคุณเลย เพราะ terminal ของคุณจะแปลงการกดปุ่มให้เป็นตัวอักษรแล้วส่งไป ดังนั้น keymap ของเครื่องปลายทางจึงไม่มีผล สิ่งที่ได้รับผลกระทบคือ console ที่คุณนั่งอยู่หน้าเครื่องโดยตรง เช่น rescue shell หลังจากบูตไม่สำเร็จ หรือ โต๊ะทำงานถาวรที่คุณเก็บไว้บน TTY สำรอง โดย Linux virtual console มีระบบ keymap ของตัวเองซึ่งแยกจาก xkb และการตั้งค่า desktop ของคุณจะไม่ส่งผลต่อส่วนนี้
บน Debian และ Ubuntu นั้น console keymap จะถูกสร้างขึ้นจากข้อมูล xkb โดยใช้ ckbcomp ดังนั้น console จึงสามารถใช้ชื่อ variant เดียวกันได้:
ckbcomp us colemak_dh | sudo loadkeys -การตั้งค่านี้จะมีผลจนกว่าจะรีบูตเครื่องครั้งถัดไป หากต้องการให้คงอยู่ถาวร ให้ตั้งค่า XKBLAYOUT และ XKBVARIANT ใน /etc/default/keyboard แล้วรัน sudo setupcon สำหรับ distribution ที่ไม่มี console-setup คุณจะถูกจำกัดให้ใช้เฉพาะ keymap ที่มาพร้อมกับ kbd ซึ่งส่วนใหญ่เป็น QWERTY: ให้ตรวจสอบด้วย localectl list-keymaps | grep -i colemak ก่อนที่จะสรุปว่ามี Colemak-DH map อยู่หรือไม่ ในกรณีที่ไม่มี keyd จะเป็นทางเลือกที่รวดเร็วกว่า เพราะไฟล์เดียวสามารถครอบคลุมทั้ง console และ graphical session ได้พร้อมกัน
สิ่งที่อาจใช้งานไม่ได้หลังจากเปลี่ยนเลย์เอาต์
การแมปซ้ำซ้อนสองชั้น หากคุณแฟลชบอร์ดด้วย Mod-DH แล้วตั้งค่าโฮสต์เป็น colemak_dh คุณจะได้ตัวอักษรที่ไม่ตรงกับเลย์เอาต์ใดเลย เนื่องจากการแมปทั้งสองชั้นทำงานร่วมกัน ตัวอย่างเช่น หากคุณกดปุ่มที่ระบุว่า S บอร์ดจะส่งสัญญาณเป็น R และเลย์เอาต์ของโฮสต์จะอ่านสัญญาณนั้นเป็นปุ่ม R แล้วพิมพ์ออกมาเป็น P ดังนั้นควรทำการแมปเพียงที่เดียวเท่านั้น
แถวล่างที่ไม่ตรงกับบอร์ดของคุณ การเลือก colemak_dh บนคีย์บอร์ด ISO หรือ colemak_dh_iso บนคีย์บอร์ด ANSI จะทำให้ตัวอักษรบริเวณมุมซ้ายล่างวางผิดตำแหน่ง ให้ลองกดปุ่มที่ระบุว่า Z ทันทีหลังจากเปลี่ยนเลย์เอาต์ เพราะมุมนั้นคือจุดที่การจัดวางทั้งสองแบบแตกต่างกัน
หน้าจอเข้าสู่ระบบ GDM และ SDDM มีการตั้งค่าคีย์บอร์ดแยกต่างหาก ดังนั้นช่องกรอกรหัสผ่านอาจยังคงเป็น QWERTY ในขณะที่เซสชันของคุณเปลี่ยนไปแล้ว การใช้ keyd และการตั้งค่าในเฟิร์มแวร์จะช่วยเลี่ยงปัญหานี้ได้ เพราะทั้งสองวิธีทำงานก่อนที่หน้าจอเข้าสู่ระบบจะแสดงผล
Caps Lock เลย์เอาต์มาตรฐานของ Colemak จะเปลี่ยน Caps Lock ให้เป็น Backspace แต่การนำไปใช้งานจริงในแต่ละที่อาจมีความเห็นไม่ตรงกันว่าควรเปลี่ยนหรือไม่ ให้ตรวจสอบปุ่มนั้นทันทีหลังจากเปลี่ยนเลย์เอาต์ เพราะการมาพบว่าปุ่มทำงานไม่ตรงกับที่คิดในระหว่างพิมพ์งานนั้นเป็นเรื่องที่น่าหงุดหงิด
ความเร็วในการพิมพ์ในช่วงแรก คาดการณ์ไว้เลยว่าในช่วงสองวันแรกคุณจะพิมพ์ได้ช้าจนอาจคิดอยากเปลี่ยนกลับไปใช้แบบเดิม ซึ่งเป็นเรื่องปกติและเกิดขึ้นกับทุกคนที่เปลี่ยนเลย์เอาต์คีย์บอร์ด
FAQ
การเปลี่ยนไปใช้ Colemak Mod-DH คุ้มค่าหรือไม่หากฉันพิมพ์ Colemak มาตรฐานได้อยู่แล้ว?
หากคุณพิมพ์จนเป็นธรรมชาติแล้ว คำตอบตามตรงคือไม่คุ้มค่า มีตัวอักษร 6 ตัวที่เปลี่ยนไป โดย 2 ตัวเป็นตัวอักษรที่ใช้บ่อยด้วยนิ้วชี้ ซึ่งเพียงพอที่จะทำลายความจำกล้ามเนื้อที่คุณใช้เวลาสร้างมานานหลายเดือน ผู้ที่เปลี่ยนมาใช้เล่าว่าต้องใช้เวลาพิมพ์ช้าลงอยู่สองสามวัน และใช้เวลาอีกสองสามสัปดาห์กว่าความเร็วเดิมจะกลับมา สิ่งที่ได้คือความสบายมากกว่าความเร็ว เพราะ D และ H จะไม่ต้องการการขยับมือในแนวข้างอีกต่อไป ให้เปลี่ยนหากคุณรู้สึกปวดนิ้วชี้ หรือหากคุณมีคีย์บอร์ดที่ตั้งโปรแกรมได้ซึ่งการย้อนกลับทำได้เพียงแค่การ flash firmware ครั้งเดียว
Colemak Mod-DH ทำให้ Ctrl+Z, Ctrl+X, Ctrl+C และ Ctrl+V ใช้งานไม่ได้หรือไม่?
มันทำให้กลุ่มคำสั่งบางส่วนใช้งานไม่ได้ ในขณะที่ Colemak มาตรฐานไม่เป็นเช่นนั้น Colemak มาตรฐานจะคง Z, X, C และ V ไว้ที่ตำแหน่งเดิมบน QWERTY ดังนั้นทางลัดทั้งสี่จึงยังคงอยู่ในตำแหน่งที่มือของคุณคุ้นเคย Mod-DH จำเป็นต้องใช้แถวล่างซ้ายสำหรับ D ดังนั้นจึงต้องมีการย้ายตำแหน่งบางอย่าง ในการจัดวางแบบปกติ Z, X และ C จะอยู่ที่เดิม แต่ V จะขยับไปทางขวาหนึ่งปุ่ม ในการจัดวางแบบ angle mod กลุ่มนี้จะเลื่อนไปทางซ้ายหนึ่งปุ่มและ Z จะถูกย้ายไปที่อื่น ให้ลองกดปุ่มที่ระบุว่า Z หลังจากเปลี่ยนแล้วเพื่อดูว่า implementation ของคุณใช้รูปแบบใด
ฉันจะตรวจสอบได้อย่างไรว่าระบบ Linux ของฉันมี variant colemak_dh หรือไม่?
ให้รัน localectl list-x11-keymap-variants us | grep colemak สิ่งใดก็ตามที่แสดงอยู่ในรายการนั้นสามารถเลือกใช้งานได้ตามชื่อ ให้ทดสอบใน X session ด้วย setxkbmap -layout us -variant colemak_dh และยืนยันผลด้วย setxkbmap -query หากไม่มี variant ดังกล่าว setxkbmap จะแสดง Error loading new keyboard description และ layout จะไม่เปลี่ยนแปลง ในกรณีนี้ ตัวเลือกของคุณคือการสร้าง xkb variant ขึ้นมาเอง, การใช้ keyd remapper หรือการใช้ keyboard firmware
Colemak Mod-DH ใช้งานใน Linux text console ได้หรือไม่?
ไม่ได้ด้วยตัวมันเอง Virtual console มี keymap ของตัวเองซึ่งโหลดผ่าน loadkeys และมันไม่ได้อ่านค่า xkb settings ของ desktop บน Debian และ Ubuntu นั้น ckbcomp us colemak_dh | sudo loadkeys - จะแปลง xkb variant ให้เป็น console keymap สำหรับการบูตปัจจุบัน และการตั้งค่า XKBVARIANT ใน /etc/default/keyboard ตามด้วย sudo setupcon จะทำให้การตั้งค่าคงอยู่หลังการรีบูต keyd สามารถใช้งานใน console ได้บนทุก distribution เพราะมันทำการ remapping ที่ระดับ kernel input layer ส่วน firmware ก็ใช้งานได้เช่นกันและไม่จำเป็นต้องติดตั้งซอฟต์แวร์ใดๆ บนเครื่อง
ฉันควรเลือก Mod-DH variant ใดสำหรับคีย์บอร์ดของฉัน?
ให้เลือกให้ตรงกับคีย์บอร์ดทางกายภาพของคุณ colemak_dh สำหรับคีย์บอร์ด ANSI ซึ่งเป็นแบบที่มีปุ่ม Enter แบนกว้างและปุ่ม Left Shift ยาว colemak_dh_iso สำหรับคีย์บอร์ด ISO ซึ่งมีปุ่ม Enter ทรงสูงและมีปุ่มพิเศษเพิ่มขึ้นมาระหว่าง Left Shift กับ Z colemak_dh_ortho สำหรับคีย์บอร์ดแบบ matrix ที่มีแถวปุ่มตรงกัน Variant แบบ wide จะขยับมือขวาออกไปหนึ่งคอลัมน์และจะมีประโยชน์ก็ต่อเมื่อคุณตัดสินใจแล้วว่าต้องการแบบนั้น หากตัวอักษรบริเวณด้านล่างซ้ายแสดงผลผิดพลาด แสดงว่าคุณเลือก variant ผิด