SSD Nodes Learn 🎉 VPS kutoka $5.50/mwezi
Mwongozo Matt ConnorNa Matt Connor · Imeboreshwa 2026-08-13

Jinsi ya kuweka mpangilio wa Colemak kwenye Linux

Jifunze kusanidi Colemak kwenye konsoi, X11, na Wayland. Makala hii inaeleza kwa nini seva ya SSH haihitaji mpangilio huu na jinsi ya kutumia Vim kwa funguo za hjkl na Ctrl.

Mahali ambapo mpangilio wa Colemak hupatikana kwenye Linux

Colemak kwenye Linux si mpangilio mmoja wa mfumo mzima. Mpangilio huu hutekelezwa na chochote kinachosoma kibodi kwa wakati huo, kwa hivyo hupatikana katika mojawapo ya maeneo matatu: konsoi ya maandishi (text console), seva ya X11, au Wayland compositor yako. Ukiweka kwenye sehemu isiyo sahihi, hakuna kitakachotokea.

Chaguo la nne hupita mfumo wa uendeshaji kabisa. Kibodi inayobadilisha ramani (remap) katika firmware yake yenyewe, kama vile bodi inayoendesha QMK au VIA, hutuma misimbo ya herufi unazotaka. Hivyo, kila mashine unayochomeka kibodi hiyo itachapa kwa Colemak bila usanidi wowote, ikijumuisha konsoi ya seva na mashine ambayo si yako. Hasara yake ni kwamba kibodi ya laptop yako itaendelea kuchapa kwa QWERTY.

Sehemu iliyobaki ya mwongozo huu inashughulikia matabaka matatu ya programu, sababu inayofanya seva ya mbali (remote server) karibu kamwe isihitaji yoyote kati ya hayo, na athari za mabadiliko haya kwa Vim na njia za mkato za terminal yako.

Angalia kile mfumo wako tayari unacho

Tekeleza amri hizi kabla ya kubadilisha chochote. Zinaonyesha mpangilio wa sasa na orodha ya lahaja za Colemak ambazo hifadhidata yako ya kibodi ya X inatoa.

localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemak

Amri ya mwisho inapaswa kuchapisha colemak na colemak_dh. Colemak imekuwa ndani ya xkeyboard-config kwa miaka mingi. Colemak-DH ilifika katika toleo la 2.34, kwa hivyo ni toleo la zamani pekee ndilo litakalokosa toleo hilo. Kufikia Agosti 2026, Ubuntu 24.04 na Debian 13 zote husafirisha toleo jipya zaidi ya hilo.

Ikiwa setxkbmap -query itaripoti kuwa haiwezi kufungua display, uko kwenye session ya Wayland na compositor ndiye anayemiliki mpangilio. Kisa hicho kina sehemu yake hapa chini.

Colemak au Colemak-DH

Colemak hubadilisha nafasi za funguo kumi na saba kutoka kwenye mpangilio wa QWERTY na kuziacha funguo kumi kama zilivyo, ikiwemo Z, X, C na V, ili njia za mkato za undo, cut, copy na paste zibaki mahali ambapo mkono wako wa kushoto unazitarajia. Utangamano huo ndio sababu kuu ya mpangilio huu kuwa na muundo ulionao.

Colemak-DH ni marekebisho ya Colemak. Inahamisha D, B na G, na kubadilishana nafasi ya H na M, kwa sababu Colemak ya kawaida inakulazimisha kutumia kidole cha shahada kunyoosha kuelekea safu ya katikati ya kibodi ili kuchapa D na H. Marekebisho rasmi yanahakikisha kila herufi inabaki kwenye kidole kilekile ilichotumia katika Colemak, hivyo mtumiaji wa Colemak anayehamia DH anakabiliwa na mabadiliko madogo badala ya kujifunza mpangilio mpya kabisa. Toleo la XKB ni colemak_dh, likiwa na colemak_dh_iso kwa ajili ya kibodi zenye ufunguo wa ziada kando ya shift ya kushoto.

