pdg / degaujac.fr
EN
← Écrits
Hardware

Construire un Ferris Sweep et réapprendre à taper

Un clavier split de 34 touches, Colemak-DH et trente ans de mémoire musculaire QWERTY. Apparemment, changer une seule chose à la fois était trop raisonnable.

9 min de lecture

J’ai construit un Ferris Sweep, un petit clavier split de 34 touches. Deux moitiés, quelques touches pour les pouces, et nettement moins d’endroits où cacher un raccourci.

Apprendre à taper là-dessus aurait déjà été un projet raisonnable. Des touches placées autrement, les mains séparées, des couches à la place d’une rangée de chiffres. Il y avait largement de quoi s’occuper.

Donc forcément, j’ai aussi décidé de passer de QWERTY à Colemak-DH en même temps.

Parce qu’apprendre à utiliser un clavier split ne suffisait apparemment pas. Il fallait aussi combattre environ trente ans de mémoire musculaire.

Deux moitiés, trente-quatre touches

Le Sweep est une variante du Ferris qui utilise des cartes contrôleur séparées. Chaque main dispose de trois rangées de cinq touches pour les doigts, plus deux touches pour le pouce : dix-sept touches de chaque côté.

Les colonnes sont décalées verticalement, plutôt que les rangées horizontalement comme sur un clavier classique. Les deux moitiés peuvent être placées indépendamment, au lieu d’obliger les mains à se rejoindre autour d’un seul bloc de touches.

Cette liberté de placement faisait partie de l’intérêt. Pouvoir définir ce que chaque touche fait aussi.

Mais ce qui saute aux yeux, ce sont surtout les touches absentes. Pas de rangée de chiffres dédiée, pas de bloc de flèches séparé, pas de collection de modificateurs tout autour.

Trente-quatre touches, c’est une contrainte. La partie intéressante consiste à décider où ranger toutes les autres fonctions.

Un peu d’assemblage. Éventuellement deux fois.

J’ai utilisé des switches Kailh Choc White et des keycaps low-profile standards, sans légendes. Il n’y avait pas de touches de repérage dans le lot, donc j’en ai imprimé deux en 3D pour retrouver la position de départ sans regarder le clavier.

Ce qui semblait particulièrement utile quand, de toute façon, il n’y avait aucune lettre à regarder.

La partie contrôleurs s’est moins bien passée.

D’abord, j’ai acheté des contrôleurs sans fil alors que je voulais un clavier filaire. Ensuite, je les ai soudés directement sur le PCB au lieu d’utiliser des connecteurs à broches.

Pas mon meilleur moment.

En essayant de revenir sur cette décision et de les dessouder, j’ai abîmé les pistes du PCB. Il a donc fallu commander de nouvelles cartes.

Pas mon meilleur moment non plus.

Les connecteurs auraient rendu les contrôleurs amovibles. La soudure directe a transformé un changement d’avis en opération nettement plus physique, et le PCB a perdu la discussion.

Il y avait deux tâches : construire un clavier qui envoie les bonnes touches, puis devenir quelqu’un qui appuie sur les bonnes touches. J’avais réussi à compliquer la première avant même de commencer la seconde.

Une disposition que je peux modifier dans le code

Mon firmware utilise QMK, avec la disposition définie dans keymap.c. Le clavier devient donc une partie du projet, plutôt qu’un objet terminé dont je dois accepter le fonctionnement. Lettres, symboles, navigation, comportement des modificateurs : tout ça peut se modifier dans le code.

Ça veut aussi dire que je peux construire un clavier parfaitement fonctionnel que je ne sais pas encore très bien utiliser. Réussir le montage et réussir la transition sont deux étapes distinctes.

Changer l’alphabet au passage

Colemak-DH réorganise les lettres avec le confort de mouvement comme objectif, notamment en déplaçant D et H hors des positions centrales qu’elles occupent dans Colemak classique.

Voici la couche de base de mon keymap :

Q W F P B     J L U Y '
A R S T G     M N E I O
Z X C D V     K H , . /

   Espace Nav     Sym Shift

Sur un schéma, ça paraît assez abordable. Ça devient plus ambitieux quand ce schéma doit remplacer ce que mes mains font automatiquement depuis des décennies.

Normalement, je ne pense pas « la prochaine lettre est T, et T se trouve ici ». Je pense à une phrase ou à une ligne de code, et la frappe se fait en arrière-plan.

