KeyZen, moteur de remappage de touches basé sur des couches
(github.com/Seungchan0325)Description
KeyZen est un moteur de remappage de touches basé sur des couches, rapide et peu gourmand en ressources.
- Il utilise des couches de clavier basées sur une pile.
- Il prend en charge une exécution très rapide dès la connexion.
- Vous pouvez configurer le remappage via un fichier YAML.
Pour les méthodes de configuration détaillées, consultez le guide de configuration.
Situations où KeyZen est utile
Si, lorsque vous utilisez le clavier, les touches fléchées sont trop éloignées des touches de référence comme F et J et coupent votre flux, essayez de mapper Capslock + H, J, K, L vers Left, Down, Up, Right.
Essayez aussi de mapper le mot précédent (Ctrl + Left), le mot suivant (Ctrl + Right), le début de la ligne (Home) et la fin de la ligne (End) respectivement sur W, E, P et O. Vous aurez moins souvent besoin de déplacer la main vers la souris.
Pourquoi je l'ai créé
On sera tous d'accord pour dire que la touche capslock est placée à un endroit bien trop pratique par rapport à sa fréquence d'utilisation. J'ai donc cherché différentes méthodes pour obtenir un comportement proche de vim en combinaison avec la touche capslock. À l'origine, j'utilisais autohotkey pour cela, mais il y avait plusieurs problèmes.
- Il y avait un problème de synchronisation de l'état de la touche capslock. Cela peut dépendre de la façon dont le code est écrit, mais dans mon cas, il arrivait souvent que le système considère capslock comme enfoncée alors que ce n'était pas le cas, ce qui m'obligeait à marteler la touche capslock à plusieurs reprises.
- Je l'utilisais en le plaçant dans le dossier des programmes de démarrage pour qu'il se lance à la connexion, mais dans ce cas il y avait un problème : il fallait attendre plusieurs minutes après l'allumage du PC pour qu'il s'exécute.
J'ai aussi cherché des alternatives comme kanata, mais dans le cas de kanata, les fonctionnalités étaient trop vastes, il consommait plus de ressources CPU que prévu, et il ne prenait pas en charge le lancement à la connexion. (On peut certes aussi le placer dans le dossier des programmes de démarrage comme avec autohotkey, mais le même problème survient.)
Par ailleurs, le Keyboard Manager de PowerToys avait le problème suivant : dans une configuration où Capslock + H = Left Arrow, il fallait appuyer sur Capslock à chaque saisie.
C'est donc pour obtenir une faible consommation de ressources, une configuration simple et un lancement rapide à la connexion que j'ai créé KeyZen.
Aspects techniques
Le code a été majoritairement écrit avec Codex. Après une dizaine de jours de recherches préalables, j'ai commencé le développement avec Codex, et j'ai été surpris que ce soit terminé en une seule journée.
L'outil est implémenté en Rust et installe un hook clavier via la Windows API. J'ai hésité entre installer un hook clavier au niveau utilisateur ou passer par un driver, puis j'ai choisi d'utiliser l'installation d'un hook clavier. Les hooks clavier ont le défaut de ne pas fonctionner dans des programmes comme le Gestionnaire des tâches, mais je pensais qu'aller toucher à la partie driver pouvait être un peu risqué.
Aucun commentaire pour le moment.