Ukitokea QWERTY, kujifunza mojawapo ya hizi ni kazi ya mara moja, hivyo chagua kulingana na faraja yako na uishie hapo. Kubadilisha mpangilio kwa mara ya pili kunagharimu juhudi sawa na mara ya kwanza, kwa sababu kitu unachojenga upya ni kumbukumbu ya misuli inayohusiana na nafasi za funguo.

Kuweka Colemak katika X11 kwa kutumia setxkbmap na localectl

setxkbmap us -variant colemak
setxkbmap -query

setxkbmap -query sasa inapaswa kuripoti variant: colemak, na kuandika katika dirisha lolote kunapaswa kutoa herufi za Colemak. Mabadiliko haya hudumu kwa muda wa session ya X na hayaandiki chochote kwenye diski, jambo linalofanya hii kuwa njia salama ya kujaribu mpangilio huu kwa saa moja.

Ili kuhifadhi mabadiliko haya baada ya reboot:

sudo localectl set-x11-keymap us pc105 colemak
localectl status

Mpangilio wa hoja ni layout, ikifuatiwa na model, kisha variant. localectl status sasa inapaswa kuonyesha X11 Layout: us na X11 Variant: colemak. localectl pia hubadilisha chaguo lako kuwa keymap ya console iliyo karibu zaidi isipokuwa uongeze --no-convert, kwa hivyo kwenye mifumo mingi amri hii moja inashughulikia pia tty. Kwenye Debian na Ubuntu, kagua /etc/default/keyboard baada ya hapo, kwa sababu faili hiyo ndiyo inayosomwa na console-setup wakati wa boot.

Kuweka Colemak kwenye Wayland

Kikao cha Wayland hakina seva ya X ya kusanidi. Compositor hupakia ramani ya vitufe (keymap) na kuikabidhi kwa kila programu, kwa hivyo mpangilio huu ni mpangilio wa compositor. Hii ndiyo sababu setxkbmap inaonekana kutofanya kazi huko: ama inashindwa kupata display, au inabadilisha XWayland pekee, na programu zako za asili za Wayland huipuuza.

Kwenye GNOME, mpangilio huu ni ufunguo wa gsettings:

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"

Unatumika mara moja, bila kuhitaji kutoka (logout). Kamba ya us+colemak ni mpangilio na lahaja (variant) iliyounganishwa na alama ya kujumlisha.

Kwenye sway, iweke kwenye ~/.config/sway/config:

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

Pakia upya kwa swaymsg reload. swaymsg -t get_inputs huorodhesha kila kifaa cha kuingizia data (input device) pamoja na mpangilio unaokitumia, ambayo ndiyo ukaguzi wa kufanya wakati kibodi moja tu inafanya kazi vibaya.

Kwenye KDE Plasma, fungua System Settings, kisha Keyboard, kisha Layouts, na uongeze English (US) ukiwa na lahaja ya Colemak.

Weka Colemak kwenye console ya maandishi

Console ni tty ya maandishi pekee unayoweza kuifikia kwa kutumia Ctrl+Alt+F3, na ina mfumo wake wa ramani ya vitufe (keymap). Hakuna unachoweka kwenye X11 au kwenye compositor kinachoweza kuathiri console hii, jambo ambalo ni muhimu ikiwa unafanya kazi kwenye workbench ya terminal kwenye virtual console tupu.

Kwenye Debian na Ubuntu, hariri /etc/default/keyboard:

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""

Kisha itekeleze:

sudo setupcon

Andika kwenye console ili kuthibitisha. console-setup hubadilisha maelezo hayo ya XKB kuwa ramani ya vitufe ya console kwa kutumia ckbcomp, hivyo console na X hushiriki maelezo sawa kwenye mifumo hii.

Kwenye usambazaji (distributions) zinazotumia ramani za vitufe za kbd moja kwa moja, kwanza tafuta jina lake:

localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9

Kifurushi cha kbd kinakuja na ramani ya console ya Colemak kama i386/colemak/en-latin9, kwa hivyo jina unaloliingiza kwa kawaida ni en-latin9 na si colemak. Ingiza jina linaloonekana kwenye orodha, kwa sababu jina lisilokuwepo litakataliwa.