Changer de disposition ramène ce processus au premier plan. Ce que je veux écrire est prêt. La mécanique qui doit l’amener à l’écran commence maintenant à poser des questions.

Le split ajoute un changement physique en même temps. Un mouvement familier n’a plus la même destination, et une destination familière ne contient plus forcément la même lettre.

L’approche raisonnable aurait été de m’habituer au Sweep en QWERTY, puis de changer les lettres. J’ai choisi de combiner les deux. Un planning efficace, si l’objectif du planning est de rendre la frappe difficile.

S et R ont été le plus gros obstacle au début. Ces deux lettres rappelaient très efficacement que connaître la nouvelle disposition et réussir à taper dessus sont deux choses différentes. Mes doigts avaient un avis bien établi sur leur emplacement.

Les touches n’ont pas disparu, elles sont dans des couches

Le keymap comporte quatre couches :

CoucheComment j’y accèdeCe qu’elle contient
BaseAucune touche de couche maintenueLettres Colemak-DH et ponctuation
SymbolesMaintenir la touche Symboles du pouceParenthèses, opérateurs, ponctuation et modificateurs
NavigationMaintenir la touche Navigation du pouceFlèches, touches d’édition, raccourcis Mac et contrôles média
ChiffresMaintenir les deux touches de coucheChiffres, touches de fonction et modificateurs

Les quatre touches des pouces sont Espace, Navigation, Symboles et Shift. Les deux touches de couche sont dédiées à leur activation. Je ne demande pas à une touche de lettre de deviner si je voulais écrire un caractère ou changer de couche.

Maintenir les deux touches de couche active celle des chiffres. Deux touches de pouce permettent donc d’atteindre trois couches supplémentaires, sans ajouter de touche physique.

Les couches changent aussi des habitudes très ordinaires. Backspace se trouve sur la couche Navigation, tout à droite de la rangée de repos. Entrée est sur cette couche aussi, en bas à droite.

Même corriger une faute de frappe demande un nouveau mouvement. Ce qui tombe bien, puisque le reste du projet fournit beaucoup d’occasions de s’entraîner à corriger des fautes de frappe.

Un clavier pour coder a quand même besoin de parenthèses

Déplacer les lettres ne règle qu’une partie du problème pour un développeur. Il faut aussi une disposition utilisable pour (), {}, [], les opérateurs, les slashs et les raccourcis de navigation dans l’éditeur.

La couche Symboles place les caractères ouvrants à gauche et leurs partenaires fermants à droite. La rangée de repos contient notamment -, *, = et _, avec d’autres signes en dessous.

J’aime pouvoir expliquer cette organisation. Ça me donne une structure à apprendre, plutôt qu’un sac de caractères spéciaux répartis là où il restait de la place.

La couche Navigation est pensée pour le Mac. On y trouve les flèches, le début et la fin de ligne, les onglets précédent et suivant, la navigation du navigateur, le changement de bureau et les contrôles média.

On se concentre facilement sur l’alphabet quand on regarde une disposition alternative. Mais se déplacer dans un document, sélectionner du texte, changer d’application et réparer une erreur comptent autant quand on veut réellement travailler avec.

Taper un mot, c’est une compétence. Se déplacer dans l’ordinateur sans penser au clavier, c’est un ensemble d’habitudes beaucoup plus vaste.

Des modificateurs sans garder un accord de touches enfoncé

Le firmware inclut aussi des modificateurs one-shot pour Shift, Control, Option et Command.

Le principe est simple : appuyer puis relâcher un modificateur l’applique à la touche suivante. Le maintenir permet de l’utiliser comme un modificateur classique. Plusieurs peuvent être mis en attente ensemble.

L’implémentation de ce keymap ne repose pas sur un timer pour le modificateur en attente. Elle suit son utilisation. Appuyer sur une touche de couche annule un one-shot en attente : le comportement d’annulation est donc explicite aussi.

C’est utile sur un petit clavier où tous les modificateurs n’ont pas de touche permanente sur les bords. Ça ajoute également une habitude à apprendre : un raccourci peut devenir une séquence, plutôt que plusieurs doigts qui maintiennent un accord de touches.

Le changement d’application utilise une logique similaire. La touche dédiée garde Command actif pendant que les appuis successifs envoient Tab, puis le relâche quand une autre touche est utilisée. Le changement de langue fonctionne de la même manière avec Control-Espace.

