« ErgoDox » : différence entre les versions
m (Ajout balise fermante « /source ») |
|||
(23 versions intermédiaires par 9 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
= Présentation = | = Présentation = | ||
[[Image:ErgoDox.png|400px|thumb|right]] | [[Image:ErgoDox.png|400px|thumb|right]] | ||
Site internet du projet : http://ergodox. | Site internet du projet : http://ergodox.io | ||
Le projet est inspiré d'un projet déjà existant http://www.key64.org. Vous pouvez retracer l'historique du projet en lisant le fil d'origine sur : | Le projet est inspiré d'un projet déjà existant http://www.key64.org. Vous pouvez retracer l'historique du projet en lisant le fil d'origine sur : | ||
Ligne 8 : | Ligne 8 : | ||
== Achat == | == Achat == | ||
Plusieurs sites vous proposent des kits complet pour vous permettre de monter votre clavier. Sachez qu'il faut compter un budget minimum de | Plusieurs sites vous proposent des kits complet pour vous permettre de monter votre clavier. Sachez qu'il faut compter un budget minimum de 200 € pour faire l'acquisition d'un modèle neuf. Un fil sur [http://forum.bepo.fr/viewtopic.php?id=1072 le forum] vous détaille tout cela. Sachez également qu'il est en général difficile de se procurer des pièces pour claviers mécaniques depuis la France. | ||
=== Massdrop === | === Massdrop === | ||
Ligne 26 : | Ligne 26 : | ||
A noter que Falbatech propose aussi des services de montage partiel ou complet ce qui peut être rassurant pour les moins bricoleurs. Ils proposent aussi pas mal d'accessoires en tout genre et les prix sont raisonnables. | A noter que Falbatech propose aussi des services de montage partiel ou complet ce qui peut être rassurant pour les moins bricoleurs. Ils proposent aussi pas mal d'accessoires en tout genre et les prix sont raisonnables. | ||
=== ErgoDox EZ === | |||
Site spécialisé sur l’ergodox. Les claviers sont vendus pré-montés. Et ils ont leur [http://configure.ergodox-ez.com/keyboard_layouts/new propre configurateur], un peu plus beau que celui de Massdrop. Il semble que le layout par défaut soit différent de celui de Massdrop. | |||
* https://ergodox-ez.com/ | |||
== Personnalisation == | == Personnalisation == | ||
==== | ==== Cabochons ==== | ||
Si vous n'avez pas pris les | Si vous n'avez pas pris les cabochons lors de votre achat ou que vous souhaitez en changer vous pouvez vous tourner vers des sites tel que : | ||
* http://pimpmykeyboard.com/blank-key-packs/ | * http://pimpmykeyboard.com/blank-key-packs/ | ||
* http://www.wasdkeyboards.com/index.php/products/keycap-set.html | * http://www.wasdkeyboards.com/index.php/products/keycap-set.html | ||
Ligne 36 : | Ligne 40 : | ||
==== Disposition ==== | ==== Disposition ==== | ||
Pour cela vous avez le choix entre utiliser [https://keyboard-configurator.massdrop.com/ext/ergodox | Pour cela vous avez le choix entre utiliser les configurateurs web que [https://keyboard-configurator.massdrop.com/ext/ergodox massdrop] ou [http://configure.ergodox-ez.com/keyboard_layouts/new Erogodox-EZ] mettent a disposition] (même si vous n'avez pas acheté chez eux), soit passer par la compilation maison pour profiter des avantages des derniers firmwares ou des alternatifs. Ils apportent des fonctionnalités supplémentaires comme les touches de média, copier/couper/coller, etc. | ||
La procédure n'est pas des plus compliquées. | La procédure n'est pas des plus compliquées. | ||
Ligne 42 : | Ligne 46 : | ||
=== Reprogramation === | === Reprogramation === | ||
Nous allons voir les | Nous allons voir les différentes manières de configurer la disposition de votre ErgoDox. | ||
==== 1 | ==== 1 Configurateurs ==== | ||
C'est l'interface la plus conviviale pour se faire une première disposition personnalisé sans trop mettre les main dans les lignes de code.Pour cela il vous suffit d'aller sur [https://keyboard-configurator.massdrop.com/ext/ergodox | C'est l'interface la plus conviviale pour se faire une première disposition personnalisé sans trop mettre les main dans les lignes de code. | ||
===== Massdrop ===== | |||
Pour cela, il vous suffit d'aller sur [https://keyboard-configurator.massdrop.com/ext/ergodox le site adéquat], de charger la configuration par défaut et de faire vos petits arrangement. | |||
[[Image:Massdrop_load.png|||]] | [[Image:Massdrop_load.png|||]] | ||
Pour vous mettre le pied à l' | Pour vous mettre le pied à l'étrier [https://keyboard-configurator.massdrop.com/ext/ergodox/?referer=EL3LHH&hash=f31537e2292d062a10f55fa2e7a07ace voilà un lien] qui vous donnera une disposition de base. | ||
ATTENTION, vous remarquerez que la disposition globale des touches est en QWERTY et non Bépo comme l'on pourrais s'y attendre. La raison est que le clavier n'envoie que des code de touches à votre OS et que c'est le driver qui va faire la traduction vers une disposition ou une autre. Donc n'essayez surtout pas de refaire un Bépo dans cette interface, seulement déplacer les touches qui vous sont proposés. | ATTENTION, vous remarquerez que la disposition globale des touches est en QWERTY et non Bépo comme l'on pourrais s'y attendre. La raison est que le clavier n'envoie que des code de touches à votre OS et que c'est le driver qui va faire la traduction vers une disposition ou une autre. Donc n'essayez surtout pas de refaire un Bépo dans cette interface, seulement déplacer les touches qui vous sont proposés. | ||
Vous avez aussi la possibilité de sauvegarder vos œuvre et de les modifier plus tard. Pour cela il vous suffit d'utiliser les boutons | Vous avez aussi la possibilité de sauvegarder vos œuvre et de les modifier plus tard. Pour cela il vous suffit d'utiliser les boutons « Save » et « Load » de l'outil. | ||
==== | ===== Ergodox-EZ ===== | ||
C'est la face nord pour la personnalisation mais clairement celle qui offre le plus de possibilités! Cependant il n'y a rien de bien compliqué car le travail est tout pré-mâché et il ne vous reste plus qu'a modifier un fichier et lancer quelques lignes de commande. | Malgré son nom on peut utiliser le [http://configure.ergodox-ez.com/ configurateur Ergodox-EZ] avec tous les types d’Ergodox, il fonctionne de manière similaire au configurateur Massdrop sauf que la sauvegarde des configurations pour une modification ultérieure se fait par URL unique. | ||
D'abord on s' | |||
<source lang="bash">sudo apt-get install avr-libc g++ gcc </source> | ==== 2 Compilation ==== | ||
===== Linux ===== | |||
C'est la face nord pour la personnalisation mais clairement celle qui offre le plus de possibilités ! Cependant il n'y a rien de bien compliqué car le travail est tout pré-mâché et il ne vous reste plus qu'a modifier un fichier et lancer quelques lignes de commande. | |||
D'abord on s'installe les outils qui nous seront utile : | |||
<source lang="bash">sudo apt-get install avr-libc g++ gcc teensy-loader-cli</source> | |||
Ou pour Archlinux: | |||
<source lang="bash">sudo pacman -S avr-gcc avr-libc teensy-loader-cli</source> | |||
Ensuite on télécharge les sources : | Ensuite on télécharge les sources : | ||
Plusieurs dépôts existent, mais en 2019, le plus complet et maintenu est celui de [https://github.com/qmk/qmk_firmware qmk], et c'est celui que nous allons utiliser pour la suite du tutorial. | |||
On récupère les sources via : | On récupère les sources via : | ||
<source lang="bash">git clone https://github.com/qmk/qmk_firmware | |||
cd qmk_firmware</source> | |||
<source lang="bash">git clone https://github.com/ | |||
Ensuite il est préférable de se faire sa propre branche pour sa future disposition : | |||
<source lang="bash">git checkout -b ma-dispo</source> | |||
À vous de voir si vous souhaitez modifier une disposition existante ou créer la vôtre (et donc créer un dossier dans "layouts/community/ergodox"). | |||
Trois dispositions bépo s'offrent à nous: "bepo", "bepo_alt", et "bepo_csa". | |||
Ma préférée est "bepo_alt" car elle est conçue pour faciliter la transition depuis un clavier traditionel et dispose de code pour faire fonctionner les LED. Voir le [https://github.com/qmk/qmk_firmware/blob/master/layouts/community/ergodox/bepo_alt/readme.md README] pour plus d'infos. | |||
Le but du jeu étant de modifier vous-même le fichier "keymap.c" qui se trouve dans le dossier "layouts/community/ergodox/bepo_alt" afin de l'adapter à vos besoins. Un [http://forum.bepo.fr/viewtopic.php?id=981&p=10 sujet sur le forum] contient quelques exemples. | |||
======Compilation du firmware ====== | |||
<source lang="bash">make git-submodule | |||
make ergodox_ez:bepo_alt | |||
</source> | |||
Si tout se passe bien, un fichier "ergodox_ez_bepo_alt.hex" a été créé dans le répertoire courant. | |||
====== Chargement du firmware dans le clavier ====== | |||
Munissez-vous d'un trombone déplié afin de pouvoir appuyer sur le bouton de reboot du clavier ! | |||
Nous allons utiliser "teensy-loader" pour charger le code fraîchement compilé. | |||
<source lang="bash">teensy-loader-cli -w -mmcu=atmega32u4 -v ergodox_ez_bepo_alt.hex && sleep 6 && setxkbmap fr bepo</source> | |||
Puis appuyez sur le bouton de reset. | |||
Normalement la nouvelle disposition devrait fonctionner ! | |||
Maintenant à vous de l'adapter, l'améliorer et pourquoi pas faire une pull request sur le repo afin que vos améliorations soient partagées ;) | |||
===== Windows 10 ===== | |||
Le plus compliqué est de préparer Windows une fois fait, il sera très simple de compiler son firmware. | |||
Première étape : il faut installer les outils linux pour Windows. | |||
Il faut donc passer Windows en mode développeur (Paramètres > Mises à jour & sécurité > Pour développeurs > Mode développeur). | |||
Ensuite ouvrez le panneau de configuration, cliquez sur la catégorie Programmes (pas accessible en mode icone) puis sur Activer ou désactiver des fonctionnalités Windows, recherchez dans la liste « Windows Subsystem for Linux (Beta) » validez le, faites OK. | |||
Redémarrez votre ordinateur. | |||
Recherchez Bash.exe, lancez-le et acceptez les conditions, lorsqu’on vous demande de créer un compte marquez seulement « root ». | |||
Deuxième étape : Récupérez la source du firmware. | |||
Il y a plusieurs méthodes mais la plus simple est d’aller sur le git du firmware, [https://github.com/qmk/qmk_firmware QMK par exemple], de le télécharger (bouton vert) et de le dézipper à l’endroit souhaité. | |||
Troisième étape : Installer les outils spécifiques nécessaires pour compiler le pilote. | |||
Ouvrez « Bash on Ubuntu on Windows » installé lors de l’étape 1. | |||
Placez vous dans le dossier où vous avez mis le firmware. | |||
<source lang="bash">cd mnt/c/‹chemin complet›/qmk_firmware</source> | |||
Et lancez la commande suivante | |||
<source lang="bash">util/wsl_install.sh</source> | |||
Tout s’installe tout seul, fermez ensuite la fenêtre de Bash pour prendre en compte ces nouveau outils. (Je vous conseil de fermer la fenêtre en utilisant la commande « exit » et non la croix, comme ça à la prochaine ouverture vous aurez accès aux dernières commandes lancées en utilisant la flèche du haut, pratique pour retourner dans le dossier du firmware sans avoir à tout retaper). | |||
Voilà, vous êtes prêts et n’aurez plus besoin de refaire ces trois étapes. Sauf en cas de mise à jour des sources du firmware dans quel cas il faudra refaire l’étape 2, ou en cas de mise à jour des outils dans quel cas il faudra refaire l’étape 3. | |||
C’est maintenant que vous pouvez créer/modifier votre fichier keymap.c et de le placer dans un nouveau dossier dans « qmk_firmware\keyboards\ergodox\keymaps\votre nouveau dossier » | |||
Pour compiler votre firmware ouvrez « Bash on Unbuntu on Windows » et lancez la commande suivante depuis le dossier racine du firmware | |||
<source lang="bash">make ergodox-<variante si besoin (ez ou infinity)>-<nom de votre dossier perso></source> | |||
Exemples | |||
<source lang="bash">make ergodox-ez-bepo | |||
make ergodox-bepo</source> | |||
Votre .hex a été compilé dans le dossier racine du firmware, il n’y a plus qu’à flasher votre clavier. | |||
===== Astuces ===== | ===== Astuces ===== | ||
Ligne 99 : | Ligne 161 : | ||
</source> | </source> | ||
Si vous voulez plus d'info sur les possibilités voilà quelques fichiers qui vous | Si vous voulez plus d'info sur les possibilités voilà quelques fichiers qui pourront vous aider. | ||
<source> | <source> | ||
README.MD = vous explique ce que vous pouvez faire avec le programme | README.MD = vous explique ce que vous pouvez faire avec le programme | ||
tmk_core/doc/keymap.md = vous explique comment fonctionne le programme | tmk_core/doc/keymap.md = vous explique comment fonctionne le programme | ||
/keycode.txt = liste toutes les touches disponibles avec leur | /keycode.txt = liste toutes les touches disponibles avec leur signification | ||
/common/keycode.h = liste toutes les notations abrégées des touches | /common/keycode.h = liste toutes les notations abrégées des touches | ||
quantum/keymap_extras/keymap_bepo.h = liste toutes les correspondances pour le bépo | quantum/keymap_extras/keymap_bepo.h = liste toutes les correspondances pour le bépo | ||
Ligne 110 : | Ligne 172 : | ||
==== Installation en mémoire ==== | ==== Installation en mémoire ==== | ||
Pour cela rien de plus simple. Il suffit d'aller sur la page du composant et de télécharger son «loader» | Pour cela rien de plus simple. Il suffit d'aller sur la page du composant et de télécharger son «loader» | ||
https://www.pjrc.com/teensy/loader.html | https://www.pjrc.com/teensy/loader.html, de cliquer sur l'image correspondant a votre système d'exploitation et de suivre les indications très claires du site. Seulement en anglais malheureusement mais si vous rencontrez des difficultés vous pouvez venir sur le forum pour trouver de l'aide. | ||
Si vous faites de nombreux essais de configuration, je vous recommande de laisser le programme en arrière plan et de cliquer sur le bouton «auto». Comme ça il vous suffit d'appuyer avec un cure-dent ou similaire, sur le petit bouton pour recharger votre nouvelle configuration après chaque compilation. Pratique et rapide. | Si vous faites de nombreux essais de configuration, je vous recommande de laisser le programme en arrière plan et de cliquer sur le bouton «auto». Comme ça il vous suffit d'appuyer, avec un cure-dent ou similaire, sur le petit bouton pour recharger votre nouvelle configuration après chaque compilation. Pratique et rapide. | ||
Parfois il peut s'avérer nécessaire de débrancher et rebrancher le clavier pour qu'il fonctionne correctement, mais rien de grave en soi. | Parfois il peut s'avérer nécessaire de débrancher et rebrancher le clavier pour qu'il fonctionne correctement, mais rien de grave en soi. | ||
Ligne 174 : | Ligne 235 : | ||
http://www.olivierpons.fr/ergodox/ | http://www.olivierpons.fr/ergodox/ | ||
=== Exemple de fichier keymap.c déjà prêt === | |||
=== Exemple de fichier déjà prêt === | |||
Pour ne pas partir de zéro je vous met ma configuration actuelle : | Pour ne pas partir de zéro je vous met ma configuration actuelle : | ||
<source> | <source> | ||
#include " | #include "ergodox.h" | ||
#include "debug.h" | #include "debug.h" | ||
#include "action_layer.h" | #include "action_layer.h" | ||
Ligne 372 : | Ligne 429 : | ||
}; | }; | ||
</source> | |||
<source> | [[Catégorie:Clavier]] |
Dernière version du 30 mars 2023 à 20:54
Présentation
Site internet du projet : http://ergodox.io
Le projet est inspiré d'un projet déjà existant http://www.key64.org. Vous pouvez retracer l'historique du projet en lisant le fil d'origine sur :
- https://geekhack.org/index.php?topic=22780.0
- http://deskthority.net/workshop-f7/split-ergonomic-keyboard-project-t1753-30.html
Achat
Plusieurs sites vous proposent des kits complet pour vous permettre de monter votre clavier. Sachez qu'il faut compter un budget minimum de 200 € pour faire l'acquisition d'un modèle neuf. Un fil sur le forum vous détaille tout cela. Sachez également qu'il est en général difficile de se procurer des pièces pour claviers mécaniques depuis la France.
Massdrop
Le plus connu et le plus ancien revendeur de kit. Selon le principe du site on ne peut commander que quand un nombre suffisant de personnes en fait la demande (200) et le prix diminue suivant le nombre d'acheteurs après une certaine période. Pour la page des commandes c'est là, ils proposent pas mal d'options de personnalisation (switches, repose poignet, …). Ils proposent également pas mal d’accessoires autour du produit. Il ne faut pas hésiter a fouiller un peu le site pour trouver son bonheur, par exemple :
- https://www.massdrop.com/buy/grifiti-ergodox-wrist-rest
- https://www.massdrop.com/buy/ergodox-hard-case
Pour la personnalisation de la disposition ils proposent aussi un configurateur en ligne qui permet de faire ses première armes.
A savoir qu'ils proposent maintenant une version évoluée, infinity. Chaque partie est autonome, inclut un écran LCD, une conception simplifiée, bien moins de composants a souder, connexion des 2 partie via USB, …
Falbatech
Site plus classique de commande, basé en Pologne. Des bépoïstes ont déjà expérimenté cette boutique et ils en sont content.
A noter que Falbatech propose aussi des services de montage partiel ou complet ce qui peut être rassurant pour les moins bricoleurs. Ils proposent aussi pas mal d'accessoires en tout genre et les prix sont raisonnables.
ErgoDox EZ
Site spécialisé sur l’ergodox. Les claviers sont vendus pré-montés. Et ils ont leur propre configurateur, un peu plus beau que celui de Massdrop. Il semble que le layout par défaut soit différent de celui de Massdrop.
Personnalisation
Cabochons
Si vous n'avez pas pris les cabochons lors de votre achat ou que vous souhaitez en changer vous pouvez vous tourner vers des sites tel que :
- http://pimpmykeyboard.com/blank-key-packs/
- http://www.wasdkeyboards.com/index.php/products/keycap-set.html
Sinon il y a une page plus complète de revendeur ici : https://www.reddit.com/r/MechanicalKeyboards/wiki/keycapsellers
Disposition
Pour cela vous avez le choix entre utiliser les configurateurs web que massdrop ou Erogodox-EZ mettent a disposition] (même si vous n'avez pas acheté chez eux), soit passer par la compilation maison pour profiter des avantages des derniers firmwares ou des alternatifs. Ils apportent des fonctionnalités supplémentaires comme les touches de média, copier/couper/coller, etc. La procédure n'est pas des plus compliquées.
Il existe sur le forum un fil regroupant toutes les propositions d'adaptation du Bépo sur ce clavier. Vous pouvez librement reprendre le travail fait par les contributeurs pour vous faire une base rapidement et la personnaliser à votre convenance.
Reprogramation
Nous allons voir les différentes manières de configurer la disposition de votre ErgoDox.
1 Configurateurs
C'est l'interface la plus conviviale pour se faire une première disposition personnalisé sans trop mettre les main dans les lignes de code.
Massdrop
Pour cela, il vous suffit d'aller sur le site adéquat, de charger la configuration par défaut et de faire vos petits arrangement.
Pour vous mettre le pied à l'étrier voilà un lien qui vous donnera une disposition de base. ATTENTION, vous remarquerez que la disposition globale des touches est en QWERTY et non Bépo comme l'on pourrais s'y attendre. La raison est que le clavier n'envoie que des code de touches à votre OS et que c'est le driver qui va faire la traduction vers une disposition ou une autre. Donc n'essayez surtout pas de refaire un Bépo dans cette interface, seulement déplacer les touches qui vous sont proposés.
Vous avez aussi la possibilité de sauvegarder vos œuvre et de les modifier plus tard. Pour cela il vous suffit d'utiliser les boutons « Save » et « Load » de l'outil.
Ergodox-EZ
Malgré son nom on peut utiliser le configurateur Ergodox-EZ avec tous les types d’Ergodox, il fonctionne de manière similaire au configurateur Massdrop sauf que la sauvegarde des configurations pour une modification ultérieure se fait par URL unique.
2 Compilation
Linux
C'est la face nord pour la personnalisation mais clairement celle qui offre le plus de possibilités ! Cependant il n'y a rien de bien compliqué car le travail est tout pré-mâché et il ne vous reste plus qu'a modifier un fichier et lancer quelques lignes de commande.
D'abord on s'installe les outils qui nous seront utile :
sudo apt-get install avr-libc g++ gcc teensy-loader-cli
Ou pour Archlinux:
sudo pacman -S avr-gcc avr-libc teensy-loader-cli
Ensuite on télécharge les sources :
Plusieurs dépôts existent, mais en 2019, le plus complet et maintenu est celui de qmk, et c'est celui que nous allons utiliser pour la suite du tutorial.
On récupère les sources via :
git clone https://github.com/qmk/qmk_firmware
cd qmk_firmware
Ensuite il est préférable de se faire sa propre branche pour sa future disposition :
git checkout -b ma-dispo
À vous de voir si vous souhaitez modifier une disposition existante ou créer la vôtre (et donc créer un dossier dans "layouts/community/ergodox").
Trois dispositions bépo s'offrent à nous: "bepo", "bepo_alt", et "bepo_csa".
Ma préférée est "bepo_alt" car elle est conçue pour faciliter la transition depuis un clavier traditionel et dispose de code pour faire fonctionner les LED. Voir le README pour plus d'infos.
Le but du jeu étant de modifier vous-même le fichier "keymap.c" qui se trouve dans le dossier "layouts/community/ergodox/bepo_alt" afin de l'adapter à vos besoins. Un sujet sur le forum contient quelques exemples.
Compilation du firmware
make git-submodule
make ergodox_ez:bepo_alt
Si tout se passe bien, un fichier "ergodox_ez_bepo_alt.hex" a été créé dans le répertoire courant.
Chargement du firmware dans le clavier
Munissez-vous d'un trombone déplié afin de pouvoir appuyer sur le bouton de reboot du clavier !
Nous allons utiliser "teensy-loader" pour charger le code fraîchement compilé.
teensy-loader-cli -w -mmcu=atmega32u4 -v ergodox_ez_bepo_alt.hex && sleep 6 && setxkbmap fr bepo
Puis appuyez sur le bouton de reset.
Normalement la nouvelle disposition devrait fonctionner !
Maintenant à vous de l'adapter, l'améliorer et pourquoi pas faire une pull request sur le repo afin que vos améliorations soient partagées ;)
Windows 10
Le plus compliqué est de préparer Windows une fois fait, il sera très simple de compiler son firmware.
Première étape : il faut installer les outils linux pour Windows. Il faut donc passer Windows en mode développeur (Paramètres > Mises à jour & sécurité > Pour développeurs > Mode développeur). Ensuite ouvrez le panneau de configuration, cliquez sur la catégorie Programmes (pas accessible en mode icone) puis sur Activer ou désactiver des fonctionnalités Windows, recherchez dans la liste « Windows Subsystem for Linux (Beta) » validez le, faites OK. Redémarrez votre ordinateur. Recherchez Bash.exe, lancez-le et acceptez les conditions, lorsqu’on vous demande de créer un compte marquez seulement « root ».
Deuxième étape : Récupérez la source du firmware. Il y a plusieurs méthodes mais la plus simple est d’aller sur le git du firmware, QMK par exemple, de le télécharger (bouton vert) et de le dézipper à l’endroit souhaité.
Troisième étape : Installer les outils spécifiques nécessaires pour compiler le pilote. Ouvrez « Bash on Ubuntu on Windows » installé lors de l’étape 1. Placez vous dans le dossier où vous avez mis le firmware.
cd mnt/c/‹chemin complet›/qmk_firmware
Et lancez la commande suivante
util/wsl_install.sh
Tout s’installe tout seul, fermez ensuite la fenêtre de Bash pour prendre en compte ces nouveau outils. (Je vous conseil de fermer la fenêtre en utilisant la commande « exit » et non la croix, comme ça à la prochaine ouverture vous aurez accès aux dernières commandes lancées en utilisant la flèche du haut, pratique pour retourner dans le dossier du firmware sans avoir à tout retaper).
Voilà, vous êtes prêts et n’aurez plus besoin de refaire ces trois étapes. Sauf en cas de mise à jour des sources du firmware dans quel cas il faudra refaire l’étape 2, ou en cas de mise à jour des outils dans quel cas il faudra refaire l’étape 3.
C’est maintenant que vous pouvez créer/modifier votre fichier keymap.c et de le placer dans un nouveau dossier dans « qmk_firmware\keyboards\ergodox\keymaps\votre nouveau dossier »
Pour compiler votre firmware ouvrez « Bash on Unbuntu on Windows » et lancez la commande suivante depuis le dossier racine du firmware
make ergodox-<variante si besoin (ez ou infinity)>-<nom de votre dossier perso>
Exemples
make ergodox-ez-bepo
make ergodox-bepo
Votre .hex a été compilé dans le dossier racine du firmware, il n’y a plus qu’à flasher votre clavier.
Astuces
Dans le fichier «config.h» vous pouvez configurer les données de description USB du clavier. Personnellement j'ai remis les identifiants d'origine de mon ergodox, ce qui donne :
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x1307
#define DEVICE_VER 0x0001
#define MANUFACTURER ErgoDox
#define PRODUCT ErgoDox ergonomic keyboard
#define DESCRIPTION t.m.k. keyboard firmware for Ergodox
Si vous voulez plus d'info sur les possibilités voilà quelques fichiers qui pourront vous aider.
README.MD = vous explique ce que vous pouvez faire avec le programme
tmk_core/doc/keymap.md = vous explique comment fonctionne le programme
/keycode.txt = liste toutes les touches disponibles avec leur signification
/common/keycode.h = liste toutes les notations abrégées des touches
quantum/keymap_extras/keymap_bepo.h = liste toutes les correspondances pour le bépo
Installation en mémoire
Pour cela rien de plus simple. Il suffit d'aller sur la page du composant et de télécharger son «loader» https://www.pjrc.com/teensy/loader.html, de cliquer sur l'image correspondant a votre système d'exploitation et de suivre les indications très claires du site. Seulement en anglais malheureusement mais si vous rencontrez des difficultés vous pouvez venir sur le forum pour trouver de l'aide.
Si vous faites de nombreux essais de configuration, je vous recommande de laisser le programme en arrière plan et de cliquer sur le bouton «auto». Comme ça il vous suffit d'appuyer, avec un cure-dent ou similaire, sur le petit bouton pour recharger votre nouvelle configuration après chaque compilation. Pratique et rapide.
Parfois il peut s'avérer nécessaire de débrancher et rebrancher le clavier pour qu'il fonctionne correctement, mais rien de grave en soi.
Représentation schématique
Vous pouvez utiliser ces schémas pour présenter votre propre adaptation du Bépo a ce clavier.
Carte complète
╔══════╗────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────╔══════╗ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ ║ ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ ║ ╠══════╣────┼────┼────┼────┼────╔════╗ ╔════╗────┼────┼────┼────┼────╠══════╣ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ╠══════╣────┼────┼────┼────┼────╢ ║ ║ ╟────┼────┼────┼────┼────╠══════╣ ║ ║ │ │ │ │ ╠════╣ ╠════╣ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ╠══════╣────┼────┼────┼────┼────╢ ║ ║ ╟────┼────┼────┼────┼────╠══════╣ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ║ ║ │ │ │ │ ║ ║ ╚══════╝────┴────┼────┼────┼────╚════╝ ╚════╝────┼────┼────┼────┼────╚══════╝ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┘ ┌────┬────┐ ┌────┬────┐ │ │ │ │ │ │ │ │ │ │ │ │ ┌────┼────┼────┤ ├────┼────┼────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├────┤ ├────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └────┴────┴────┘ └────┴────┴────┘
Carte simplifiée
┌─────┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┬─────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┼─────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┤ │ │ ├───┼───┼───┼───┼───┼─────┤ │ │ │ │ │ │ ├───┤ ├───┤ │ │ │ │ │ │ ├─────┼───┼───┼───┼───┼───┤ │ │ ├───┼───┼───┼───┼───┼─────┤ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─┬───┼───┼───┼───┼───┼───┴───┘ └───┴───┼───┼───┼───┼───┼───┬─┘ │ │ │ │ │ │ │ │ │ │ │ │ └───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┘ ┌───┬───┐ ┌───┬───┐ │ │ │ │ │ │ ┌───┼───┼───┤ ├───┼───┼───┐ │ │ │ │ │ │ │ │ │ │ ├───┤ ├───┤ │ │ │ │ │ │ │ │ │ │ └───┴───┴───┘ └───┴───┴───┘
Autre
Un retour d'expérience d'un utilisateur (non converti au Bépo) http://www.olivierpons.fr/ergodox/
Exemple de fichier keymap.c déjà prêt
Pour ne pas partir de zéro je vous met ma configuration actuelle :
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "keymap_bepo.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MOUSE 2 // media keys
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Esc | " | « | » | ( | ) | $ | | % | @ | + | - | / | * | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Ç | B | É | P | O | È | Tab | | Tab | ^ | V | D | L | J | Z |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | W | A | U | I | E | , |------| |------| C | T | S | R | N | M |
* |--------+------+------+------+------+------| Del | | BkSp |------+------+------+------+------+--------|
* | Ctrl | À | Y | X | . | K | | | | ' | Q | G | H | F | Ctrl |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LGui | Home | Pgup |Pgdown| End | | Left | Down | Up |Right | RGui |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* |Ctrl+C|Ctrl+V| | L1 | L2 |
* ,------|------|------| |------+--------+------.
* | | | ~L1 | | App | | |
* | Space|Shift |------| |------| Shift |Enter |
* | | |Alt/Enter| | AltGr| | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, BP_DOUBLE_QUOTE, BP_LEFT_GUILLEMET, BP_RIGHT_GUILLEMET, BP_LEFT_PAREN, BP_RIGHT_PAREN, BP_DOLLAR,
BP_C_CEDILLA, BP_B, BP_E_ACUTE, BP_P, BP_O, BP_E_GRAVE, KC_TAB,
BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMMA,
KC_LCTL, BP_A_GRAVE, BP_Y, BP_X, BP_DOT, BP_K, KC_DELT,
KC_LGUI, KC_HOME, KC_PGUP, KC_PGDN, KC_END,
LCTL(BP_C), LCTL(BP_V),
MO(SYMB),
KC_SPC, KC_LSFT, ALT_T(KC_ENT),
// right hand
BP_PERCENT, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTERISK, BP_EQUAL,
KC_TAB, BP_DEAD_CIRCUMFLEX, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_BSPC, BP_APOSTROPHE, BP_Q, BP_G, BP_H, BP_F, KC_RCTL,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LGUI,
TG(SYMB), TG(MOUSE),
KC_APP,
KC_RALT,KC_RSFT, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | F6 | |P.Scr|NumLock| + | - | / | * | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | VolUp | F7 | F8 | F9 | F10 | F11 | F12 | | | ^ | 7 | 8 | 9 | + |ScrLock |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Mute | Prev | Play | Stop | Next | Calc |------| |------| ˇ | 4 | 5 | 6 | + | Pause |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | VolDn | Undo | Cut | Copy | Paste| Redo | | | | Ins | 1 | 2 | 3 |Enter | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | , | . |Enter | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_MUTE, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_CALC,
KC_VOLD, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_CALC, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS, KC_TRNS,
// right hand
KC_PSCR, KC_LNUM, KC_KP_PLUS,KC_KP_MINUS,KC_KP_SLASH,KC_KP_ASTERISK,KC_KP_EQUAL,
KC_TRNS, BP_DEAD_CIRCUMFLEX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_SLCK,
RALT(BP_V), KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_PAUS,
KC_TRNS, KC_INS, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS,
KC_KP_0, KC_KP_COMMA,KC_KP_DOT, KC_KP_ENTER, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | WhUp | Lclk | MsUp | Rclk | Acc0 | | | | Acc0 | WhLft| WhUp | WhRgh| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | WhDwn|MsLeft|MsDown|MsRght| Acc1 |------| |------| Acc1 | Lclk | Cclk | Rclk | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | Btn4 | Cclk | Btn5 | Acc2 | | | | Acc2 | Btn4 | WhDwn| Btn5 | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MOUSE
[MOUSE] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_MS_WH_UP, KC_BTN1, KC_MS_U, KC_BTN2, KC_ACL0, KC_TRNS,
KC_TRNS, KC_MS_WH_DOWN, KC_MS_L, KC_MS_D, KC_MS_R, KC_ACL1,
KC_TRNS, KC_TRNS, KC_BTN4, KC_BTN3, KC_BTN5, KC_ACL2, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_ACL0, KC_MS_WH_UP, KC_MS_WH_UP, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS,
KC_ACL1, KC_BTN1, KC_BTN3, KC_BTN2, KC_TRNS, KC_TRNS,
KC_TRNS, KC_ACL2, KC_BTN4, KC_MS_WH_DOWN, KC_BTN5, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
case 3:
ergodox_right_led_1_on();
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};