sudo loadkeys en-latin9 hubadilisha console ya sasa mara moja, na sudo loadkeys us huirudisha katika hali yake ya awali. Ichukulie loadkeys kama jaribio badala ya usanidi wa kudumu: mabadiliko hayo hudumu hadi kompyuta itakapowashwa upya (reboot), na kwenye Debian na Ubuntu, amri ya setupcon inayotekelezwa wakati wa boot hurejesha chochote kilichowekwa kwenye /etc/default/keyboard.

Je, VPS isiyo na kifaa cha kuingizia data (headless) inahitaji mpangilio wa kibodi wa Colemak?

Karibu kamwe, na sababu ya hili inafaa kueleweka. SSH hubeba herufi, si nafasi za vitufe. Emulator yako ya terminal hupokea kitufe ulichobonyeza, mpangilio wako wa ndani wa kibodi huibadilisha kuwa herufi, na herufi hiyo pekee ndiyo husafiri kupitia muunganisho huo. Seva hupokea n bila njia yoyote ya kujua ni kitufe kipi halisi kilichozalisha herufi hiyo. Kwa hivyo, mpangilio unaoweka kwenye laptop yako hukufuata katika kila kikao cha SSH, ndani ya tmux, na katika kila kihariri unachokiendesha kwa mbali, na mashine ya mbali haihitaji usanidi wowote wa kibodi.

Zingatia hili kabla ya kuanza kuhariri faili za kibodi kwenye seva za uzalishaji (production). Ikiwa unasimamia kundi la seva za Linux, mpangilio wa kibodi ni wa mashine iliyo mbele yako na si wa kundi zima la seva, kwa hivyo hauna nafasi katika usanidi wako wa awali (provisioning). Dakika kumi za kwanza kwenye VPS mpya zina kazi muhimu zaidi kuliko hii.

Kuna vighairi viwili vinavyofaa kupangiwa. Cha kwanza ni console iliyounganishwa moja kwa moja kwenye mashine yenyewe. Console ya kivinjari katika paneli ya mtoa huduma kwa kawaida hujitambulisha kwa mashine pepe (virtual machine) kama kibodi, kwa hivyo vitufe vinavyobonyezwa hufika kama scancodes na ramani ya kibodi (keymap) ya console ya seva ndiyo huamua ni herufi ipi inayoonekana. Hiyo ndiyo sehemu pekee ambapo mpangilio uliowekwa kwenye seva hufanya kazi, na pia ndiyo njia yako ya uokoaji wakati SSH inapoacha kufanya kazi, kwa hivyo ramani ya kibodi ya console iliyokamilika nusu hapo ni hatari ya kweli.

Serial console hufanya kazi kwa njia tofauti, kwa sababu hubeba herufi na mpangilio wako wa ndani wa kibodi ndio hutumika. Kighairi cha pili ni mashine inayotumiwa na watu wengi. Ramani ya kibodi ya console huathiri mfumo mzima, kwa hivyo kuweka Colemak kwenye mashine ambayo watu wengine huingia pia kutawabadilishia wao, na hawatabaini sababu ya hilo.

Nini hutokea kwa funguo za hjkl za Vim

Kwenye Colemak, h haisogezi mshale. Funguo nyingine tatu hufanya kazi. j iko chini ya Y ya QWERTY, k iko chini ya N ya QWERTY, na l iko chini ya U ya QWERTY, kwa hivyo funguo za kusogeza mshale zimetawanyika katika safu tatu badala ya kukaa chini ya vidole vinne.

Kuna majibu mawili yanayofaa, na yote yana watumiaji halisi.

Zingatia mipangilio chaguo-msingi na ujifunze upya nafasi hizo. Hakuna kingine katika usanidi wako kitakachoharibika, kila plugin itaendelea kufanya kazi, na kila kidokezo cha Vim kilichoandikwa na mtu mwingine kitakufaa kama kilivyoandikwa.

Au, badilisha ramani (remap) ya funguo nne zilizo chini ya mkono wako wa kulia mahali ambapo hjkl ilikuwa. Kwenye Colemak, funguo hizo hutoa h, n, e, na i. Kwenye Colemak-DH, funguo hizo nne za kimwili hutoa m, n, e, na i, kwa sababu DH ilibadilishana H na M.