Rien de tout ça ne m’aide à retrouver T. Mais une fois la lettre retrouvée, j’ai plusieurs façons de la modifier.

Le moi du futur, octobre 2026 : le français a des accents

Le moi de juin avait déjà suffisamment de choses à apprendre. Le moi du futur tient à signaler que j’écris aussi en français, et que savoir où se trouve E ne dit pas comment taper é.

J’ai donc ajouté des combos pour les accents dans le firmware. Deux touches pressées ensemble sur la couche de base produisent un caractère accentué plutôt que les deux caractères ordinaires. Encore des gestes à apprendre. Évidemment.

Les paires utilisent des touches de la même colonne, l’une au-dessus ou en dessous de l’autre. L’idée est de distinguer ces accords des mouvements habituels entre les lettres :

ComboRésultat
E + ,é
E + Uè
A + Zà
S + Cç
I + .Touche morte circonflexe, puis une voyelle pour â, ê, î, ô ou û
O + /Touche morte accent grave, puis une voyelle pour à, è ou ù

Le firmware envoie les raccourcis Option de la disposition US de macOS. Certains combos produisent le caractère complet ; les deux combos de touches mortes préparent l’accent et attendent la voyelle suivante. Shift permet les majuscules, en l’appliquant à la voyelle quand on utilise une touche morte.

Les accents sont donc accessibles sans leur consacrer de nouvelles touches physiques. Il faut aussi apprendre que deux touches ensemble donnent parfois un caractère, alors qu’une autre paire attend encore une voyelle derrière.

Trente ans de QWERTY, un split, des couches, des modificateurs one-shot, et maintenant des accords pour les accents. À ce stade, écrire une phrase en français commence dangereusement à ressembler à jouer d’un instrument.

Et pour rassurer le moi de juin : le Sweep est maintenant mon clavier de tous les jours. Je n’ai pas encore retrouvé ma vitesse en QWERTY, mais ça vient. Ce n’est plus seulement un clavier que j’ai construit, c’est celui que j’utilise vraiment.

Quelques heures de bigrammes plus tard

J’ai passé pas mal d’heures à pratiquer des bigrammes sur Ngram Type et des mots sur keybr.

La différence compte. Mémoriser l’emplacement de chaque lettre me donne une carte. Pratiquer des paires et des mots permet de travailler les mouvements entre elles. S et R n’arrivent pas gentiment toutes seules quand j’écris : elles apparaissent au milieu de quelque chose que mes mains pensent déjà savoir taper.

Les keycaps sans légendes n’apportent pas beaucoup d’aide pour l’alphabet. Les deux touches de repérage imprimées permettent de retrouver le point de départ, mais le reste demande toujours de la pratique.

Ça remet un peu les idées en place de passer des heures à entraîner volontairement une activité qui se faisait en arrière-plan depuis trente ans. Je passe mes journées de travail à utiliser un clavier. Ça n’a pas empêché une nouvelle organisation des lettres de le rendre peu familier.

La partie qui ne se flashe pas

Le firmware exécute plutôt bien ce qu’on lui demande. La mémoire musculaire s’intéresse moins à la nouvelle spécification.

C’est la partie frustrante quand on change quelque chose d’aussi familier. La disposition peut être parfaitement compréhensible sur le papier alors que l’ancien geste arrive toujours en premier. Savoir où se trouve une lettre et aller la chercher automatiquement sont deux choses différentes.

Avoir le keymap dans le code donne envie de déplacer une touche dès qu’elle paraît gênante. Mais chaque modification ajoute aussi quelque chose à réapprendre. Corriger un problème de disposition et modifier la carte parce que je ne l’ai pas encore apprise, ce n’est pas la même chose.

Le split et la disposition des lettres restent deux changements séparés, même si j’ai décidé de les apprendre ensemble. Placer les deux moitiés, apprendre les colonnes, retrouver une couche et trouver une lettre sont des tâches différentes. Elles se disputent simplement mon attention pendant que j’essaie d’écrire une phrase.

C’est ce qui me plaît dans ce projet, malgré la difficulté que je me suis infligée. Je peux construire le matériel, décrire son comportement dans le code, et découvrir à quel point l’utilisation d’un ordinateur se fait normalement sans réflexion consciente.

Trente-quatre touches suffisent pour exprimer la disposition. Trente ans d’habitudes demandent un peu plus d’arguments.

Je peux flasher le clavier. Malheureusement, il faut encore entraîner l’opérateur.