ZSA Moonlander : ma configuration

Philosophie de Ma Configuration

Ma configuration s’articule autour de trois principes fondamentaux :

🎯 Efficacité

Minimiser les mouvements des mains et optimiser l’accès aux touches les plus utilisées

🧠 Logique

Grouper les fonctions similaires et créer des patterns mémorisables

⚡ Productivité

Adapter spécifiquement aux workflows de développement web et système

🔄 Evolution Constante

Cette configuration est le résultat de 18 mois d’itérations. Elle continue d’évoluer selon mes besoins et découvertes.

Choix du Layout : Colemak-DH

Pourquoi Abandonner AZERTY ?

Après analyse de mes patterns de frappe, AZERTY s’est révélé particulièrement inefficace pour la programmation :

  • Surcharge de l’auriculaire gauche
  • Sous-utilisation des index
  • Mouvements latéraux excessifs
  • Accès difficile aux symboles de programmation

Avantages du Colemak-DH

  • Répartition équilibrée entre les mains (52% droite, 48% gauche)
  • Optimisation pour les bigrammes fréquents en anglais
  • Placement intelligent des voyelles
  • Courbe d’apprentissage plus douce que Dvorak

⚠️ Période d’Adaptation

Le passage d’AZERTY à Colemak-DH m’a pris 6 semaines pour retrouver ma vitesse initiale. Les 2 premières semaines sont frustrantes, mais ça vaut le coup !

Architecture des Couches

Couche 0 : BASE (Colemak-DH)

Layout principal avec les lettres, chiffres de base et modificateurs essentiels

Couche 1 : NAVIGATION

Flèches directionnelles, page up/down, home/end, sélection de texte

Couche 2 : SYMBOLES

Tous les symboles de programmation, parenthèses, crochets, opérateurs

Couche 3 : NUMÉRIQUE

Pavé numérique optimisé, opérations mathématiques, touches fonction

Couche 4 : MÉDIA

Contrôles audio, luminosité, RGB, macros spéciales

Couche BASE – Le Fondement

Optimisations Clés

Ma couche de base intègre plusieurs optimisations par rapport au Colemak-DH standard :

Position des Pouces (les plus importantes) :
Gauche : Space (tap) / Shift (hold)
Droite : Enter (tap) / Navigation Layer (hold)

Modificateurs Principaux :
Ctrl : Caps Lock position (plus accessible)
Alt : Pouce gauche secondaire
Cmd/Win : Près des pouces

Mod-Tap Keys

J’utilise extensivement les touches Mod-Tap pour réduire les contorsions :

  • Espace/Shift : Espace en tap, Shift maintenu
  • Enter/Nav : Enter en tap, couche navigation maintenue
  • Escape/Ctrl : Escape en tap, Ctrl maintenu
  • Tab/Alt : Tab en tap, Alt maintenu

🎯 Timing Optimal

J’ai configuré le TAPPING_TERM à 200ms après plusieurs essais. Plus court créait des activations accidentelles, plus long ralentissait la frappe.

Couche NAVIGATION – Fluidité

Placement Logique

La couche navigation replique un pavé directionnel sous la main droite :

Main Droite Navigation :

← ↓ →

Position exacte :
I = ↑ U = Home O = Page Up
J = ← K = ↓ L = → ; = End ‘ = Page Down

Avec Shift ajouté = sélection de texte
Avec Ctrl ajouté = navigation par mots

Actions Complémentaires

  • Main gauche : Ctrl, Shift, Alt pour les combinaisons
  • Delete/Backspace : Accessibles sans quitter la couche
  • Mouse keys : Contrôle basique de la souris au clavier

💡 Découverte Importante

Placer les flèches sous IJKL (comme Vim) plutôt que WASD a été un game-changer. Plus naturel pour les développeurs et cohérent avec de nombreux outils.

Couche SYMBOLES – Développement

Optimisation pour le Code

Cette couche est entièrement pensée pour la programmation JavaScript/Python :

Groupes Logiques

  • Parenthèses () sur les index
  • Crochets [] sur les majeurs
  • Accolades {} sur les annulaires
  • Chevrons <> sur les auriculaires

Symboles Fréquents

  • = et == facilement accessibles
  • !== et !== en combos
  • // et /* */ pour commentaires
  • => pour les fonctions flèches

Macros Intégrées

Mes macros les plus utilisées :
→ console.log() [Shift + C + L]
→ ${} (template literal) [Alt + $]
→ // TODO: [Leader + T]
→ debugger; [Leader + D + B]

Couche NUMÉRIQUE – Calculs

