⌨ Découverte de l’écosystème des claviers personnalisés

J'ai un collègue qui a laissé traîner un de ses claviers mécanique custom en split keyboard dans le fablab à l'agence, et qui a accepté de me le prêter pour que joue un peu avec pour voir si ça me donne envie et pour explorer cet écosystème un peu particulier où des personnes qui développement du "firmware" pour leur clavier...   

Je vous fais un petit article sur ce que j'ai découvert. (désolé flemme de prendre en photo donc photos piquées sur le web)

Photo d'un clavier mécanique avec des leds illuminant en dessous (le mien n'a as les rotary encoders)

Photo d'un clavier mécanique split en deux avec un trackpad au centre

photo d'un clavier split en deux avec les écrans oled et les leds qui illuminent le bureau, un clavier midi en fond.

    
Pour commencer vu que c'est un clavier très "custom" les touches sont pas hyper explicites, on peut donc pas "juste" le brancher et le tester, c'est un truc qui s'apprend, qui se configure, qui se cuisine aux petits oignions. Bon, il y a un coté aussi escape game et "aller on va recâbler le cerveau". Visuellement il y a plein de touches (keycaps) avec des logos qui correspondent à rien sur un clavier "normal". J'apprends qu'il y a des layers pour les dispositions variées.
    
Un tour sur le constructeur :   
https://splitkb.com/ je vois que le clavier en question en est à sa révision rev3, le clavier sous mes doigts est en rev1.1 ...

Je fini rapidement sur https://qmk.fm/ pour comprendre comment "flasher" le clavier pour revenir sur un layout par défaut. Et oui, pour configurer faut flasher les microcontrôleurs du clavier. À droite c'est du Arduino Leonardo à gauche c'est du Elite C pour avoir du USB-C. Les deux cotés sont reliés par un jack.
    
Pour la différence de microcontrôleur c'est expliqué ici : https://docs.splitkb.com/hc/en-us/articles/360011510839-Pro-Micro-vs-Elite-C-Why-choose-one-over-the-other 

Quelques commandes plus tard, je compile avec qmk : https://docs.qmk.fm/#/newbs_building_firmware et je passe au flashing https://docs.qmk.fm/#/newbs_flashing 

En mode clavier on branche USB et le jack. Pour flasher faut faire chaque main séparément et ayant pris soin de débranché le jack.
    
⚡ Flashing : coté gauche ça passe crème. Coté droit ça passe pas. Je suis obligé d'ajouter une option BOOTLOADER = caterina https://docs.qmk.fm/#/flashing?id=caterina 🤔 le vocabulaire commence à rentrer... y a probablement un truc plus simple pour le split flashing. À suivre.

Je trouve aussi que le firmware peut ne pas être compilé mais simplement téléchargé sur https://firmware.splitkb.com/

Le QMK configurator https://config.qmk.fm/#/splitkb/kyria/rev1/LAYOUT_split_3x6_5  devient ma doc de référence

Copie d'écran de QMK Configurator avec la disposition du clavier.
 
🖨 QMK Configurator est une ressource précieuse, on peut aussi y imprimer les layout / layers. Avant de configurer un truc à ma sauce, faut comprendre le layout par défaut. Une bonne documentation papier...

 ⌨ On peut aussi "Test your Keyboard" avec des informations sur les keycodes.

Il y a aussi un éditeur de layout (en lien sur)   https://docs.splitkb.com/hc/en-us/articles/360010818820-Is-there-a-Keyboard-Layout-Editor-template-available-for-the-Kyria 

Copie d'écran du QMK Configurator en mode "impression"

 

Éditeur web de layout pour customiser le layout des touches en numérique avant de passer aux keycaps


Du coup j'adapte les touches physique au layout par défaut

(désolé, encore photo piquées sur internet)

Photo d'un outil pour extraire les touches du clavier. (piquée sur le net)

Photo de l'outil pour extraire les touches
  
C'est l'heure de tester, rendez-vous sur des sites ou applications pour pratique la frappe (de clavier hein) :

https://www.colemak.academy/  (selection QWERTY, faut pas déconner, un changement à la fois)

https://www.typerush.com/  (attention gamification à fond)

https://apps.kde.org/ktouch/  (bon, les exos sont trop longs).

Les scores sont décourageants, l'apprentissage risque d'être long.

Coté layout je sens bien que ça va coincer un peu rapidement. Je cherche donc voir si il y a d'autres personnes qui ont contribué des layouts pour fr/en/code

Je trouve https://keymapdb.com/?languages=English%2CFrench&keyboard=Kyria&firmwares=QMK&OS=Linux qui répond en partie à la question à creuser dans un deuxième temps.

Je me perd sur https://mechdb.net/gallery où il y a un peu de #keyboardPorn l’esthétique ça compte non ?

 KeymapDB base de données collaborative des layouts de claviers

Split Keyboards sur MechDB

 

Gallery sur MechDB

    
🚦 Bon, et on peut jouer avec les RGB ?

Il y a des séquences pré-programmées dans le firmware du clavier. Mais je regarde du coté de https://openrgb.org/ pour voir si c'est possible de piloter depuis l'ordinateur.

https://github.com/Kasper24/QMK-OpenRGB laisse penser que oui, mais c'est pas intégré à tester.

Ma cible serait un écosystème comme https://blink1.thingm.com/ où il est possible de programmer ou configurer des notifications avec les RGB.

Échec... pour l'instant.

Copie d'écran du site de blink(1) notif usb avec plein de manières de la programmer.


    
🆙 Je tombe sur Vial https://get.vial.today/ qui prétend pouvoir piloter le clavier et sa configuration depuis l'ordinateur, concept séduisant et qui correspond à mes attentes (naïves). Malheureusement la rev1 du clavier que j'ai sous la main n'est pas supporté par ce "mode", à voir si c'est possible de le contribuer.

🔒 J'aime bien la protection pour éviter de pouvoir reconfigurer sans autorisation https://get.vial.today/docs/security.html avec une combinaison de touches pour "Unlock"

Copie d'écran de la documentation pour "déverouiller" son clavier
    
🖥 Coté écran OLED c'est cool d'avoir deux écrans sous la main, mais on peut faire quoi avec ?

Coté documentation https://docs.splitkb.com/hc/en-us/articles/360010533820-What-can-you-use-an-OLED-display-for  montre des exemples et indique qu'on peut faire ce qu'on veut, mais faut programmer ça, rien de configurable... https://joric.github.io/qle/ permet de convertir des images en code. Bon courage.

Rien pour piloter depuis l'ordinateur ce qui permettrais d'imaginer des notifications 🗨

Copie d'un exemple de pong qui tourne sur l'écran OLED

Copie d'un exemple où un bongoCat qui montre la vitesse de frappe

Copie d'un exemple d'un graph de vitesse de frappe.

Copie d'écran de QMK Logo Editor avec une partie "graphique" et l'export de code.
Voilà, je commence à avoir fait le tour de ce que j'ai découvert. À voir si j'adopte ou pas et que j'y consacre l'effort de réapprendre à taper et la période de frustration de taper plus lentement.

https://github.com/diimdeep/awesome-split-keyboards vous pouvez voir la diversité de fou que cet écosystème regorge.

Et je vous laisse regarder les claviers de @gmembre qui en parle avec passion : https://www.mydiy.dev/realisations_keyboards_start

Clavier avec 4 touches et deux rotarys

Clavier coloré Agathe

 

Clavier Dactyl avec forme "ergonomique"

Version portative du clavier dactyl : le Flactyl

🙏 Et merci à Clément de m'avoir prêté son clavier pour jouer avec.