noremap n j
noremap e k
noremap i l
noremap l i
noremap k n

n sasa inasogeza chini, e inasogeza juu, i inasogeza kulia, na h ilikuwa tayari inasogeza kushoto. Mistari miwili ya mwisho inarudisha amri ulizoziondoa: l inaanza hali ya kuingiza maandishi (insert mode), na k inarudia utafutaji wa mwisho. Fanya vivyo hivyo kwa herufi kubwa, la sivyo Shift pamoja na ufunguo wa kusogeza mshale itakushangaza.

Chaguo la langmap la Vim hufanya kazi sawa kwa mistari michache:

set langmap=nj,ek,il,li,kn

Kila jozi inasomeka kama herufi uliyochapa ikifuatiwa na herufi ambayo Vim inapaswa kuifanyia kazi. Hii inatumika kwa hali ya kawaida (normal mode) pekee, kwa hivyo hali ya kuingiza maandishi bado huchapa maandishi ya Colemak kama kawaida. Vikwazo viwili vimeandikwa katika msaada wa Vim: langmap haitumiki kwa mchanganyiko wa Ctrl au Alt, na ramani za plugin zilizoandikwa kwa ajili ya funguo chaguo-msingi zinaweza kufanya kazi isivyo kawaida chini ya mpangilio huu.

Chagua njia yoyote, lakini chagua mara moja. Ramani unayoacha baada ya mwezi mmoja itakugharimu mwezi mwingine wa kujifunza.

Nini hutokea kwa njia za mkato za terminal

Msimbo wa udhibiti wa terminal hutokana na herufi, si kutoka kwa kitufe cha kimwili, kwa hivyo kila njia ya mkato ya Ctrl husogea pamoja na mpangilio wa kibodi. Ctrl+C, Ctrl+Z, Ctrl+X na Ctrl+V hubaki katika nafasi zake, kwa sababu Colemak kwa makusudi huacha Z, X, C na V mahali ambapo QWERTY inazo.

Njia nne za mkato unazotumia kila siku husogea. Ctrl+D, inayomaliza ingizo, sasa iko mahali ambapo QWERTY ina G. Ctrl+R, utafutaji wa historia, iko mahali ambapo QWERTY ina S. Ctrl+E, mwisho wa mstari, iko mahali ambapo QWERTY ina K. Ctrl+U, inayofuta mstari, iko mahali ambapo QWERTY ina I.

tmux huhifadhi prefix yake ya kawaida, kwa sababu B haisogei katika Colemak. Kwenye Colemak-DH, B husogea hadi safu ya juu na prefix husogea nayo, jambo ambalo ni la kwanza utakaloliona ikiwa utaweka tmux session ya muda mrefu kwenye VPS. Kubadilisha prefix iwe kitufe unachopenda ni mabadiliko ya mstari mmoja, na ni rahisi kuliko kujifunza upya reflex ileile mara mbili.

Njia za mkato za desktop hufuata kanuni hiyo hiyo. Binding kwenye Super+E husogea pamoja na mpangilio, kwa sababu inafafanuliwa na herufi. Binding kwenye Super+F1 hubaki pale pale, kwa sababu vitufe vya utendaji (function keys) havibadilishwi na mpangilio wa kibodi.

Muda unaotumika kubadili mpangilio

Hakuna mtu anayeweza kukupa muda kamili wa kujifunza. Kuandika kwa kutumia vidole vyote kumi (touch typing) ni kumbukumbu ya misuli. Hujifunzi mahali herufi zilipo, bali unajenga upya reflex inayobadilisha neno kuwa mfuatano wa miondoko ya vidole, kwa hivyo kitu pekee kinachosaidia ni muda unaotumia kuandika.

Watu wanachoripoti, na hizi ni kumbukumbu za mazoezi wanazojirekodia wenyewe badala ya vipimo vilivyodhibitiwa, ni kwamba katika wiki ya kwanza kasi yao inakuwa chini ya nusu ya kasi yao ya zamani, na wanarejea kwenye kasi hiyo ya zamani ndani ya miezi moja hadi mitatu ya matumizi ya kila siku. Tofauti kati ya watu binafsi ni kubwa, kwa hivyo chukulia takwimu hizo kama mwongozo wa jumla badala ya ratiba kamili.

