Pour les claviers (souvent mécaniques) ayant un firmware QMK, l’agencement des touches peut être librement configuré par une interface utilisateur VIA. Si il est possible d’installer un logiciel dédié, il est plus simple d’utiliser un navigateur basé sur Chrome (Chromium, Edge, Vivaldi…) pour faire exactement la même chose. Cela marche très simplement sous Windows et sur Mac, mais sur Ubuntu cela demande des manipulations supplémentaires:
- Il faut donner des droits d’accès au clavier pour l’utilisateur.
- Chromium ne peut pas y accéder en mode normal (sandbox).
Ajouter une règle udev
Cela permet lorsque le clavier est branché de donner des droits en lecture/écriture sur le fichier associé au clavier à l’utilisateur. Cette page indique comment le faire. Et donc j’ai fait cela:
- J’ai exécuté la commande « lsusb » pour lister les périphériques USB, et trouver les identifiants fabriquant et modèle du clavier. Dans l’entrée suivante, le fabriquant est « 3233 » et le modèle est « 0011 »:
Bus 001 Device 008: ID 3233:0011 ProjectD ProjectD 75% ISO
- J’ai créé (en tant que root) un fichier « /etc/udev/rules.d/92-viia.rules » avec le contenu suivant, en spécifiant:
- Le numéro de fabriquant dans l’attribut « idVendor ».
- Le numéro de modèle dans celui « idProduct ».
- Le nom de mon groupe d’utilisateur dans « GROUP » (souvent c’est le même nom que l’utilisateur).
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3233", ATTRS{idProduct}=="0011", MODE="0660", GROUP="jeanpierre", TAG+="uaccess", TAG+="udev-acl"
- Puis en tant que root, j’ai exécuté la commande suivante, pour recharger les règles pour les périphériques branchés:
udevadm control --reload-rules && udevadm trigger
- Et donc si j‘exécute la commande « ls -l /dev/hidraw* » pour voir les fichiers correspondants aux périphériques USB accessibles de manière brute, je vois que le groupe possédant certains est bien mon groupe utilisateur.
Démarrer Chromium sans sandbox
Chromium tourne de base dans un bac à sable qui vise à empêcher l’accès à des fichiers imprévus. Problème: ça empêche l’accès aux fichiers « hidraw » qui permettent de communiquer avec le clavier USB. Dans ce cas, le site web de VIA vous donnera une erreur d’accès, et dans Chromium vous pourrez voir dans la page « chrome://device-log/ » que l’accès à un de ces fichiers hidraw a échoué pour cause de « FILE_ERROR_ACCESS_DENIED » (même si vous avez donné accès dans la section précédente, et si un autre programme pourrait y écrire).
Solution: lancer chromium avec la commande suivante:
/snap/chromium/current/usr/lib/chromium-browser/chrome --user-data-dir=$HOME/ChrUnsnapped --class="ChrUnsnapped"
Cela va créer un profil Chromium dans le répertoire spécifié, ce ne sera pas le même profil d’utilisateur qu’en mode « sandbox » normal.
Utiliser VIA
- Allez sur le site https://usevia.app/
- Si vous avez un clavier Ducky Tinker 75
- vous devrez télécharger le modèle (fichier JSON) sur cette page.
- dans l’onglet « Settings » activer « Show Design tab ».
- aller dans l’onglet « Design »
- cliquer sur le bouton « Load Draft Definition » et charger la disposition (en novembre 2024, elle n’était pas directement disponible dans l’application VIA)
- Aller dans l’onglet « Configure » et cliquez sur le bouton « Authorize device »
- Choisir votre clavier dans la popup et cliquer sur « Connexion »
Ça y est, vous devriez pouvoir changer en live le comportement de vos touches!