Jinsi ya kuweka mpangilio wa Colemak kwenye Linux
Jifunze kusanidi Colemak kwenye konso, X11, na Wayland. Pata ufafanuzi kuhusu kwa nini seva ya SSH haihitaji mpangilio na jinsi ya kutumia Vim kwa kutumia vitufe vya hjkl.
Mahali ambapo mpangilio wa Colemak hupatikana kwenye Linux
Colemak kwenye Linux si mpangilio mmoja wa mfumo mzima. Mpangilio huu hutumiwa na chochote kinachosoma kibodi wakati huo, kwa hivyo hupatikana katika mojawapo ya maeneo matatu: konso ya maandishi (text console), seva ya X11, au Wayland compositor yako. Ukiweka kwenye eneo lisilo 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. Kwa hivyo, kila mashine unayochomeka kibodi hiyo huchapa kwa Colemak bila usanidi wowote, ikijumuisha konso 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 kwa nini seva ya mbali (remote server) karibu kamwe haihitaji yoyote kati ya hayo, na kile ambacho mabadiliko haya hufanya kwa Vim na njia za mkato za terminal yako.
Angalia kile mfumo wako tayari unacho
Tekeleza amri hizi kabla ya kubadilisha chochote. Zinaonyesha mipangilio ya 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 colemakAmri 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 zinasafirisha toleo jipya zaidi ya hilo.
Ikiwa setxkbmap -query itaripoti kuwa haiwezi kufungua display, uko kwenye session ya Wayland na compositor ndiye anayemiliki mpangilio wa kibodi. Kisa hicho kina sehemu yake maalum hapa chini.
Colemak au Colemak-DH
Colemak hubadilisha nafasi za funguo kumi na saba kutoka zile za QWERTY na kuziacha kumi bila kubadilika, zikiwemo 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 muonekano ulionao.
Colemak-DH ni marekebisho ya Colemak. Inahamisha D, B na G, na kubadilishana H na M, kwa sababu Colemak ya kawaida inakulazimisha kutumia kidole cha shahada kufikia 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. Toleo la XKB ni colemak_dh, huku colemak_dh_iso ikitumika kwa kibodi zenye ufunguo wa ziada kando ya shift ya kushoto.
Ukitoka QWERTY, yoyote kati ya hizi inahitaji kujifunza upya mara moja tu, kwa hivyo chagua kulingana na faraja yako na uishie hapo. Kubadili mpangilio kwa mara ya pili kunagharimu muda sawa na mara ya kwanza, kwa sababu kitu unachojenga upya ni kumbukumbu ya misuli iliyofungamana na nafasi za funguo. Ikiwa swali linalobaki ni kama unapaswa kuacha QWERTY kabisa, lifumbue kwa kulinganisha Colemak, Dvorak na QWERTY kabla ya kutumia mwezi mzima kujenga upya kumbukumbu hiyo ya misuli.
Weka Colemak katika X11 kwa kutumia setxkbmap na localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query sasa inapaswa kuripoti variant: colemak, na kuandika katika dirisha lolote kunapaswa kutoa herufi za Colemak. Mabadiliko haya hudumu kwa muda wa kikao cha X na hayaandiki chochote kwenye diski, jambo linaloifanya kuwa njia salama ya kujaribu mpangilio huu kwa saa moja.
Ili kuhifadhi mabadiliko haya baada ya kuwasha upya seva (reboot):
sudo localectl set-x11-keymap us pc105 colemak
localectl statusMpangilio 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 inayokaribiana zaidi isipokuwa uongeze --no-convert, kwa hivyo kwenye mifumo mingi amri hii moja inashughulikia tty pia. 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 X server ya kusanidi. Compositor hupakia keymap na kuikabidhi kwa kila programu, kwa hivyo layout 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 layout na variant zilizounganishwa kwa 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 layout inayokitumia, 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 variant ya Colemak.
Weka Colemak kwenye console ya maandishi
Console ni tty ya maandishi pekee unayoweza kufikia kwa kutumia Ctrl+Alt+F3, na ina keymap yake yenyewe. Hakuna unachoweka kwenye X11 au kwenye compositor kinachoweza kuathiri console hii, jambo ambalo ni muhimu ikiwa unafanya kazi kwenye kituo cha kazi cha terminal kwenye virtual console tupu.
Kwenye Debian na Ubuntu, hariri /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Kisha itekeleze:
sudo setupconAndika kwenye console ili kuthibitisha. console-setup hubadilisha maelezo hayo ya XKB kuwa keymap ya console kwa kutumia ckbcomp, hivyo console na X hushiriki maelezo sawa kwenye mifumo hii.
Kwenye usambazaji (distributions) zinazotumia keymaps za kbd moja kwa moja, uliza jina kwanza:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9Kifurushi cha kbd husafirisha 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 huirejesha katika hali yake ya awali. Ichukulie loadkeys kama jaribio badala ya usanidi: hudumu hadi reboot, na kwenye Debian na Ubuntu, amri ya setupcon inayojiendesha 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. Terminal emulator yako hupokea kitufe ulichobonyeza, mpangilio wako wa ndani wa kibodi (local layout) huibadilisha kuwa herufi, na herufi hiyo pekee ndiyo husafiri kupitia muunganisho. Seva hupokea n bila njia yoyote ya kujua ni kitufe kipi halisi kilichozalisha herufi hiyo. Kwa hivyo, mpangilio ulioweka 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.
Kumbuka hili kabla ya kuanza kuhariri faili za kibodi kwenye seva za uzalishaji (production boxes). Ikiwa wewe 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 utoaji wako wa rasilimali (provisioning). Dakika kumi za kwanza kwenye VPS mpya zina kazi muhimu zaidi kuliko hii.
Kuna vighairi viwili vinavyostahili kupangwa. 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 vilivyobonyezwa hufika kama scancodes na ramani ya kibodi (keymap) ya console ya seva yenyewe ndiyo huamua ni herufi ipi itakayoonekana. 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 hawataweza kubaini sababu ya hilo.
Nini hutokea kwa funguo za hjkl za Vim
Kwenye Colemak, h haisogezi mshale. Funguo nyingine tatu hufanya hivyo. 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 zimesambaa kwenye 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 kitatumika kwako kama kilivyoandikwa.
Au fanya 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 nn sasa inasogeza chini, e inasogeza juu, i inasogeza kulia, na h ilikuwa tayari inasogeza kushoto. Mistari miwili ya mwisho inarudisha amri ulizoziondoa: l inaanza insert mode, na k inarudia utafutaji wa mwisho. Fanya vivyo hivyo kwa herufi kubwa, au Shift pamoja na ufunguo wa kusogeza mshale itakushangaza.
Chaguo la langmap la Vim hufanya kazi kama hiyo kwa mistari michache:
set langmap=nj,ek,il,li,knKila jozi inasomeka kama herufi uliyochapa ikifuatiwa na herufi ambayo Vim inapaswa kuifanyia kazi. Inatumika kwa normal mode pekee, kwa hivyo insert mode bado inachapa maandishi ya Colemak kama kawaida. Mipaka miwili imeandikwa katika msaada wa Vim wenyewe: langmap haitumiki kwa mchanganyiko wa Ctrl au Alt, na ramani za plugin zilizoandikwa kwa kutumia funguo chaguo-msingi zinaweza kuleta tabia za ajabu chini yake.
Chagua mojawapo, na ushikamane nayo. Remap unayoiacha 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 ufunguo wa 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 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 huweka prefix yake ya kawaida, kwa sababu B haisogei katika Colemak. Katika Colemak-DH, B husogea hadi safu ya juu na prefix husogea nayo, jambo ambalo ndilo la kwanza utakaloliona ikiwa utaweka tmux session inayoendelea kwa muda mrefu kwenye VPS. Kubadilisha prefix hadi ufunguo unaoupenda ni mabadiliko ya mstari mmoja, na ni rahisi kuliko kujifunza upya reflex ileile mara mbili.
Njia za mkato za desktop hufuata kanuni ileile. Binding kwenye Super+E husogea pamoja na mpangilio, kwa sababu inafafanuliwa na herufi. Binding kwenye Super+F1 hubaki pale pale, kwa sababu funguo za utendaji (function keys) hazibadilishwi na mpangilio wa kibodi.
Muda unaotumika kubadilisha mpangilio wa kibodi
Hakuna mtu anayeweza kukupa muda kamili kwa ajili ya mikono yako. Kuandika kwa kugusa (touch typing) ni kumbukumbu ya misuli. Hujifunzi mahali herufi zilipo, bali unajenga upya reflex inayobadilisha neno kuwa mfuatano wa 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 wiki ya kwanza kasi yao inakuwa chini ya nusu ya kasi yao ya zamani, na wanarejea kasi hiyo ya zamani ndani ya miezi moja hadi mitatu ya matumizi ya kila siku. Tofauti kati ya watu 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 mchana kutwa kunafanya reflex zote mbili kuwa dhaifu, kwa hivyo watu wengi wanaofanikiwa kubadilisha hujitolea kikamilifu kwenye mashine yao kuu. Kuanza wakati wa wiki yenye shughuli nyingi kunamaanisha kuandika vibaya chini ya shinikizo la muda, jambo linalokufundisha kutazama chini kwenye funguo.
Weka njia ya kurudi kwenye hali ya awali kabla hujaihitaji, kwa sababu wakati utakaotaka QWERTY tena ndio wakati kitu kitakapokuwa kimeharibika na kuna mtu anayekusubiri.
Jinsi ya kubadili kurudi kwenye QWERTY haraka
Katika X11, setxkbmap us inarejesha QWERTY mara moja. Kwenye console, sudo loadkeys us inafanya vivyo hivyo. Ili kutengua mpangilio huu wa kudumu, endesha sudo localectl set-x11-keymap us.
Kitufe cha kubadilisha (toggle) ni bora kuliko amri unayopaswa kuandika ukiwa katika mpangilio ambao huwezi kuutumia bado:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleHii inapakia Colemak kama mpangilio wa kwanza na US ya kawaida kama wa pili, na Super+Space inabadilisha kati yao. Mkato (comma) ya mwisho katika colemak, si kosa la uchapaji: inaupa mpangilio wa kwanza lahaja ya colemak na wa pili haupewi lahaja yoyote. Kwenye GNOME, ongeza vyanzo vyote viwili vya ingizo (input sources) katika Settings, ambapo Super+Space tayari inavibadilisha.
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 (log out) badala ya kuamini mpangilio huo. Ikiwa diski imesimbwa (encrypted), ombi la passphrase linaendeshwa 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 (reboot) mara moja ili kujaribu wakati bado una njia nyingine ya kuingia kwenye mashine.
Je, ninaweza kuweka programu moja kwenye QWERTY?
Mpangilio wa kibodi hutumika kabla ya programu kupokea ufunguo. Seva ya X au compositor hubadilisha scancode kuwa herufi na kuikabidhi herufi hiyo, 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 swichi ya jumla ya mpangilio kwa kila dirisha unayoweza kutumia.
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 mfumo mzima:
xinput list
setxkbmap -device 12 -layout usChukua id kutoka xinput list, na uthibitishe kwa kuandika kwenye kila kibodi kwa zamu. sway hukubali mipangilio ileile 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 swichi ya 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 husafirisha herufi, kwa hivyo mpangilio wako wa kibodi 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 kwenye 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 inabaki ilipo. j inahamia chini ya Y ya QWERTY, k chini ya N ya QWERTY, na l chini ya U ya QWERTY, kwa hivyo vitufe vya kusogeza kishale husambaa kwenye safu tatu. Unaweza kuvijifunza upya mahali vinapoangukia, jambo ambalo huweka kila plugin na kila mafunzo kuwa sahihi, au unaweza kubadilisha ramani ya vitufe vinne vilivyo 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 michanganyiko ya Ctrl na linaweza kuchanganya ramani za plugin.
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 kwenye Mipangilio ya Mfumo ya KDE Plasma.