Tabia mbili hufanya mchakato huu kuwa wa polepole. Kubadilisha kati ya QWERTY na Colemak katika siku moja kunafanya reflex zote mbili kuwa dhaifu, kwa hivyo watu wengi wanaofanikiwa kubadili mpangilio hujitolea kikamilifu kwenye mashine yao kuu. Kuanza wakati wa wiki yenye shughuli nyingi kunamaanisha kuandika vibaya chini ya shinikizo la muda, jambo ambalo linakufundisha kutazama kibodi unapoandika.

Weka njia ya kurudi kwenye mpangilio wa awali kabla hujaihitaji, kwa sababu wakati utakaotaka kutumia QWERTY tena ndio wakati ambao kitu fulani kitakuwa kimeharibika na kuna mtu anayekusubiri.

Jinsi ya kurudi kwenye QWERTY haraka

Katika X11, setxkbmap us inarejesha QWERTY mara moja. Kwenye console, sudo loadkeys us inafanya vivyo hivyo. Ili kuondoa mpangilio unaodumu, endesha sudo localectl set-x11-keymap us.

Kitufe cha kubadilisha (toggle) ni bora kuliko amri unayopaswa kuandika ukiwa kwenye mpangilio ambao huwezi kuandika vizuri:

setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggle

Hii inapakia Colemak kama mpangilio wa kwanza na US ya kawaida kama wa pili, na Super+Space inabadilisha kati yao. Koma ya mwisho katika colemak, si kosa la uchapaji: inaupa mpangilio wa kwanza lahaja ya colemak na mpangilio wa pili haupewi lahaja yoyote. Kwenye GNOME, ongeza vyanzo vyote viwili vya ingizo (input sources) katika Settings, ambapo Super+Space tayari inabadilisha kati yao.

Maombi mawili ya nenosiri yapo nje ya session yako ya desktop na yanahitaji uangalizi wa pekee. Login greeter huanza kabla ya mipangilio ya session yako kutumika, kwa hivyo ijaribu kwa kutoka (logout) badala ya kuamini mpangilio huo. Ikiwa diski imesimbwa (encrypted), ombi la passphrase huendeshwa kutoka initramfs, ambayo ina nakala yake ya keymap. Kwenye Debian na Ubuntu, iunde upya kwa sudo update-initramfs -u baada ya kubadilisha /etc/default/keyboard, kisha uwashe upya kompyuta mara moja ili kujaribu wakati bado una njia nyingine ya kuingia kwenye mashine hiyo.

Je, ninaweza kuweka programu moja kwenye QWERTY?

Mpangilio wa kibodi hutumika kabla ya programu kupokea kibonyezo. Seva ya X au compositor hubadilisha scancode kuwa herufi na kuikabidhi kwa programu, kwa hivyo programu haiwezi kuomba mpangilio tofauti. Inaweza tu kubadilisha ramani ya kile inachopokea. Hii ndiyo sababu marekebisho ya Vim yapo kwenye usanidi wa Vim, na kwa nini hakuna njia ya jumla ya kubadilisha mpangilio kwa kila dirisha.

Mbinu mbili zinafanya kazi. Ya kwanza ni kwa kila kifaa. Ikiwa uandishi wa QWERTY unafanyika kwenye kibodi tofauti, weka mpangilio kwenye kifaa hicho badala ya kuuweka kwenye mfumo:

xinput list
setxkbmap -device 12 -layout us

Chukua id kutoka xinput list, na uthibitishe kwa kuandika kwenye kila kibodi kwa zamu. sway hukubali mipangilio hiyo hiyo kwa kila kitambulishi cha ingizo kutoka swaymsg -t get_inputs, na kiteuzi mahususi zaidi hushinda type:keyboard.

Mbinu ya pili ni kufanya ubadilishaji wa ramani ndani ya programu, kama vile langmap ya Vim inavyofanya. Michezo karibu kila mara huwa na skrini ya kuweka funguo (key binding), na kubadilisha funguo za kusogeza hapo huchukua muda mfupi kuliko kupambana na mpangilio kutoka nje. Kwa programu yoyote isiyo na chaguo hilo, weka funguo za kubadilisha mpangilio kama ilivyo hapo juu na uibonyeze kabla ya kuzindua programu hiyo.

