00:00:00Voici Kanata, un outil open source qui maximise le potentiel de votre clavier
00:00:03en permettant, par exemple, d'assigner une touche différente selon qu'elle est pressée ou maintenue,
00:00:08d'utiliser une seule touche pour déclencher plusieurs frappes,
00:00:10ou de disposer de plusieurs couches pour différents mappages personnalisés.
00:00:12Ce qui est génial pour quelqu'un comme moi qui essaie de tout faire au clavier.
00:00:16Mais c'est quoi cette syntaxe de configuration bizarre ?
00:00:19Et pourquoi utiliser ça plutôt que Karabiner ou un autre outil commençant par K ?
00:00:24Abonnez-vous et découvrons cela ensemble.
00:00:27Kanata est le nom iroquois indigène pour "village",
00:00:30ce qui n'a absolument rien à voir avec les claviers.
00:00:33Mais si vous aimez les claviers mécaniques comme moi, vous connaissez peut-être QMK,
00:00:37un micrologiciel de clavier open source très populaire,
00:00:39qui permet de remapper les touches au niveau du clavier avant l'envoi à l'ordinateur.
00:00:42Kanata est comme QMK, mais il fonctionne au niveau logiciel,
00:00:46il est donc compatible avec tous les claviers, même celui de votre ordinateur portable.
00:00:49Et comme il est écrit en Rust, il est extrêmement rapide
00:00:52et il n'y a pratiquement aucun délai de latence lors de la frappe.
00:00:55Par contre, l'installation n'est pas si simple,
00:00:57car après avoir installé Kanata avec Karabiner pour Mac,
00:01:00j'y reviendrai plus tard,
00:01:02vous devez écrire un fichier de configuration utilisant la syntaxe S-expression inspirée de Lisp,
00:01:07ce qui est la syntaxe la plus étrange que j'aie jamais vue.
00:01:11Parce qu'au lieu d'écrire le nom d'une fonction à l'extérieur des parenthèses,
00:01:16dans ce fichier, on l'écrit à l'intérieur, juste à côté des arguments.
00:01:21Mais ça devient encore plus spécial quand on commence à imbriquer des fonctions,
00:01:24ce qui arrive souvent dans la configuration,
00:01:26car comme les noms de fonctions ne sont pas à l'extérieur des parenthèses,
00:01:30tout se retrouve à l'intérieur, ce qui est un peu déroutant au début.
00:01:35Mais on s'y habitue avec le temps.
00:01:36Prenons un exemple simple : je veux que la touche A devienne la touche X.
00:01:41J'utilise la fonction "defsource" pour spécifier la touche d'origine A,
00:01:46et au moins une fonction "deflayer" pour spécifier les touches de sortie.
00:01:50Je vais nommer cette couche "base" avec l'argument X.
00:01:53Toute touche non listée dans le fichier de configuration garde son comportement normal.
00:01:57Ajouter d'autres touches comme B et C pour les mapper vers X et Z ressemble à ceci.
00:02:02Heureusement, les espaces et les tabulations ne comptent pas,
00:02:04vous pouvez donc espacer les touches pour rendre le tout bien lisible.
00:02:08Voici d'autres fonctions sympas pour votre fichier de configuration.
00:02:10Je pourrais configurer un "tap-hold" : une pression brève fait une action, une pression longue une autre,
00:02:15avec un délai de maintien, puis en ajoutant les touches cibles.
00:02:19Ici, presser A affichera X, mais maintenir A agira comme la touche Shift gauche.
00:02:24Pour simplifier, je peux utiliser la fonction "defvar" pour enregistrer des variables
00:02:28que j'utilise souvent et les appeler avec un signe dollar,
00:02:32ce qui est parfait pour les "home row mods", associant les touches de repos aux quatre modificateurs classiques.
00:02:36Franchement, ça semble bizarre au premier abord,
00:02:39mais je m'y suis habitué et je n'imagine plus utiliser mon clavier autrement.
00:02:42Je pourrais aussi créer un nouveau "deflayer" nommé "editor"
00:02:46pour le montage vidéo, avec un tout nouvel ensemble de touches,
00:02:51et passer à cette couche via une touche dédiée.
00:02:54Et si vous voulez aller encore plus loin lors des changements de couches,
00:02:58vous pouvez activer le serveur TCP de Kanata pour que d'autres applications l'écoutent.
00:03:03Dans mon cas, SketchyBar écoute Kanata
00:03:06pour afficher la couche active directement en haut de mon bureau.
00:03:10Certes, arriver à ce résultat a demandé pas mal de configuration,
00:03:13mais rien qu'une IA ne puisse vous aider à rédiger.
00:03:16Bref, pourquoi utiliser Kanata plutôt que Karabiner-Elements ?
00:03:21Sachant que ce dernier fait tout ce que Kanata propose et bien plus,
00:03:24comme des mappages spécifiques par application ou par clavier,
00:03:28un visualiseur d'événements intuitif pour tester les touches,
00:03:30et une interface graphique pour ceux qui n'aiment pas le terminal.
00:03:35Mais pour moi, la fonction "tap-hold" de Karabiner était vraiment insuffisante pour les home row mods.
00:03:40Il m'a fallu beaucoup de recherches et de réglages pour que ça fonctionne enfin.
00:03:45Et même là, ce n'était pas aussi fluide qu'avec Kanata.
00:03:49Il confondait régulièrement les pressions longues avec des pressions brèves.
00:03:51Kanata, lui, gère ça parfaitement dès le départ sans aucun réglage,
00:03:56et je n'ai jamais eu envie de revenir à Karabiner-Elements.
00:03:59Donc si vous voulez vraiment des home row mods, je vous conseille Kanata.
00:04:03Mais tout n'est pas parfait pour autant.
00:04:05Il faut plusieurs fichiers si vous avez des mappages différents selon les claviers,
00:04:09ce qui est un peu pénible quand on débranche un clavier
00:04:12car il faut relancer une commande pour changer de configuration.
00:04:15Je n'ai pas non plus réussi à remapper le bouton lecture/pause sur F8,
00:04:20ce que je pouvais faire avec Karabiner.
00:04:22Et il a fallu quelques ajustements pour que Kanata fonctionne avec la souris MX Master.
00:04:26Heureusement, j'ai pu bricoler des solutions pour la plupart de ces problèmes,
00:04:30que je partagerai peut-être en open source bientôt.
00:04:31Mais j'aimerais que la communauté Kanata s'agrandisse,
00:04:34ce que cette vidéo pourrait aider à faire si vous la partagez massivement, n'est-ce pas ?