Colemak Mod-DH khác Colemak chuẩn thế nào?
Colemak Mod-DH chuyển D và H khỏi cột giữa xuống vị trí ngón trỏ. Xem thay đổi, ai nên chuyển và cách bật colemak_dh trên Linux.
Những thay đổi của Colemak Mod-DH
Colemak Mod-DH là Colemak tiêu chuẩn với 6 chữ cái được di chuyển. D và H được đưa xuống khỏi 2 cột giữa và đặt dưới các ngón trỏ, còn G, B, V và M nhận các phím mà chúng để lại. Mọi phím khác, bao gồm các phím hàng cơ sở bạn học đầu tiên, vẫn giữ nguyên vị trí như trong Colemak tiêu chuẩn.
Tên của biến thể này mô tả chính thay đổi đó. Trong Colemak tiêu chuẩn, D nằm trên phím có nhãn G, còn H nằm trên phím có nhãn H. Hai phím này thuộc các cột giữa của bàn phím. Ngón trỏ chỉ chạm được đến đó khi kéo cả bàn tay sang bên. Vì vậy, dự án Mod-DH xem đây là điểm yếu của một layout vốn đã tốt và di chuyển cả 2 chữ cái xuống 1 hàng.
Nếu bạn vẫn đang học một layout, hãy chọn Mod-DH và không cần đọc các phần so sánh. Nếu bạn đã gõ Colemak tiêu chuẩn mà không cần suy nghĩ, bạn sẽ phải chấp nhận vài tuần gõ chậm hơn để đổi lấy cảm giác thoải mái mà không bài kiểm tra tốc độ nào cho thấy được. Hướng dẫn này trình bày chính xác thay đổi trước, sau đó hướng dẫn phần Linux: tên biến thể cần yêu cầu và cách xử lý khi system không có biến thể đó.
Hai bố cục, đặt cạnh nhau
Colemak tiêu chuẩn, chỉ gồm các chữ cái:
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, chỉ gồm các chữ cái:
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 , . /Có sáu chữ cái khác vị trí. Có thể hình dung thay đổi này dễ hơn dưới dạng bốn lần di chuyển ở tay trái và một lần hoán đổi ở tay phải. Ở bên trái: D hạ từ hàng cơ sở xuống hàng dưới, G hạ từ hàng trên vào cột giữa mà D để lại, B di chuyển lên hàng trên vào vị trí của G, và V trượt sang phải một phím vào vị trí mà B để lại. Ở bên phải: H và M đổi chỗ, đưa H xuống dưới ngón trỏ và M vào cột giữa.
Hãy đọc các sơ đồ đó theo dạng 10 cột mỗi hàng. Đây là cách một bàn phím ma trận (ortholinear) được bố trí. Trên bàn phím lệch hàng thông thường, góc dưới bên trái của Mod-DH có một cách bố trí thứ hai. Phần đó được giải thích ở bên dưới.
Vì sao D lại là vấn đề lớn trong Colemak tiêu chuẩn?
Hai ngón trỏ của bạn đặt trên hai phím hàng cơ sở: phím có nhãn F ở bên trái, gõ T trong cả hai layout, và phím có nhãn J ở bên phải, gõ N trong cả hai layout. Mỗi ngón trỏ cũng phụ trách cột kế bên, gồm các phím có nhãn G và H. Không bàn tay nào che được cả hai cột nếu không di chuyển, vì ngón tay không đủ dài. Do đó, bàn tay phải dịch sang bên, kéo theo ba ngón còn lại rời khỏi các phím hàng cơ sở. Đây là chuyển động tốn kém nhất khi gõ touch typing, và Mod-DH được tạo ra để loại bỏ chuyển động này.
Colemak tiêu chuẩn đặt D trên phím có nhãn G và H trên phím có nhãn H, nên cả hai phím ở cột giữa đều chứa một chữ cái thường gặp. Mod-DH đặt D trên phím có nhãn V và H trên phím có nhãn M, theo cách bố trí trong sơ đồ ở trên. Trên keyboard có các hàng phím lệch nhau, mỗi phím này nằm lệch khoảng nửa bề rộng phím sang bên phải so với phím hàng cơ sở của ngón trỏ tương ứng. Vì vậy, ngón tay chỉ cần co xuống trong cột của mình và bàn tay không phải di chuyển. Các chữ cái chuyển sang cột giữa là G ở bên trái và M ở bên phải.
Toàn bộ lập luận phụ thuộc vào tần suất gõ của từng chữ cái.
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
}
]Đây là các số liệu thường được công bố cho văn bản tiếng Anh thông thường. Các số liệu có thể chênh nhau vài phần mười điểm tùy theo corpus được dùng để đếm. Thứ hạng vẫn ổn định. H chiếm 6.1 phần trăm số chữ cái bạn gõ và D chiếm 4.3 phần trăm, trong khi M chiếm 2.4 phần trăm, G chiếm 2.0 phần trăm và V chiếm 1.0 phần trăm. Mod-DH không loại bỏ động tác với sang bên. Nó dành động tác này cho các chữ cái hiếm thay vì các chữ cái thường gặp, và cần 6 lần di chuyển ngón tay để thực hiện điều đó.
Điều gì vẫn giữ nguyên?
- Các phím hàng cơ sở A R S T bên trái và N E I O bên phải không thay đổi vị trí. 8 phím này chiếm phần lớn thao tác gõ của bạn và là phần Colemak bạn học đầu tiên.
- Hàng trên giống hệt, chỉ khác 1 phím: Q W F P bên trái, và J L U Y cùng phím chấm phẩy bên phải.
- Các phím dấu câu bên tay phải không thay đổi.
- Hàng số và các phím modifier không thay đổi.
- Các game gán thao tác cho WASD hoạt động giống nhau trên cả 2 layout, vì 4 phím vật lý đó chứa cùng các chữ cái trong mỗi layout.
Có 1 điểm không giữ nguyên sau khi chuyển layout. Colemak chuẩn giữ Z, X, C và V trên các phím QWERTY tương ứng, nên Ctrl+Z, Ctrl+X, Ctrl+C và Ctrl+V vẫn nằm dưới các ngón tay đã dùng chúng từ lần đầu bạn sử dụng máy tính. Mod-DH cần hàng dưới bên trái cho D, nên cụm phím này phải thay đổi.
Hiện có 2 cách sắp xếp cho góc đó, và sơ đồ ở trên chỉ là 1 trong 2 cách. Cách sắp xếp plain giữ Z, X và C trên các phím có nhãn Z, X và C, rồi đẩy V sang phải 1 phím, vào phím có nhãn B. Angle mod trượt cả nhóm sang trái 1 phím, để ngón trỏ trái gập vào D thay vì phải với xuống và sang phải để bấm phím này. Bàn phím ISO có thêm 1 phím giữa Shift trái và Z, và angle mod sử dụng phím đó. Bàn phím ANSI không có phím này, nên phiên bản ANSI phải di chuyển Z. Điều này vẫn chấp nhận được vì Z là chữ cái ít xuất hiện nhất trong tiếng Anh.
Đó là lý do tên các biến thể được đóng gói có kèm loại bàn phím. Chọn biến thể phù hợp với bàn phím trước mặt bạn, rồi nhấn phím có nhãn Z. Ký tự xuất hiện sẽ cho biết bạn đang dùng cách sắp xếp nào và những phím tắt chỉnh sửa nào đã thay đổi vị trí.
Có nên chuyển từ Colemak tiêu chuẩn không?
- Bạn vẫn đang học, hoặc vẫn dùng QWERTY: hãy chọn Mod-DH. Mod-DH không khó học hơn Colemak tiêu chuẩn, và bạn sẽ không phải nghĩ về trang này nữa. Nếu bạn vẫn chưa quyết định dùng Colemak, đó mới là câu hỏi trước đó; hãy xem Colemak khác Dvorak và QWERTY như thế nào để quyết định.
- Bạn gõ Colemak tiêu chuẩn thành thạo: lợi ích là có thật nhưng nhỏ, còn chi phí là vài tuần. Sáu chữ cái cũng đủ phá vỡ khả năng gõ tự động, và hai chữ quan trọng nhất nằm ở các ngón trỏ, vốn xuất hiện trong phần lớn các từ tiếng Anh. Những người đã chuyển layout cho biết họ phải gõ rất chậm trong vài ngày, rồi mất vài tuần mới quay lại tốc độ cũ.
- Bạn đã có keyboard có thể lập trình: đây là trường hợp ít tốn kém nhất. Thay đổi chỉ cần một lần build firmware, và việc quay lại cũng chỉ cần một lần khác. Hãy dùng thử trong một tháng rồi giữ layout bạn thích hơn.
- Bạn gõ một ngôn ngữ khác trong phần lớn thời gian: các số liệu về tần suất ở trên là của tiếng Anh. Hãy kiểm tra ngôn ngữ của bạn trước khi chấp nhận lập luận này, vì D, H, G và M không có cùng mức độ quan trọng ở mọi ngôn ngữ.
- Tay bạn bị đau: layout chỉ là một trong nhiều yếu tố, cùng với độ cao bàn, ghế, bàn phím và số giờ bạn ngồi trước đó. Đừng kỳ vọng việc đổi vị trí chữ cái có thể sửa một vấn đề do phần còn lại của setup gây ra.
Cách gõ Colemak Mod-DH trên Linux?
Hãy kiểm tra hệ thống đang có sẵn gì. Tính đến tháng 8 năm 2026, các biến thể Mod-DH được tích hợp trong xkeyboard-config, cơ sở dữ liệu bàn phím mà mọi desktop Linux đều sử dụng.
localectl list-x11-keymap-variants us | grep colemakHệ thống hiện tại sẽ liệt kê colemak cùng các entry Mod-DH. colemak_dh là phiên bản ANSI, colemak_dh_iso là phiên bản ISO, colemak_dh_ortho dành cho bàn phím ma trận, còn colemak_dh_wide và colemak_dh_wide_iso là các phiên bản wide, đưa bàn tay phải ra ngoài thêm một cột. Layout UK cũng có biến thể Mod-DH, nên hãy chạy cùng lệnh với gb nếu bạn dùng bàn phím UK. Nếu grep không in gì, xkeyboard-config của bạn quá cũ và chưa có các biến thể này. Khi đó, hãy chuyển sang phần tiếp theo.
Hãy thử trong một X session trước khi áp dụng chính thức.
setxkbmap -layout us -variant colemak_dh
setxkbmap -querysetxkbmap -query in ra layout và variant đang được áp dụng, giúp bạn xác nhận thay đổi đã có hiệu lực. Hãy gõ vài câu, rồi khôi phục bằng setxkbmap -layout us. Nếu variant không tồn tại trên máy, lệnh sẽ fail với Error loading new keyboard description và layout vẫn giữ nguyên.
Lưu ý những việc lệnh đó không làm. Lệnh chỉ tác động đến X session đang chạy, sẽ mất khi logout và không có tác dụng dưới Wayland, nơi compositor quản lý keymap. Đặt layout cố định là công việc khác nhau trên từng desktop và đã được hướng dẫn riêng: đặt Colemak cố định trên console, X11 và Wayland. Mọi bước trong hướng dẫn đó đều áp dụng cho variant này. Hãy ghi colemak_dh ở mọi vị trí mà hướng dẫn ghi colemak.
Nếu hệ thống không có biến thể colemak_dh thì sao?
Có 3 cách để tạo layout này, và mỗi cách sẽ ngừng hoạt động ở một lớp khác nhau.
Tạo variant xkb tùy chỉnh. Bạn ghi các định nghĩa phím vào một symbols file và đăng ký variant, sau đó dùng variant đó theo tên như variant được đóng gói sẵn. Cơ chế này giống hệt cơ chế chuẩn, nên cách hoạt động cũng giống nhau và hỗ trợ cả session X11 lẫn Wayland. Điểm bất tiện là phải bảo trì: file bạn chỉnh sửa trong /usr/share/X11/xkb thuộc package xkeyboard-config, nên một lần upgrade có thể ghi đè file đó. Bạn cũng phải cài lại file trên từng máy cần dùng.
Dùng userspace remapper. keyd đọc bàn phím thông qua evdev (lớp input của kernel) rồi ghi các phím đã remap trở lại qua uinput (thiết bị inject input của kernel). Việc hoán đổi diễn ra trước khi display server nhận phím, nên một file có thể dùng cho session X, session Wayland và cả text console thuần. Khai báo map trong /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 = hMỗi dòng cho biết phím vật lý ở bên trái sẽ gửi phím ở bên phải. Các phím không thay đổi được bỏ qua. Phím semicolon được đổi theo cả hai chiều và cố ý không xuất hiện ở trên: chạy keyd list-keys để lấy tên mà bản build của bạn sử dụng, rồi thêm 2 dòng tương ứng. Nạp config và kiểm tra hoạt động:
sudo systemctl enable --now keyd
sudo keyd reload
keyd monitorkeyd monitor in ra mọi phím theo cách keyd nhìn thấy chúng. Đây là cách phát hiện một phím bị remap 2 lần. Đặt system layout về US QWERTY chuẩn trước khi enable keyd, vì output của keyd vẫn được diễn giải theo layout đang cấu hình. Hai lần remap liên tiếp có thể tạo ra các chữ cái không khớp với bất kỳ layout nào.
Firmware của bàn phím. QMK, ZMK và Vial đặt layout ngay trong bàn phím. Bàn phím gửi trực tiếp chữ cái bạn muốn, còn host không biết có thao tác remap nào xảy ra. Với QMK, quy trình gồm build và flash:
qmk setup
qmk list-keyboards
qmk compile -kb planck/rev6 -km default
qmk flash -kb planck/rev6 -km defaultTên bàn phím và keymap ở trên chỉ là ví dụ. Thay planck/rev6 bằng giá trị mà qmk list-keyboards in ra cho board của bạn, rồi thay default bằng tên của thư mục keymap chứa layout Mod-DH.
Vial và VIA cũng làm được việc tương tự thông qua trình chỉnh sửa giao diện đồ họa kết nối qua USB, nếu firmware của board hỗ trợ. Nhờ vậy, bạn có thể di chuyển một phím mà không cần compiler.
Phương pháp nào hoạt động trong console văn bản?
Chỉ firmware mới theo bạn ở mọi nơi. Một variant của xkb chỉ thuộc về một session trên một máy. keyd chỉ thuộc về một máy và cần root trên máy đó. Bàn phím thuộc về bạn: cắm nó vào rescue shell, màn hình thiết lập UEFI, một hệ thống mới cài hoặc serial console, rồi nó sẽ gõ Mod-DH, vì đầu bên kia không cần biết gì.
Điều này ít quan trọng hơn người ta thường nghĩ khi làm việc từ xa, nhưng lại quan trọng hơn với các console cục bộ. Khi bạn SSH vào một VPS, server hoàn toàn không thấy layout của bạn: terminal chuyển các lần nhấn phím thành ký tự và gửi các ký tự đó, nên keymap của máy từ xa không liên quan. Vấn đề xuất hiện ở console mà bạn ngồi trực tiếp trước đó, chẳng hạn rescue shell sau khi boot thất bại, hoặc một bàn làm việc cố định bạn để trên một TTY dự phòng. Linux virtual console có hệ thống keymap riêng, tách khỏi xkb, và các thiết lập trên desktop không tác động đến nó.
Trên Debian và Ubuntu, console keymap được ckbcomp tạo từ dữ liệu xkb, nên console có thể dùng cùng tên variant:
ckbcomp us colemak_dh | sudo loadkeys -Thiết lập này chỉ tồn tại đến lần reboot tiếp theo. Để giữ lại, đặt XKBLAYOUT và XKBVARIANT trong /etc/default/keyboard rồi chạy sudo setupcon. Trên các distribution không có console-setup, bạn chỉ dùng được những keymap đi kèm kbd, mà phần lớn là QWERTY: kiểm tra bằng localectl list-keymaps | grep -i colemak trước khi giả định rằng đã có keymap Colemak-DH. Nếu không có, keyd là cách ngắn gọn hơn, vì một file có thể áp dụng cho cả console và graphical session.
Điều gì hỏng sau khi chuyển đổi?
Hai lớp remap. Một bàn phím đã flash Mod-DH cộng với host được đặt thành colemak_dh sẽ không cho ra ký tự của layout nào, vì hai map được áp dụng nối tiếp. Nhấn phím có nhãn S: bàn phím gửi R, host đọc đó là phím R rồi in ra P. Chỉ thực hiện việc map ở một nơi.
Hàng phím dưới không đúng với bàn phím của bạn. Chọn colemak_dh trên bàn phím ISO hoặc colemak_dh_iso trên bàn phím ANSI sẽ đặt sai các chữ cái gần góc dưới bên trái. Hãy nhấn phím có nhãn Z ngay sau khi chuyển đổi, vì hai cách bố trí khác nhau ở góc đó.
Màn hình đăng nhập. GDM và SDDM có cấu hình bàn phím riêng, nên prompt nhập mật khẩu vẫn có thể dùng QWERTY dù session của bạn không dùng QWERTY. keyd và firmware tránh được vấn đề này vì cả hai đã hoạt động trước khi greeter hiển thị.
Caps Lock. Layout Colemak được công bố cũng chuyển Caps Lock thành Backspace, nhưng các bản triển khai không thống nhất về việc có áp dụng thay đổi này hay không. Kiểm tra phím đó ngay sau khi chuyển đổi. Phát hiện ra giữa câu đang gõ sẽ rất khó chịu.
Tốc độ trong một thời gian. Trong 2 ngày đầu, tốc độ có thể giảm đủ nhiều để bạn cân nhắc quay lại layout cũ. Điều đó là bình thường và xảy ra với bất kỳ ai thay đổi layout.
FAQ
Có đáng chuyển sang Colemak Mod-DH nếu tôi đã gõ Colemak tiêu chuẩn không?
Nếu bạn đã gõ hoàn toàn theo phản xạ, câu trả lời thực tế thường là không. Sáu chữ cái thay đổi, trong đó có hai chữ cái thường được gõ bằng ngón trỏ, và như vậy đủ để phá vỡ phản xạ mà bạn đã mất nhiều tháng xây dựng. Những người đã chuyển đổi cho biết họ gõ rất chậm trong vài ngày và cần vài tuần để lấy lại tốc độ cũ. Lợi ích nằm ở sự thoải mái chứ không phải tốc độ: D và H không còn yêu cầu di chuyển bàn tay sang bên. Hãy chuyển đổi nếu ngón trỏ của bạn bị khó chịu, hoặc nếu bạn dùng bàn phím lập trình được và việc quay lại bố cục cũ chỉ cần flash lại một lần.
Colemak Mod-DH có làm hỏng Ctrl+Z, Ctrl+X, Ctrl+C và Ctrl+V không?
Nó làm thay đổi một phần nhóm phím tắt này, còn Colemak tiêu chuẩn thì không. Colemak tiêu chuẩn giữ Z, X, C và V tại các vị trí QWERTY, nên cả 4 phím tắt vẫn ở nơi tay bạn quen dùng. Mod-DH cần hàng dưới cùng bên trái cho D, nên phải di chuyển một phím nào đó. Trong bố cục cơ bản, Z, X và C giữ nguyên vị trí còn V chuyển sang phải 1 phím. Trong bố cục angle mod, cả nhóm trượt sang trái 1 phím và Z được chuyển sang vị trí khác. Sau khi chuyển đổi, hãy nhấn phím có nhãn Z để xem implementation của bạn cung cấp bố cục nào.
Làm cách nào kiểm tra hệ thống Linux có biến thể colemak_dh không?
Chạy localectl list-x11-keymap-variants us | grep colemak. Mọi mục được liệt kê ở đó đều có thể được chọn theo tên. Hãy kiểm tra trong một X session bằng setxkbmap -layout us -variant colemak_dh và xác nhận bằng setxkbmap -query. Nếu thiếu biến thể này, setxkbmap sẽ in Error loading new keyboard description và layout không thay đổi. Trong trường hợp đó, bạn có thể dùng một xkb variant tùy chỉnh, keyd remapper hoặc firmware của bàn phím.
Colemak Mod-DH có hoạt động trong Linux text console không?
Không, nếu chỉ cài bố cục này. Virtual console có keymap riêng do loadkeys nạp và không đọc các thiết lập xkb của desktop. Trên Debian và Ubuntu, ckbcomp us colemak_dh | sudo loadkeys - chuyển xkb variant thành console keymap cho lần boot hiện tại. Đặt XKBVARIANT trong /etc/default/keyboard rồi chạy sudo setupcon sẽ giữ thiết lập này sau khi reboot. keyd hoạt động trong console trên mọi distribution vì nó remap tại kernel input layer. Firmware cũng hoạt động ở đó và không cần cài gì trên máy.
Nên chọn biến thể Mod-DH nào cho bàn phím của tôi?
Hãy chọn theo kiểu bàn phím vật lý. colemak_dh dành cho bàn phím ANSI, loại có phím Enter rộng và phẳng cùng phím Shift trái dài. colemak_dh_iso dành cho bàn phím ISO, loại có phím Enter cao và một phím bổ sung giữa Shift trái và Z. colemak_dh_ortho dành cho bàn phím matrix có các cột thẳng. Các biến thể wide di chuyển bàn tay phải ra ngoài 1 cột và chỉ phù hợp nếu bạn đã quyết định muốn bố cục đó. Nếu các chữ cái ở khu vực dưới cùng bên trái xuất hiện sai, bạn đã chọn nhầm biến thể.