Pavé Numérique Optimisé

J’ai recréé un pavé numérique sous la main droite avec quelques améliorations :

Layout du pavé numérique :
7 8 9 /
4 5 6 *
1 2 3 –
0 . = +

Bonus :
– Calculs directement intégrés
– Conversion rapide (hex, bin)
– Fonctions mathématiques courantes

Touches Fonction

F1-F12 accessibles via cette couche, particulièrement utile pour :

  • Debugging (F5, F10, F11)
  • Outils de développement (F12)
  • Shortcuts IDE spécifiques

Combos et Séquences

Combos pour Actions Rapides

Les combos permettent d’activer des actions en pressant plusieurs touches simultanément :

Mes combos essentiels :
QW = Escape (alternative rapide)
IO = Delete
DF = Tab
JK = Enter
SD = Ctrl+C (copier)
FG = Ctrl+V (coller)

Leader Key Sequences

Inspiré de Vim, le leader key ouvre des séquences de commandes :

Leader + G + C

Git commit avec message template

Leader + G + P

Git push vers origin

Leader + R + S

Reset du clavier en mode bootloader

Leader + T + M

Toggle entre différents modes RGB

Personnalisation Visuelle

RGB par Couche

Chaque couche a sa couleur distinctive pour un feedback visuel immédiat :

🔵 BASE – Bleu

Couleur calme pour la frappe normale

🟢 NAVIGATION – Vert

Couleur de mouvement pour les déplacements

🟠 SYMBOLES – Orange

Couleur d’attention pour la programmation

🟣 NUMÉRIQUE – Violet

Couleur distinctive pour les calculs

Indicateurs Visuels

  • Caps Lock : Clignotement rouge
  • Mode Bootloader : Animation rainbow
  • Macro Recording : Pulsation jaune
  • Battery Low : Clignotement rouge lent

Optimisations Spécifiques

Auto-Shift

Maintenir une lettre plus longtemps produit sa version majuscule automatiquement. Élimine le besoin de Shift pour les majuscules isolées.

One Shot Mods

Les modificateurs restent actifs pour la prochaine touche même après relâchement. Parfait pour les combinaisons rapides sans contorsions.

Permissive Hold

Configuration fine du timing des Mod-Tap pour éviter les activations accidentelles pendant la frappe rapide.

// Configuration dans config.h
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define TAPPING_FORCE_HOLD
#define AUTO_SHIFT_TIMEOUT 150

Workflow Quotidien

Session de Développement Type

Démarrage

Leader+T+M pour activer le mode RGB productivité, ouverture IDE avec raccourcis custom

Coding

Frappe fluide en Colemak-DH, accès instantané aux symboles via couche SYM, navigation rapide avec couche NAV

Debugging

Macros console.log(), breakpoints, touches F pour step-by-step

Git Workflow

Leader sequences pour add/commit/push, macros pour messages de commit fréquents

Gains Mesurables

  • Vitesse : 85 WPM en Colemak vs 70 WPM en AZERTY
  • Fatigue : Réduction de 60% des douleurs de poignet
  • Productivité : 30% moins de mouvements de mains
  • Confort : Sessions de 8h+ sans inconfort

Évolution Future

Améliorations Prévues

  • Intégration de macros IA pour la génération de code
  • Profiles contextuels selon l’application active
  • Optimisation des combos basée sur l’analyse d’usage
  • Synchronisation avec d’autres claviers split

🔬 Analyse Continue

J’utilise des outils comme WhatPulse pour analyser mes patterns de frappe et identifier les optimisations possibles. La configuration parfaite n’existe pas, elle évolue avec nos besoins !

Conseils pour Débuter

Approche Progressive

Semaine 1-2

Commencer avec une config simple, se concentrer sur le layout de base

Semaine 3-4

Ajouter la couche navigation, s’habituer aux Mod-Tap

Mois 2

Intégrer la couche symboles, premiers combos

Mois 3+

Fonctionnalités avancées, macros, optimisations fines

🎯 L’Erreur à Éviter

Ne pas tout changer d’un coup ! J’ai fait cette erreur au début et j’ai failli abandonner. Changez progressivement, une couche à la fois, et laissez-vous le temps de vous adapter.

Conclusion

Cette configuration représente 18 mois d’itérations et d’optimisations. Elle transforme complètement l’expérience de programmation et a considérablement amélioré mon confort de travail.

Le Moonlander n’est pas qu’un clavier, c’est un outil de productivité personnalisable à l’infini. Investir le temps nécessaire pour créer sa configuration parfaite est l’un des meilleurs ROI qu’un développeur puisse faire.