Comment passer à Colemak sous Linux
Configurez Colemak sur la console Linux, X11 ou Wayland. Comprenez pourquoi SSH n’a pas besoin de layout et ce qui change pour Vim, hjkl et Ctrl.
Où se trouve la disposition Colemak sous Linux
Sous Linux, Colemak n’est pas un paramètre unique défini à l’échelle du système. La disposition est appliquée par le composant qui lit le clavier à ce moment-là. Elle se trouve donc à l’un de ces trois endroits : la console texte, le serveur X11 ou votre compositeur Wayland. Si vous la configurez au mauvais endroit, rien ne semble se produire.
Une quatrième option contourne complètement le système d’exploitation. Un clavier qui remappe les touches dans son propre firmware, par exemple un clavier utilisant QMK ou VIA, envoie les codes correspondant aux lettres souhaitées. Chaque machine sur laquelle vous le branchez utilise alors Colemak sans aucune configuration, y compris une console serveur ou une machine qui ne vous appartient pas. En contrepartie, le clavier de votre ordinateur portable continue d’utiliser QWERTY.
La suite de ce guide couvre les trois couches logicielles, explique pourquoi un serveur distant n’a presque jamais besoin de ces réglages et décrit l’effet du changement sur Vim et sur les raccourcis de votre terminal.
Vérifiez ce que votre système possède déjà
Exécutez ces commandes avant de modifier quoi que ce soit. Elles affichent le réglage actuel et la liste des variantes Colemak proposées par votre base de données de claviers X.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakLa dernière commande doit afficher colemak et colemak_dh. Colemak est intégré à xkeyboard-config depuis plusieurs années. Colemak-DH a été ajouté dans la version 2.34. Seule une version ancienne peut donc en être dépourvue. En août 2026, Ubuntu 24.04 et Debian 13 proposent tous deux une version plus récente.
Si setxkbmap -query indique qu’il ne peut pas ouvrir un display, vous êtes dans une session Wayland et le compositor gère la disposition. Ce cas fait l’objet d’une section distincte ci-dessous.
Colemak ou Colemak-DH
Colemak déplace dix-sept touches par rapport à leur position QWERTY et en laisse dix à leur place, notamment Z, X, C et V. Les raccourcis pour annuler, couper, copier et coller restent ainsi là où votre main gauche s’attend à les trouver. Cette compatibilité explique entièrement la conception de cette disposition.
Colemak-DH est une modification de Colemak. Elle déplace D, B et G, et intervertit H et M, car Colemak standard fait taper D et H en étendant l’index vers la colonne centrale du clavier. La modification officielle conserve chaque lettre sous le même doigt que dans Colemak. Un utilisateur de Colemak qui passe à DH doit donc s’adapter à un changement limité, et non apprendre une nouvelle disposition. La variante XKB est colemak_dh, avec colemak_dh_iso pour les claviers qui possèdent la touche supplémentaire à côté de la touche Maj gauche.
Depuis QWERTY, les deux dispositions demandent un seul apprentissage. Choisissez donc celle qui vous semble la plus confortable, puis n’en changez plus. Changer de disposition une deuxième fois demande presque autant d’efforts que la première fois, car il faut reconstruire la mémoire motrice associée à la position des touches.
Définir Colemak dans X11 avec setxkbmap et localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query doit maintenant renvoyer variant: colemak, et la saisie dans n’importe quelle fenêtre doit produire les caractères Colemak. La modification reste active pendant toute la session X et n’écrit rien sur le disque. C’est donc la méthode sûre pour tester cette disposition pendant une heure.
Pour la conserver après les redémarrages :
sudo localectl set-x11-keymap us pc105 colemak
localectl statusL’ordre des arguments est la disposition, puis le modèle, puis la variante. localectl status doit maintenant afficher X11 Layout: us et X11 Variant: colemak. localectl convertit également ce choix vers le keymap de console le plus proche, sauf si vous ajoutez --no-convert. Sur de nombreux systèmes, cette seule commande configure donc aussi le tty. Sur Debian et Ubuntu, vérifiez ensuite /etc/default/keyboard, car c’est ce fichier que console-setup lit au démarrage.
Définir Colemak sous Wayland
Une session Wayland ne dispose pas de serveur X à configurer. Le compositor charge la keymap et la transmet à chaque application. La disposition du clavier est donc un paramètre du compositor. C’est pourquoi setxkbmap semble ne pas fonctionner dans ce contexte : la commande ne trouve pas de display, ou elle ne modifie que XWayland, tandis que vos applications Wayland natives l’ignorent.
Sous GNOME, le paramètre est une clé gsettings :
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"La modification s’applique immédiatement, sans déconnexion. La chaîne us+colemak contient la disposition et la variante, séparées par un signe plus.
Sous sway, ajoutez-la dans ~/.config/sway/config :
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}Rechargez la configuration avec swaymsg reload. swaymsg -t get_inputs liste tous les périphériques d’entrée avec la disposition qu’ils utilisent. Exécutez cette commande lorsqu’un seul clavier se comporte mal.
Sous KDE Plasma, ouvrez Paramètres système, puis Clavier, puis Dispositions. Ajoutez English (US) avec la variante Colemak.
Définir Colemak sur la console texte
La console est le tty en texte brut accessible avec Ctrl+Alt+F3. Elle utilise sa propre keymap. Aucun réglage défini dans X11 ou dans un compositor ne s’y applique. C’est important si vous travaillez sur un environnement de terminal sur une console virtuelle nue.
Sur Debian et Ubuntu, modifiez /etc/default/keyboard :
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Appliquez ensuite la configuration :
sudo setupconSaisissez du texte sur la console pour vérifier. console-setup convertit cette description XKB en keymap de console avec ckbcomp. La console et X utilisent donc une même description sur ces systèmes.
Sur les distributions qui utilisent directement les keymaps de kbd, demandez d’abord le nom :
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9Le paquet kbd fournit la map Colemak pour la console sous le nom i386/colemak/en-latin9. Le nom à transmettre est donc généralement en-latin9, et non colemak. Utilisez un nom présent dans la liste. Un nom inexistant est rejeté.
sudo loadkeys en-latin9 modifie immédiatement la console courante, et sudo loadkeys us rétablit la configuration précédente. Utilisez loadkeys comme test, et non comme configuration permanente : le réglage ne dure que jusqu’au redémarrage. Sur Debian et Ubuntu, l’exécution de setupcon au démarrage restaure la valeur indiquée par /etc/default/keyboard.
Un VPS headless a-t-il besoin d’une disposition Colemak ?
Presque jamais, et il est utile d’en comprendre la raison. SSH transmet des caractères, pas des positions de touches. Votre émulateur de terminal reçoit la pression de touche, votre disposition locale la convertit en caractère, puis seul ce caractère est transmis sur la connexion. Le serveur reçoit n sans pouvoir savoir quelle touche physique l’a produit. La disposition configurée sur votre ordinateur portable vous suit donc dans chaque session SSH, dans tmux et dans chaque éditeur exécuté à distance. La machine distante n’a besoin d’aucune configuration de clavier.
Gardez cela à l’esprit avant de commencer à modifier les fichiers de clavier sur des serveurs de production. Si vous administrez un parc de serveurs Linux, la disposition appartient à la machine devant laquelle vous travaillez, pas au parc. Elle n’a donc pas sa place dans votre provisioning. Les dix premières minutes sur un nouveau VPS permettent un travail plus utile.
Deux exceptions doivent être anticipées. La première concerne une console connectée directement à la machine. La console du navigateur proposée dans le panneau d’un fournisseur se présente généralement à la machine virtuelle comme un clavier. Les pressions de touches arrivent donc sous forme de scancodes, et la keymap de la console du serveur détermine le caractère affiché. C’est le seul endroit où une disposition configurée sur le serveur prend effet. C’est également votre voie de secours lorsque SSH ne fonctionne plus. Une keymap de console incomplète constitue donc un risque réel.
Une console série se comporte différemment, car elle transporte des caractères et votre disposition locale s’applique. La deuxième exception concerne une machine partagée. Une keymap de console s’applique à tout le système. Configurer Colemak sur une machine à laquelle d’autres personnes se connectent la modifie donc aussi pour elles, sans qu’elles puissent deviner pourquoi.
Ce qu’il advient des touches hjkl de Vim
Avec Colemak, h ne déplace pas le curseur. Les trois autres le déplacent. j se trouve sous le Y de QWERTY, k sous le N de QWERTY et l sous le U de QWERTY. Les touches de déplacement du curseur sont donc réparties sur trois rangées au lieu de se trouver sous quatre doigts.
Deux solutions fonctionnent, et chacune a ses utilisateurs.
Conservez les réglages par défaut et réapprenez les positions. Rien d’autre dans votre configuration ne change, tous les plugins continuent de fonctionner et tous les conseils Vim écrits par d’autres personnes restent applicables exactement comme indiqué.
Vous pouvez aussi remapper les quatre touches situées sous votre main droite, à l’emplacement où se trouvaient hjkl. Avec Colemak, ces touches produisent h, n, e et i. Avec Colemak-DH, les mêmes touches physiques produisent m, n, e et i, car DH échange H et M.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nn déplace maintenant le curseur vers le bas, e vers le haut, i vers la droite et h le déplaçait déjà vers la gauche. Les deux dernières lignes réattribuent les commandes que vous avez déplacées : l active le mode insertion et k répète la dernière recherche. Appliquez le même traitement aux majuscules, sinon Shift et une touche de déplacement du curseur pourront produire un résultat inattendu.
L’option langmap de Vim effectue une opération similaire en utilisant moins de lignes :
set langmap=nj,ek,il,li,knChaque paire se lit comme le caractère que vous avez saisi, suivi du caractère que Vim doit traiter. Elle s’applique uniquement au mode normal. Le mode insertion continue donc de saisir normalement le texte Colemak. Deux limites sont documentées dans l’aide intégrée de Vim : langmap ne s’applique pas aux combinaisons avec Ctrl ou Alt, et les mappings de plugins qui utilisent les touches par défaut peuvent se comporter de manière inattendue avec cette option.
Quelle que soit votre solution, choisissez-en une seule. Un remapping que vous abandonnez au bout d’un mois vous fait perdre un mois supplémentaire.
Ce qui arrive aux raccourcis du terminal
Un code de contrôle du terminal dépend du caractère, et non de la touche physique. Chaque raccourci Ctrl se déplace donc avec la disposition. Ctrl+C, Ctrl+Z, Ctrl+X et Ctrl+V conservent leur position, car Colemak laisse volontairement Z, X, C et V à l’emplacement qu’ils occupent en QWERTY.
Quatre raccourcis que vous utilisez tous les jours se déplacent. Ctrl+D, qui termine la saisie, se trouve désormais à l’emplacement de G en QWERTY. Ctrl+R, qui recherche dans l’historique, se trouve à l’emplacement de S en QWERTY. Ctrl+E, qui va à la fin de la ligne, se trouve à l’emplacement de K en QWERTY. Ctrl+U, qui efface la ligne, se trouve à l’emplacement de I en QWERTY.
tmux conserve son préfixe par défaut, car B ne se déplace pas avec Colemak. Avec Colemak-DH, B passe sur la rangée supérieure et le préfixe se déplace avec lui. C’est la première chose que vous remarquerez si vous gardez une session tmux active pendant longtemps sur un VPS. Réaffecter le préfixe à une touche de votre choix ne nécessite qu’une seule ligne de configuration. C’est plus simple que de réapprendre deux fois le même réflexe.
Les raccourcis du bureau suivent la même règle. Une combinaison Super+E se déplace avec la disposition, car elle est définie par le caractère. Une combinaison Super+F1 reste au même emplacement, car les touches de fonction ne sont pas remappées par la disposition.
Combien de temps cette transition vous coûte
Personne ne peut vous donner un chiffre pour vos mains. La dactylographie à l’aveugle repose sur la mémoire motrice. Vous n’apprenez pas où se trouvent les lettres : vous reconstruisez le réflexe qui transforme un mot en séquence de mouvements des doigts. Le seul facteur utile est donc le temps passé à taper.
D’après les retours disponibles, qui sont des journaux d’entraînement déclarés par leurs auteurs et non une mesure contrôlée, la vitesse est souvent inférieure de moitié à l’ancienne pendant la première semaine. Le retour à l’ancienne vitesse prend ensuite entre un et trois mois d’utilisation quotidienne. L’écart entre les personnes est important. Considérez donc ces chiffres comme une tendance, pas comme un calendrier.
Deux habitudes ralentissent la transition. Alterner entre QWERTY et Colemak au cours de la journée entretient deux réflexes faibles. La plupart des personnes qui terminent la transition utilisent donc exclusivement Colemak sur leur machine principale. Commencer pendant une semaine chargée vous oblige à taper maladroitement sous pression. Vous risquez alors de prendre l’habitude de regarder les touches.
Préparez la marche arrière avant d’en avoir besoin. Le moment où vous voudrez de nouveau utiliser QWERTY sera probablement celui où quelque chose est en panne et où quelqu’un attend.
Comment revenir rapidement à QWERTY
Dans X11, setxkbmap us rétablit immédiatement QWERTY. Sur la console, sudo loadkeys us fait de même. Pour annuler le paramètre persistant, exécutez sudo localectl set-x11-keymap us.
Un raccourci à bascule est préférable à une commande que vous devez saisir dans une disposition que vous ne pouvez pas encore utiliser :
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleCette configuration charge Colemak comme première disposition et l’anglais US standard comme seconde. Super+Space permet de passer de l’une à l’autre. La virgule finale dans colemak, n’est pas une erreur : elle attribue la variante colemak à la première disposition et aucune variante à la seconde. Sous GNOME, ajoutez les deux sources de saisie dans Settings. Super+Space permet déjà de basculer entre elles.
Deux invites de mot de passe sont exécutées en dehors de votre session de bureau et nécessitent une attention particulière. L’écran de connexion démarre avant l’application des paramètres de votre session. Testez-le en vous déconnectant au lieu de vous fier au paramètre. Si le disque est chiffré, l’invite de phrase secrète s’exécute depuis l’initramfs, qui possède sa propre copie de la keymap. Sous Debian et Ubuntu, reconstruisez-le avec sudo update-initramfs -u après avoir modifié /etc/default/keyboard, puis redémarrez une fois pour effectuer le test tant que vous disposez encore d’un autre moyen d’accéder à la machine.
Conserver une application en QWERTY ?
La disposition est appliquée avant qu’une application ne reçoive la touche. Le serveur X ou le compositor convertit le scancode en caractère, puis transmet ce caractère. L’application ne peut donc pas demander une autre disposition. Elle peut seulement remapper ce qu’elle reçoit. C’est pourquoi la correction pour Vim se trouve dans la configuration de Vim, et pourquoi il n’existe pas de commutateur général de disposition par fenêtre.
Deux approches fonctionnent. La première s’applique par périphérique. Si la saisie en QWERTY se fait sur un clavier distinct, définissez la disposition sur ce périphérique plutôt que sur l’ensemble du système :
xinput list
setxkbmap -device 12 -layout usRécupérez l’identifiant avec xinput list, puis vérifiez-le en saisissant du texte sur chaque clavier à tour de rôle. sway accepte les mêmes paramètres pour chaque identifiant d’entrée avec swaymsg -t get_inputs, et un sélecteur plus précis est prioritaire sur type:keyboard.
La seconde approche consiste à effectuer le remappage dans l’application, comme le fait langmap de Vim. Les jeux proposent presque toujours un écran de configuration des touches. Remapper les touches de déplacement à cet endroit prend moins de temps que de tenter de modifier la disposition depuis l’extérieur. Pour les applications qui n’offrent aucune de ces options, associez le basculement de disposition ci-dessus et activez-le avant de lancer l’application.
FAQ
Dois-je définir Colemak sur mon VPS ?
Non, si vous y accédez via SSH. SSH transporte les caractères. Votre disposition est donc interprétée sur votre ordinateur portable avant l’envoi, et le serveur reçoit les mêmes octets que ceux envoyés par un utilisateur de QWERTY. L’exception est la console du navigateur dans le panneau de votre fournisseur. Elle se connecte à la machine virtuelle comme un clavier et utilise la propre keymap de la console du serveur. Cette console est votre voie de secours lorsque SSH ne fonctionne plus. Ne la modifiez donc que si vous en êtes certain, et testez-la tant que SSH fonctionne encore.
Dois-je apprendre Colemak ou Colemak-DH ?
Dans les deux cas, il faut réapprendre depuis QWERTY. Choisissez donc selon votre confort, et non selon le coût de la migration. Colemak-DH déplace D, B et G, et intervertit H et M, car Colemak standard utilise l’index pour saisir D et H avec un étirement vers la colonne centrale. Les noms des variantes XKB sont colemak et colemak_dh, avec colemak_dh_iso pour les claviers qui possèdent une touche supplémentaire à côté de la touche Maj gauche. Exécutez localectl list-x11-keymap-variants us | grep colemak pour voir celles que votre système propose.
Que deviennent les touches hjkl de Vim avec Colemak ?
h reste à sa place. j se trouve sous le Y de QWERTY, k sous le N de QWERTY et l sous le U de QWERTY. Les touches de déplacement du curseur sont donc réparties sur trois rangées. Vous pouvez les réapprendre à leur nouvel emplacement. Tous les plugins et tutoriels restent alors valides. Vous pouvez aussi remapper les quatre touches situées sous votre main droite : h, n, e et i avec Colemak, et m, n, e et i avec Colemak-DH. L’option langmap de Vim produit le même effet en mode normal. Elle ne s’applique toutefois pas aux combinaisons avec Ctrl et peut perturber les mappings des plugins.
Combien de temps faut-il pour retrouver mon ancienne vitesse de frappe ?
Comptez plutôt en semaines qu’en jours, car il s’agit de mémoire motrice et la seule méthode est la pratique. Les journaux d’entraînement publiés par les utilisateurs indiquent souvent une première semaine à moins de la moitié de l’ancienne vitesse, puis un retour à cette vitesse après un à trois mois d’utilisation quotidienne. Alterner entre QWERTY et Colemak chaque jour prolonge cette période, car aucun des deux automatismes n’a le temps de se stabiliser.
Pourquoi setxkbmap n’a-t-il rien fait sur mon bureau ?
C’est presque certainement parce que la session utilise Wayland. Sous Wayland, le compositeur gère la keymap et la transmet à chaque application. setxkbmap ne trouve donc pas d’affichage ou ne modifie que XWayland, et les applications natives l’ignorent. Définissez plutôt la disposition dans le compositeur : avec la clé gsettings org.gnome.desktop.input-sources sous GNOME, avec xkb_variant dans la configuration de sway, ou dans la page Layouts des System Settings de KDE Plasma.