Colemak instellen op Linux: console, X11 en Wayland
Leer hoe u de Colemak-indeling correct toepast in de Linux-console, X11 en Wayland. Ontdek waarom SSH-servers geen layout vereisen en hoe u Vim-sneltoetsen en Ctrl-toetsen behoudt.
Waar een Colemak-indeling zich bevindt op Linux
Colemak op Linux is geen enkele, systeembrede instelling. De indeling wordt toegepast door het onderdeel dat op dat moment de invoer van het toetsenbord verwerkt. Daarom bevindt deze zich op een van de drie volgende locaties: de tekstconsole, de X11-server of uw Wayland-compositor. Als u de instelling op de verkeerde plek wijzigt, lijkt er niets te gebeuren.
Een vierde optie omzeilt het besturingssysteem volledig. Een toetsenbord dat de indeling in de eigen firmware aanpast, zoals een toetsenbord met QMK of VIA, verstuurt de codes voor de gewenste letters. Hierdoor typt elke machine waarop u het aansluit in Colemak, zonder enige configuratie, inclusief een serverconsole en een machine waarvan u niet de eigenaar bent. Het nadeel is dat het toetsenbord van uw laptop nog steeds QWERTY typt.
De rest van deze handleiding behandelt de drie softwarelagen, de reden waarom een externe server deze bijna nooit nodig heeft, en wat de overstap betekent voor Vim en uw terminal-sneltoetsen.
Controleer wat uw systeem al heeft
Voer deze commando's uit voordat u wijzigingen aanbrengt. Ze tonen de huidige instelling en de lijst met Colemak-varianten die uw X-keyboarddatabase biedt.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakHet laatste commando hoort colemak en colemak_dh weer te geven. Colemak zit al jaren in xkeyboard-config. Colemak-DH is toegevoegd in versie 2.34, dus alleen een verouderde release zal dit missen. Sinds augustus 2026 leveren zowel Ubuntu 24.04 als Debian 13 een nieuwere versie dan dat.
Als setxkbmap -query meldt dat het geen display kan openen, bevindt u zich in een Wayland-sessie en beheert de compositor de lay-out. Dat scenario heeft hieronder een eigen sectie.
Colemak of Colemak-DH
Colemak verplaatst zeventien toetsen ten opzichte van hun QWERTY-posities en laat er tien ongewijzigd, waaronder Z, X, C en V. Hierdoor blijven de sneltoetsen voor ongedaan maken, knippen, kopiëren en plakken op de plek waar uw linkerhand ze verwacht. Die compatibiliteit is de voornaamste reden voor het ontwerp van de lay-out.
Colemak-DH is een aanpassing van Colemak. Het verplaatst D, B en G, en wisselt H met M om, omdat men bij de standaard Colemak zowel D als H typt door een wijsvinger uit te strekken naar de middelste kolom van het toetsenbord. De officiële aanpassing behoudt voor elke letter dezelfde vinger als in Colemak, waardoor een Colemak-typer die overstapt naar DH slechts een kleine wijziging ervaart in plaats van een volledig nieuwe lay-out. De XKB-variant is colemak_dh, met colemak_dh_iso voor toetsenborden die de extra toets naast de linker shift-toets hebben.
Als u overstapt vanaf QWERTY, is het in beide gevallen een eenmalig leerproces. Kies daarom op basis van comfort en houd het daarbij. Een tweede keer van lay-out wisselen kost ongeveer evenveel moeite als de eerste keer, omdat u het spiergeheugen dat gekoppeld is aan de toetsposities opnieuw moet opbouwen.
Colemak instellen in X11 met setxkbmap en localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query zou nu variant: colemak moeten rapporteren en het typen in elk willekeurig venster zou nu Colemak-letters moeten produceren. De wijziging blijft actief zolang de X-sessie duurt en schrijft niets naar de schijf, wat dit de veilige manier maakt om de lay-out een uur lang uit te proberen.
Om de instelling na een herstart te behouden:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusDe volgorde van de argumenten is lay-out, gevolgd door model, gevolgd door variant. localectl status zou nu X11 Layout: us en X11 Variant: colemak moeten tonen. localectl converteert de keuze ook naar de meest overeenkomende console-keymap, tenzij u --no-convert toevoegt; op veel systemen dekt dit ene commando dus ook de tty. Controleer op Debian en Ubuntu daarna /etc/default/keyboard, omdat dat het bestand is dat console-setup tijdens het opstarten inleest.
Colemak instellen op Wayland
Een Wayland-sessie heeft geen X-server om te configureren. De compositor laadt de keymap en geeft deze door aan elke applicatie; de layout is daarom een instelling van de compositor. Dit is de reden waarom setxkbmap hier niet werkt: het commando vindt geen display of wijzigt alleen XWayland, terwijl uw native Wayland-applicaties de wijziging negeren.
Op GNOME is de instelling een gsettings-key:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"Deze wordt onmiddellijk toegepast, zonder dat u hoeft uit te loggen. De string us+colemak is de layout en de variant verbonden met een plusteken.
Plaats dit op sway in ~/.config/sway/config:
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}Herlaad met swaymsg reload. swaymsg -t get_inputs toont elk invoerapparaat met de bijbehorende layout; dit is de controle die u uitvoert wanneer slechts één toetsenbord niet naar behoren werkt.
Open op KDE Plasma Systeeminstellingen, ga naar Toetsenbord, vervolgens naar Indelingen en voeg English (US) toe met de Colemak-variant.
Colemak instellen op de tekstconsole
De console is de tekst-tty die u bereikt met Ctrl+Alt+F3, en deze behoudt zijn eigen keymap. Niets dat u instelt in X11 of in een compositor heeft hier invloed op, wat van belang is als u werkt op een terminalwerkstation op een bare virtual console.
Bewerk op Debian en Ubuntu /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Pas de wijziging vervolgens toe:
sudo setupconTyp op de console om te bevestigen. console-setup converteert die XKB-beschrijving naar een console-keymap met ckbcomp, waardoor de console en X op deze systemen één beschrijving delen.
Vraag op distributies die direct gebruikmaken van kbd-keymaps eerst de naam op:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9Het kbd-pakket levert de Colemak-consolemap als i386/colemak/en-latin9, dus de naam die u opgeeft is meestal en-latin9 en niet colemak. Geef een naam op die in de lijst voorkomt, aangezien een niet-bestaande naam wordt geweigerd.
sudo loadkeys en-latin9 wijzigt de huidige console onmiddellijk, en sudo loadkeys us zet deze terug. Beschouw loadkeys eerder als een test dan als een configuratie: deze instelling blijft behouden tot de volgende reboot, en op Debian en Ubuntu herstelt de tijdens het opstarten uitgevoerde setupcon de instellingen zoals gedefinieerd in /etc/default/keyboard.
Heeft een headless VPS een Colemak-indeling nodig?
Bijna nooit, en het is belangrijk om te begrijpen waarom. SSH verstuurt tekens, geen toetsaanslagposities. Uw terminalemulator ontvangt de toetsaanslag, uw lokale toetsenbordindeling zet deze om in een teken, en alleen dat teken wordt over de verbinding verstuurd. De server ontvangt n zonder dat deze kan achterhalen welke fysieke toets dit heeft gegenereerd. De indeling die u op uw laptop instelt, volgt u dus in elke SSH-sessie, in tmux en in elke editor die u op afstand uitvoert; de externe machine heeft daarom helemaal geen toetsenbordconfiguratie nodig.
Houd hier rekening mee voordat u toetsenbordbestanden op productieservers gaat bewerken. Als u een vloot Linux-servers beheert, hoort de toetsenbordindeling bij de machine waar u voor zit en niet bij de vloot; het heeft dus geen plek in uw provisioning. De eerste tien minuten op een nieuwe VPS zijn nuttiger besteed dan hieraan.
Er zijn twee uitzonderingen waar u rekening mee moet houden. De eerste is een console die direct op de machine is aangesloten. De browserconsole in een beheerpaneel van een provider presenteert zich meestal als een toetsenbord aan de virtuele machine. Toetsaanslagen komen aan als scancodes en de eigen console-keymap van de server bepaalt welk teken verschijnt. Dat is de enige plek waar een op de server ingestelde indeling effect heeft, en het is tevens uw reddingspad wanneer SSH niet meer werkt. Een half geconfigureerde console-keymap vormt daar dus een reëel risico.
Een seriële console gedraagt zich anders, omdat deze tekens verstuurt en uw lokale indeling van toepassing is. De tweede uitzondering is een gedeelde machine. Een console-keymap is systeembreed; het instellen van Colemak op een server waar anderen op inloggen, verandert de indeling ook voor hen, en zij zullen niet begrijpen waarom.
Wat gebeurt er met de hjkl-toetsen van Vim
Op Colemak beweegt h niet. De andere drie wel. j bevindt zich onder de Y van QWERTY, k onder de N van QWERTY en l onder de U van QWERTY. Hierdoor zijn de cursortoetsen verspreid over drie rijen in plaats van dat ze onder vier vingers liggen.
Er zijn twee werkbare oplossingen en beide hebben actieve gebruikers.
Behoud de standaardinstellingen en leer de posities opnieuw aan. Niets in uw configuratie raakt defect, elke plugin blijft werken en elke Vim-tip die door anderen is geschreven, is nog steeds exact op u van toepassing.
Of wijzig de toewijzing van de vier toetsen die onder uw rechterhand liggen naar de plek waar hjkl voorheen zat. Op Colemak geven deze toetsen h, n, e en i. Op Colemak-DH geven dezelfde vier fysieke toetsen m, n, e en i, omdat DH de H en M heeft omgewisseld.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nn beweegt nu omlaag, e beweegt omhoog, i beweegt naar rechts en h was al naar links. De laatste twee regels herstellen de commando's die u heeft verplaatst: l start de invoegmodus en k herhaalt de laatste zoekopdracht. Pas hetzelfde toe op de hoofdletters, anders zal Shift in combinatie met een cursortoets u verrassen.
De langmap-optie van Vim doet hetzelfde in minder regels:
set langmap=nj,ek,il,li,knElk paar wordt gelezen als het teken dat u heeft getypt, gevolgd door het teken waarop Vim moet reageren. Dit is alleen van toepassing op de normale modus, dus in de invoegmodus typt u nog steeds normaal Colemak-tekst. Twee beperkingen staan gedocumenteerd in de eigen help van Vim: langmap is niet van toepassing op Ctrl- of Alt-combinaties en plugin-mappings die zijn geschreven voor de standaardtoetsen kunnen zich hieronder vreemd gedragen.
Welke optie u ook kiest, kies één keer. Een wijziging die u na een maand weer opgeeft, kost u nog een maand extra.
Wat gebeurt er met sneltoetsen in de terminal
Een terminal-besturingscode is afkomstig van het teken, niet van de fysieke toets. Daarom verhuizen alle Ctrl-sneltoetsen mee met de toetsenbordindeling. Ctrl+C, Ctrl+Z, Ctrl+X en Ctrl+V behouden hun positie, omdat Colemak de Z, X, C en V bewust op dezelfde plek laat staan als bij QWERTY.
Vier sneltoetsen die u dagelijks gebruikt, verplaatsen wel. Ctrl+D, dat de invoer beëindigt, bevindt zich nu op de plek waar QWERTY de G heeft. Ctrl+R, de zoekfunctie voor de geschiedenis, bevindt zich op de plek van de S bij QWERTY. Ctrl+E, einde van de regel, bevindt zich op de plek van de K bij QWERTY. Ctrl+U, dat de regel wist, bevindt zich op de plek van de I bij QWERTY.
tmux behoudt zijn standaard prefix, omdat de B niet verplaatst in Colemak. Bij Colemak-DH verplaatst de B naar de bovenste rij en verhuist de prefix mee. Dit is het eerste wat u zult merken als u een langlopende tmux-sessie op een VPS behoudt. Het opnieuw toewijzen van de prefix aan een toets die u prettig vindt, is een wijziging van één regel en is eenvoudiger dan twee keer dezelfde reflex aanleren.
Sneltoetsen op het bureaublad volgen dezelfde regel. Een binding op Super+E verhuist mee met de indeling, omdat deze wordt gedefinieerd door het teken. Een binding op Super+F1 blijft op zijn plek, omdat functietoetsen niet worden heringedeeld door de toetsenbordindeling.
Hoe lang de overstap duurt
Niemand kan u een exact tijdsbestek geven voor het aanleren van een nieuwe toetsenbordindeling. Blind typen is gebaseerd op spiergeheugen. U leert niet waar de letters staan, maar u bouwt de reflex op die een woord omzet in een reeks vingerbewegingen. De enige factor die hierbij helpt, is de tijd die u besteedt aan het typen.
Wat gebruikers rapporteren — waarbij dit gebaseerd is op zelf bijgehouden logboeken en geen gecontroleerde metingen — is dat de snelheid in de eerste week ver onder de helft van de oude snelheid ligt. Een terugkeer naar de oorspronkelijke snelheid vindt doorgaans plaats na één tot drie maanden dagelijks gebruik. De verschillen tussen individuen zijn groot, dus beschouw deze cijfers als een indicatie en niet als een vast schema.
Twee gewoontes vertragen het proces. Het gedurende de dag afwisselen tussen QWERTY en Colemak zorgt ervoor dat beide reflexen zwak blijven. De meeste mensen die de overstap succesvol afronden, stappen daarom volledig over op hun hoofdcomputer. Beginnen tijdens een drukke week betekent dat u onder tijdsdruk slecht typt, wat u traint om naar de toetsen te kijken.
Zorg dat u de weg terug naar QWERTY al heeft ingericht voordat u deze nodig heeft. Het moment dat u weer naar QWERTY wilt grijpen, is namelijk het moment dat er iets kapot is en er iemand op u wacht.
Hoe u snel terugschakelt naar QWERTY
In X11 herstelt setxkbmap us direct de QWERTY-indeling. Op de console doet sudo loadkeys us hetzelfde. Om de persistente instelling ongedaan te maken, voert u sudo localectl set-x11-keymap us uit.
Een schakelaar is handiger dan een commando dat u moet typen in een indeling die u nog niet kunt gebruiken:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleDit laadt Colemak als de eerste indeling en standaard US als de tweede, waarbij Super+Space tussen beide schakelt. De afsluitende komma in colemak, is geen typefout: deze geeft de eerste indeling de colemak-variant en de tweede indeling geen variant. Voeg in GNOME beide invoerbronnen toe via Instellingen, waar Super+Space al standaard wordt gebruikt om te schakelen.
Twee wachtwoordprompts bevinden zich buiten uw desktopsessie en vereisen afzonderlijke aandacht. Het inlogscherm start voordat uw sessie-instellingen worden toegepast; test dit daarom door uit te loggen in plaats van op de instelling te vertrouwen. Als de schijf is versleuteld, wordt de wachtwoordprompt uitgevoerd vanuit de initramfs, die een eigen kopie van de keymap bevat. Op Debian en Ubuntu herbouwt u deze met sudo update-initramfs -u nadat u /etc/default/keyboard heeft gewijzigd. Start daarna eenmaal opnieuw op om te testen terwijl u nog een andere toegangsmethode tot de machine heeft.
Kan ik één programma op QWERTY houden?
De toetsenbordindeling wordt toegepast voordat een applicatie de toetsaanslag ontvangt. De X server of de compositor zet een scancode om in een teken en geeft dit teken door, waardoor een applicatie niet zelf om een andere indeling kan vragen. De applicatie kan alleen de ontvangen invoer opnieuw toewijzen. Daarom bevindt de Vim-oplossing zich in de configuratie van Vim en is er geen algemene schakelaar per venster beschikbaar.
Twee benaderingen werken wel. De eerste is per apparaat. Als het QWERTY-typen op een afzonderlijk toetsenbord gebeurt, stel de indeling dan in op dat specifieke apparaat in plaats van op systeemniveau:
xinput list
setxkbmap -device 12 -layout usNeem het id uit xinput list en bevestig dit door op elk toetsenbord om de beurt te typen. sway accepteert dezelfde instellingen per invoer-identifier uit swaymsg -t get_inputs, en een specifiekere selector krijgt voorrang op type:keyboard.
De tweede benadering is om de hermapping binnen de applicatie uit te voeren, zoals langmap van Vim doet. Games hebben bijna altijd een scherm voor toetsbindingen, en het opnieuw instellen van de bewegingstoetsen daar kost minder tijd dan het omzeilen van de indeling van buitenaf. Voor applicaties die geen van beide bieden, kunt u de hierboven genoemde schakelaar voor de indeling gebruiken en deze indrukken voordat u de applicatie start.
FAQ
Moet ik Colemak instellen op mijn VPS?
Nee, als u deze via SSH benadert. SSH verstuurt tekens; uw toetsenbordindeling wordt dus op uw laptop verwerkt voordat er iets wordt verzonden. De server ontvangt dezelfde bytes als bij een QWERTY-toetsenbord. De uitzondering is de browserconsole in het paneel van uw provider. Deze maakt verbinding met de virtuele machine als een fysiek toetsenbord en gebruikt de eigen console-keymap van de server. Die console is uw reddingspad wanneer SSH faalt. Wijzig deze instelling daarom alleen als u zeker van uw zaak bent en test het terwijl SSH nog werkt.
Moet ik Colemak of Colemak-DH leren?
Beide vereisen een vergelijkbare inspanning om QWERTY af te leren, dus kies op basis van comfort in plaats van de overstapkosten. Colemak-DH verplaatst D, B en G en wisselt H met M, omdat de standaard Colemak-indeling vereist dat u D en H typt met een uitrekking van de wijsvinger naar de middelste kolom. De XKB-variantnamen zijn colemak en colemak_dh, met colemak_dh_iso voor toetsenborden die een extra toets naast de linker Shift hebben. Voer localectl list-x11-keymap-variants us | grep colemak uit om te zien welke varianten uw systeem aanbiedt.
Wat gebeurt er met de hjkl-toetsen van Vim in Colemak?
h blijft op zijn plek. j verplaatst zich naar de positie van de QWERTY Y, k naar de QWERTY N, en l naar de QWERTY U. De cursortoetsen verspreiden zich zo over drie rijen. U kunt ze op hun nieuwe plek aanleren, waardoor elke plugin en tutorial bruikbaar blijft. U kunt ook de vier toetsen onder uw rechterhand opnieuw mappen: h, n, e en i op Colemak, en m, n, e en i op Colemak-DH. De optie langmap in Vim doet hetzelfde voor de normale modus, al geldt dit niet voor Ctrl-combinaties en kan het verwarring veroorzaken bij plugin-mappings.
Hoe lang duurt het voordat ik weer op mijn oude snelheid typ?
Houd rekening met weken in plaats van dagen, aangezien dit motorisch geheugen betreft en oefening de enige manier is om dit te trainen. Gebruikersrapporten beschrijven vaak een eerste week met minder dan de helft van de oude snelheid en een terugkeer naar het oude niveau na één tot drie maanden dagelijks gebruik. Wisselen tussen QWERTY en Colemak vertraagt dit proces, omdat geen van beide reflexen zich volledig kan nestelen.
Waarom deed setxkbmap niets op mijn desktop?
Dit komt vrijwel zeker doordat de sessie Wayland gebruikt. Onder Wayland beheert de compositor de keymap en pusht deze naar elke applicatie. Hierdoor kan setxkbmap het display niet vinden of wijzigt het alleen XWayland, terwijl native applicaties de wijziging negeren. Stel de indeling in de compositor in: via de gsettings-sleutel org.gnome.desktop.input-sources in GNOME, xkb_variant in de sway-configuratie, of de pagina Layouts in de Systeeminstellingen van KDE Plasma.