Cara Menggunakan Colemak di Linux, X11, dan Wayland
Pelajari cara mengatur Colemak di konsol Linux, X11, dan Wayland, alasan SSH tidak memerlukan layout, serta dampaknya pada Vim hjkl dan tombol Ctrl.
Lokasi layout Colemak di Linux
Colemak di Linux bukan pengaturan yang berlaku di seluruh sistem. Layout diterapkan oleh komponen yang sedang membaca input keyboard pada saat itu. Karena itu, layout berada di salah satu dari tiga tempat: konsol teks, server X11, atau compositor Wayland. Jika Anda mengaturnya di tempat yang salah, tidak akan ada perubahan yang terlihat.
Ada opsi keempat yang sepenuhnya melewati sistem operasi. Keyboard yang melakukan remapping melalui firmware-nya sendiri, seperti keyboard yang menjalankan QMK atau VIA, mengirimkan kode untuk huruf yang Anda inginkan. Dengan demikian, setiap mesin yang Anda sambungkan akan mengetik dalam Colemak tanpa konfigurasi apa pun, termasuk konsol server dan mesin yang bukan milik Anda. Kekurangannya, keyboard laptop Anda tetap mengetik dalam QWERTY.
Bagian selanjutnya membahas tiga lapisan software, alasan server remote hampir tidak pernah memerlukan salah satunya, serta dampak perubahan ini terhadap Vim dan shortcut terminal Anda.
Periksa apa yang sudah tersedia di sistem
Jalankan perintah berikut sebelum mengubah apa pun. Perintah tersebut menampilkan pengaturan saat ini dan daftar varian Colemak yang tersedia di basis data keyboard X.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakPerintah terakhir seharusnya menampilkan colemak dan colemak_dh. Colemak sudah tersedia di xkeyboard-config selama bertahun-tahun. Colemak-DH sudah tersedia pada versi 2.33 yang dirilis pada Juni 2021. Jadi, hanya rilis lama yang mungkin tidak memilikinya. Per Oktober 2026, Ubuntu 24.04 menyediakan xkeyboard-config 2.41 dan Debian 13 menyediakan versi 2.42. Keduanya sudah menyertakan Colemak-DH.
Jika setxkbmap -query melaporkan bahwa display tidak dapat dibuka, berarti Anda berada dalam sesi Wayland dan compositor mengelola layout tersebut. Kasus ini dibahas dalam bagian tersendiri di bawah.
Colemak atau Colemak-DH
Colemak memindahkan tujuh belas tombol dari posisi QWERTY dan membiarkan sepuluh tombol tetap pada posisinya, termasuk Z, X, C, dan V. Dengan demikian, pintasan undo, cut, copy, dan paste tetap berada di tempat yang diharapkan tangan kiri. Kompatibilitas itulah alasan utama tata letak ini memiliki bentuk seperti sekarang.
Colemak-DH adalah modifikasi Colemak. Tata letak ini memindahkan D, B, dan G, serta menukar posisi H dengan M, karena Colemak standar mengetik D dan H dengan merentangkan salah satu jari telunjuk ke kolom tengah keyboard. Modifikasi resmi ini mempertahankan setiap huruf pada jari yang sama seperti dalam Colemak. Karena itu, pengguna Colemak yang beralih ke DH hanya menghadapi perubahan kecil, bukan tata letak baru. Varian XKB adalah colemak_dh, sedangkan colemak_dh_iso digunakan untuk keyboard yang memiliki tombol tambahan di sebelah shift kiri.
Jika Anda beralih dari QWERTY, keduanya tetap memerlukan satu proses belajar ulang. Jadi, pilih berdasarkan kenyamanan, lalu jangan terus mengganti pilihan. Beralih ke tata letak lain untuk kedua kalinya membutuhkan upaya yang kurang lebih sama seperti yang pertama, karena hal yang sedang dibangun ulang adalah memori motorik yang terikat pada posisi tombol. Jika pertanyaan yang belum terjawab adalah apakah Anda perlu meninggalkan QWERTY, jawab terlebih dahulu melalui perbandingan Colemak, Dvorak, dan QWERTY sebelum menghabiskan satu bulan untuk membangun ulang memori motorik tersebut.
Atur Colemak di X11 dengan setxkbmap dan localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query kini seharusnya melaporkan variant: colemak, dan pengetikan di jendela mana pun seharusnya menghasilkan huruf Colemak. Perubahan ini berlaku selama sesi X dan tidak menulis apa pun ke disk, sehingga aman digunakan untuk mencoba layout tersebut selama satu jam.
Agar tetap berlaku setelah reboot:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusUrutan argumennya adalah layout, kemudian model, lalu variant. localectl status kini seharusnya menampilkan X11 Layout: us dan X11 Variant: colemak. localectl juga mengonversi pilihan tersebut menjadi keymap konsol yang paling sesuai, kecuali Anda menambahkan --no-convert. Oleh karena itu, pada banyak sistem, satu perintah ini juga mencakup tty. Pada Debian dan Ubuntu, periksa /etc/default/keyboard setelahnya karena file tersebut dibaca oleh console-setup saat boot.
Atur Colemak pada Wayland
Sesi Wayland tidak memiliki X server yang perlu dikonfigurasi. Compositor memuat keymap dan meneruskannya ke setiap aplikasi, sehingga layout merupakan pengaturan compositor. Karena itu, setxkbmap tampak tidak berfungsi pada Wayland: perintah tersebut mungkin gagal menemukan display, atau hanya mengubah XWayland, sedangkan aplikasi Wayland native mengabaikannya.
Pada GNOME, pengaturan ini menggunakan gsettings key:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"Pengaturan langsung berlaku tanpa logout. String us+colemak berisi layout dan variant yang digabungkan dengan tanda plus.
Pada sway, masukkan pengaturan tersebut ke ~/.config/sway/config:
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}Muat ulang dengan swaymsg reload. swaymsg -t get_inputs menampilkan setiap perangkat input beserta layout yang digunakannya. Jalankan perintah ini jika hanya satu keyboard yang bermasalah.
Pada KDE Plasma, buka System Settings, lalu Keyboard, kemudian Layouts, dan tambahkan English (US) dengan variant Colemak.
Atur Colemak pada konsol teks
Konsol adalah tty teks biasa yang dapat Anda buka dengan Ctrl+Alt+F3. Konsol memiliki keymap sendiri. Pengaturan yang Anda tetapkan di X11 atau compositor tidak diterapkan ke konsol. Hal ini penting jika Anda bekerja pada terminal kerja pada konsol virtual biasa.
Di Debian dan Ubuntu, edit /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Kemudian terapkan pengaturannya:
sudo setupconKetikkan sesuatu di konsol untuk mengonfirmasinya. console-setup mengonversi deskripsi XKB tersebut menjadi keymap konsol dengan ckbcomp. Dengan demikian, konsol dan X menggunakan satu deskripsi yang sama pada sistem ini.
Pada distribusi yang menggunakan keymap kbd secara langsung, cari namanya terlebih dahulu:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9Paket kbd menyediakan peta konsol Colemak dengan nama i386/colemak/en-latin9. Karena itu, nama yang biasanya Anda berikan adalah en-latin9, bukan colemak. Direktori yang sama pada source kbd saat ini juga berisi peta konsol Colemak-DH dengan nama seperti mod-dh-ansi-us dan mod-dh-iso-us. Ketersediaannya bergantung pada versi kbd yang digunakan distribusi Anda. Karena itu, cari juga mod-dh dalam daftar. Berikan nama yang muncul dalam daftar. Nama yang tidak tersedia akan ditolak.
sudo loadkeys en-latin9 segera mengubah konsol saat ini, sedangkan sudo loadkeys us mengembalikannya. Perlakukan loadkeys sebagai pengujian, bukan konfigurasi. Pengaturan tersebut hanya berlaku sampai reboot. Pada Debian dan Ubuntu, proses setupcon saat boot akan memulihkan pengaturan yang ditentukan oleh /etc/default/keyboard.
Apakah VPS tanpa antarmuka grafis memerlukan layout Colemak?
Hampir tidak pernah, dan alasannya perlu dipahami. SSH membawa karakter, bukan posisi tombol. Emulator terminal menerima penekanan tombol, layout lokal mengubahnya menjadi karakter, lalu hanya karakter tersebut yang dikirim melalui koneksi. Server menerima n tanpa cara untuk mengetahui tombol fisik mana yang menghasilkannya. Jadi, layout yang Anda atur pada laptop akan tetap digunakan dalam setiap sesi SSH, dalam tmux, dan dalam setiap editor yang Anda jalankan dari jarak jauh. Mesin remote sama sekali tidak memerlukan konfigurasi keyboard.
Ingat hal ini sebelum mulai mengedit berkas keyboard pada server produksi. Jika Anda mengelola banyak server Linux, layout tersebut berlaku untuk mesin di depan Anda, bukan untuk fleet server. Karena itu, layout tidak perlu dimasukkan ke dalam provisioning. Sepuluh menit pertama pada VPS baru memberikan pekerjaan yang lebih berguna daripada hal ini.
Ada dua pengecualian yang perlu direncanakan. Pengecualian pertama adalah console yang terhubung langsung ke mesin. Browser console pada panel provider biasanya dikenali oleh virtual machine sebagai keyboard. Karena itu, penekanan tombol diterima sebagai scancode, lalu console keymap milik server menentukan karakter yang muncul. Hanya di tempat ini layout yang diatur pada server akan berlaku. Console juga merupakan jalur pemulihan ketika SSH tidak lagi berfungsi. Karena itu, console keymap yang belum selesai dikonfigurasi dapat menimbulkan risiko nyata.
Serial console berperilaku berbeda karena membawa karakter, sehingga layout lokal Anda yang berlaku. Pengecualian kedua adalah mesin bersama. Console keymap berlaku untuk seluruh sistem. Jadi, jika Anda menetapkan Colemak pada mesin yang juga digunakan orang lain untuk login, layout tersebut akan berubah bagi mereka. Mereka mungkin tidak mengetahui penyebabnya.
Posisi tombol hjkl di Vim
Pada Colemak, h tidak berpindah. Tiga tombol lainnya berpindah. j berada di bawah tombol Y pada QWERTY, k berada di bawah tombol N pada QWERTY, dan l berada di bawah tombol U pada QWERTY. Akibatnya, tombol kursor tersebar di tiga baris, bukan berada di bawah empat jari.
Ada dua pilihan yang dapat digunakan, dan keduanya memiliki banyak pengguna.
Pertahankan pengaturan default dan pelajari kembali posisinya. Tidak ada bagian lain dari setup yang berubah, semua plugin tetap berfungsi, dan setiap tips Vim yang ditulis orang lain tetap dapat Anda ikuti persis seperti yang tertulis.
Atau, remap empat tombol yang berada di bawah tangan kanan Anda, pada posisi fisik tempat hjkl sebelumnya berada. Pada Colemak, tombol-tombol tersebut menghasilkan h, n, e, dan i. Pada Colemak-DH, keempat tombol fisik yang sama menghasilkan m, n, e, dan i karena DH menukar H dengan M.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nSekarang n berpindah ke bawah, e berpindah ke atas, i berpindah ke kanan, dan h sudah berfungsi sebagai tombol kiri. Dua baris terakhir mengembalikan perintah yang Anda pindahkan: l memulai mode insert, dan k mengulangi pencarian terakhir. Terapkan hal yang sama pada huruf kapital. Jika tidak, Shift plus tombol kursor dapat menghasilkan perilaku yang tidak terduga.
Opsi langmap di Vim menjalankan fungsi serupa dengan jumlah baris yang lebih sedikit:
set langmap=nj,ek,il,li,knSetiap pasangan dibaca sebagai karakter yang Anda ketik, diikuti karakter yang harus diproses Vim. Opsi ini hanya berlaku untuk mode normal, sehingga mode insert tetap mengetik teks Colemak secara normal. Bantuan Vim sendiri mendokumentasikan dua batasan: langmap tidak berlaku untuk kombinasi Ctrl atau Alt, dan mapping plugin yang dibuat berdasarkan tombol default dapat berperilaku tidak semestinya saat opsi ini digunakan.
Apa pun pilihan Anda, tetapkan satu pilihan dan gunakan secara konsisten. Remap yang Anda tinggalkan setelah satu bulan akan membuat Anda kehilangan satu bulan lagi untuk beradaptasi.
Apa yang terjadi pada shortcut terminal
Kode kontrol terminal berasal dari karakter, bukan dari tombol fisik. Karena itu, setiap shortcut Ctrl berpindah mengikuti layout. Ctrl+C, Ctrl+Z, Ctrl+X, dan Ctrl+V tetap pada posisinya karena Colemak sengaja mempertahankan posisi Z, X, C, dan V seperti pada QWERTY.
Empat shortcut yang digunakan setiap hari berpindah posisi. Ctrl+D, yang mengakhiri input, kini berada pada posisi G di QWERTY. Ctrl+R untuk mencari riwayat berada pada posisi S di QWERTY. Ctrl+E untuk menuju akhir baris berada pada posisi K di QWERTY. Ctrl+U, yang menghapus isi baris, berada pada posisi I di QWERTY.
tmux mempertahankan prefix default-nya karena B tidak berpindah pada Colemak. Pada Colemak-DH, B berpindah ke baris atas dan prefix ikut berpindah. Ini adalah hal pertama yang akan Anda sadari jika tetap menggunakan sesi tmux yang berjalan lama pada VPS. Mengubah prefix ke tombol yang Anda sukai hanya memerlukan satu baris perubahan dan lebih mudah daripada melatih ulang refleks yang sama dua kali.
Shortcut desktop mengikuti aturan yang sama. Binding pada Super+E berpindah mengikuti layout karena ditentukan oleh karakter. Binding pada Super+F1 tetap pada posisinya karena tombol fungsi tidak dipetakan ulang oleh layout.
Berapa lama peralihan ini menghambat Anda
Tidak ada yang dapat memberi angka pasti untuk kondisi tangan Anda. Mengetik tanpa melihat papan ketik bergantung pada memori motorik. Anda tidak sedang mempelajari letak huruf, tetapi membangun ulang refleks yang mengubah kata menjadi urutan gerakan jari. Karena itu, satu-satunya masukan yang membantu adalah waktu yang digunakan untuk mengetik.
Menurut laporan pengguna—berupa catatan latihan mandiri, bukan hasil pengukuran terkontrol—pada minggu pertama, kecepatan mereka jauh di bawah setengah kecepatan sebelumnya. Mereka biasanya kembali ke kecepatan lama dalam waktu antara satu hingga tiga bulan jika digunakan setiap hari. Perbedaannya lebar antarpengguna, jadi anggap angka tersebut sebagai gambaran umum, bukan jadwal pasti.
Dua kebiasaan dapat memperlambat prosesnya. Berganti-ganti antara QWERTY dan Colemak sepanjang hari membuat kedua refleks tetap lemah. Karena itu, kebanyakan orang yang menyelesaikan peralihan ini berkomitmen sepenuhnya pada komputer utama mereka. Memulainya pada minggu yang sibuk berarti Anda akan mengetik dengan buruk di bawah tekanan waktu. Hal ini melatih Anda untuk melihat ke bawah pada tombol.
Siapkan cara untuk kembali ke tata letak sebelumnya sebelum Anda membutuhkannya. Saat Anda kembali menginginkan QWERTY, biasanya terjadi ketika sesuatu rusak dan seseorang sedang menunggu.
Cara beralih kembali ke QWERTY dengan cepat
Di X11, setxkbmap us segera mengembalikan QWERTY. Pada konsol, sudo loadkeys us melakukan hal yang sama. Untuk membatalkan pengaturan permanen, jalankan sudo localectl set-x11-keymap us.
Toggle lebih baik daripada perintah yang harus Anda ketik menggunakan layout yang belum dapat Anda gunakan:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_togglePerintah ini memuat Colemak sebagai layout pertama dan US standar sebagai layout kedua. Super+Space digunakan untuk berpindah di antara keduanya. Koma di akhir colemak, bukan kesalahan ketik. Koma tersebut menetapkan varian colemak untuk layout pertama dan tanpa varian untuk layout kedua. Di GNOME, tambahkan kedua sumber input melalui Settings. Super+Space sudah dapat digunakan untuk berpindah di antara keduanya.
Dua prompt kata sandi berada di luar sesi desktop Anda dan memerlukan perhatian terpisah. Layar login dimulai sebelum pengaturan sesi Anda diterapkan. Karena itu, uji dengan logout, bukan dengan mengandalkan pengaturan tersebut. Jika disk dienkripsi, prompt passphrase dijalankan dari initramfs, yang memiliki salinan keymap sendiri. Di Debian dan Ubuntu, bangun ulang initramfs dengan sudo update-initramfs -u setelah Anda mengubah /etc/default/keyboard. Kemudian reboot sekali untuk melakukan pengujian saat Anda masih memiliki cara lain untuk mengakses mesin.
Dapatkah saya mempertahankan satu program pada QWERTY?
Tata letak diterapkan sebelum aplikasi menerima input tombol. X server atau compositor mengubah scancode menjadi karakter lalu menyerahkan karakter tersebut kepada aplikasi, sehingga aplikasi tidak dapat meminta tata letak yang berbeda. Aplikasi hanya dapat memetakan ulang karakter yang diterimanya. Karena itu, perbaikan untuk Vim ditempatkan dalam konfigurasi Vim, dan tidak ada pengalih tata letak umum per jendela yang dapat digunakan.
Ada dua pendekatan yang dapat digunakan. Pendekatan pertama adalah berdasarkan perangkat. Jika pengetikan QWERTY dilakukan pada keyboard terpisah, tetapkan tata letak pada perangkat tersebut, bukan pada sistem:
xinput list
setxkbmap -device 12 -layout usAmbil id dari xinput list, lalu konfirmasikan dengan mengetik pada setiap keyboard secara bergantian. sway menerima pengaturan yang sama untuk setiap pengenal input dari swaymsg -t get_inputs, dan selector yang lebih spesifik akan diprioritaskan daripada type:keyboard.
Pendekatan kedua adalah melakukan pemetaan ulang di dalam aplikasi, seperti yang dilakukan langmap milik Vim. Game hampir selalu memiliki layar pengaturan binding tombol, dan memetakan ulang tombol gerakan di sana membutuhkan waktu lebih singkat daripada mengatasi tata letak dari luar aplikasi. Untuk aplikasi yang tidak memiliki keduanya, tetapkan toggle tata letak di atas dan tekan tombol tersebut sebelum menjalankan aplikasi.
FAQ
Apakah saya perlu mengatur Colemak pada VPS?
Tidak, jika Anda mengaksesnya melalui SSH. SSH mengirim karakter, sehingga layout ditentukan pada laptop Anda sebelum apa pun dikirim, dan server menerima byte yang sama seperti yang diterima dari pengetik dengan layout QWERTY. Pengecualiannya adalah konsol browser pada panel provider Anda, yang terhubung ke mesin virtual sebagai keyboard dan menggunakan keymap konsol milik server. Konsol tersebut merupakan jalur pemulihan ketika SSH gagal. Karena itu, ubah pengaturannya hanya jika Anda yakin, lalu uji saat SSH masih berfungsi.
Sebaiknya saya mempelajari Colemak atau Colemak-DH?
Keduanya sama-sama memerlukan satu proses belajar ulang dari QWERTY. Karena itu, pilih berdasarkan kenyamanan, bukan biaya migrasi. Colemak-DH memindahkan D, B, dan G serta menukar H dengan M, karena Colemak biasa mengetik D dan H dengan jangkauan jari telunjuk ke kolom tengah. Nama varian XKB adalah colemak dan colemak_dh, sedangkan colemak_dh_iso digunakan untuk keyboard yang memiliki tombol tambahan di sebelah Shift kiri. Jalankan localectl list-x11-keymap-variants us | grep colemak untuk melihat varian yang tersedia pada sistem Anda.
Apa yang terjadi pada tombol hjkl Vim di Colemak?
h tetap berada di tempatnya. j berpindah ke posisi Y pada QWERTY, k ke posisi N pada QWERTY, dan l ke posisi U pada QWERTY, sehingga tombol kursor tersebar pada tiga baris. Anda dapat mempelajari ulang tombol tersebut di posisi barunya. Dengan demikian, semua plugin dan tutorial tetap berlaku. Alternatifnya, petakan ulang empat tombol di bawah tangan kanan Anda: h, n, e, dan i pada Colemak, serta m, n, e, dan i pada Colemak-DH. Opsi langmap pada Vim menjalankan fungsi yang sama untuk normal mode, tetapi tidak berlaku untuk kombinasi Ctrl dan dapat membingungkan pemetaan plugin.
Berapa lama hingga kecepatan mengetik saya kembali seperti sebelumnya?
Perkirakan waktu dalam hitungan minggu, bukan hari, karena ini berkaitan dengan memori motorik dan satu-satunya cara untuk meningkatkannya adalah berlatih. Catatan latihan yang dilaporkan pengguna umumnya menunjukkan bahwa kecepatan pada minggu pertama jauh di bawah setengah kecepatan sebelumnya, lalu kembali ke tingkat tersebut setelah satu hingga tiga bulan penggunaan setiap hari. Berganti-ganti antara QWERTY dan Colemak setiap hari akan memperpanjang proses tersebut, karena tidak ada refleks yang sempat terbentuk dengan stabil.
Mengapa setxkbmap tidak melakukan apa pun pada desktop saya?
Hampir pasti karena session tersebut menggunakan Wayland. Pada Wayland, compositor mengelola keymap dan menerapkannya ke setiap aplikasi. Akibatnya, setxkbmap mungkin tidak dapat menemukan display atau hanya mengubah XWayland, sementara aplikasi native mengabaikannya. Atur layout pada compositor sebagai gantinya: gunakan key gsettings org.gnome.desktop.input-sources pada GNOME, xkb_variant pada konfigurasi sway, atau halaman Layouts di System Settings KDE Plasma.