FAQ

Je, ninahitaji kuweka Colemak kwenye VPS yangu?

Hapana, ikiwa unaifikia kupitia SSH. SSH hubeba herufi, kwa hivyo mpangilio wako hutatuliwa kwenye kompyuta yako ya mkononi kabla ya data yoyote kutumwa, na seva hupokea baiti zilezile ambazo ingepokea kutoka kwa mtumiaji wa QWERTY. Isipokuwa ni console ya kivinjari katika paneli ya mtoa huduma wako, ambayo huunganishwa kwenye mashine pepe kama kibodi na hutumia ramani ya vitufe ya console ya seva yenyewe. Console hiyo ndiyo njia yako ya uokoaji wakati SSH inaposhindwa, kwa hivyo ibadilishe tu ikiwa una uhakika, na uijaribu wakati SSH bado inafanya kazi.

Je, nijifunze Colemak au Colemak-DH?

Zote mbili zinahitaji kujifunza upya kutoka QWERTY, kwa hivyo chagua kulingana na faraja badala ya gharama ya kuhama. Colemak-DH huhamisha D, B na G na kubadilishana H na M, kwa sababu Colemak ya kawaida huandika D na H kwa kunyoosha kidole cha shahada kwenye safu ya katikati. Majina ya lahaja ya XKB ni colemak na colemak_dh, pamoja na colemak_dh_iso kwa kibodi zilizo na kitufe cha ziada karibu na shift ya kushoto. Endesha localectl list-x11-keymap-variants us | grep colemak ili kuona ni zipi mfumo wako unatoa.

Nini hutokea kwa vitufe vya hjkl vya Vim kwenye Colemak?

h hubaki mahali ilipo. j huhamia chini ya Y ya QWERTY, k chini ya N ya QWERTY, na l chini ya U ya QWERTY, kwa hivyo vitufe vya kishale husambaa kwenye safu tatu. Unaweza kuvijifunza upya mahali vinapokaa, jambo ambalo huweka kila programu-jalizi na kila mafunzo kuwa sahihi, au unaweza kubadilisha ramani ya vitufe vinne chini ya mkono wako wa kulia: h, n, e na i kwenye Colemak, na m, n, e na i kwenye Colemak-DH. Chaguo la langmap la Vim hufanya kazi hiyo hiyo kwa hali ya kawaida (normal mode), ingawa halitumiki kwa mchanganyiko wa Ctrl na linaweza kuchanganya ramani za programu-jalizi.

Itachukua muda gani hadi niandike kwa kasi yangu ya zamani tena?

Tarajia wiki badala ya siku, kwa sababu hii ni kumbukumbu ya misuli na njia pekee ya kujifunza ni mazoezi. Kumbukumbu za mazoezi zilizoripotiwa na watumiaji mara nyingi huelezea wiki ya kwanza ikiwa chini ya nusu ya kasi ya zamani na kurudi kwenye kasi hiyo baada ya mwezi mmoja hadi mitatu ya matumizi ya kila siku. Kubadilisha kati ya QWERTY na Colemak kila siku huongeza muda huo, kwa sababu hakuna reflex inayopata nafasi ya kutulia.

Kwa nini setxkbmap haikufanya chochote kwenye desktop yangu?

Karibu hakika ni kwa sababu session hiyo ni Wayland. Chini ya Wayland, compositor ndiye anayemiliki ramani ya vitufe na kuisukuma kwa kila programu, kwa hivyo setxkbmap ama haiwezi kupata display au inabadilisha XWayland pekee, na programu asilia huipuuza. Weka mpangilio kwenye compositor badala yake: ufunguo wa gsettings wa org.gnome.desktop.input-sources kwenye GNOME, xkb_variant kwenye usanidi wa sway, au ukurasa wa Layouts katika Mipangilio ya Mfumo ya KDE Plasma.

#colemak#keyboard#linux#terminal#productivity