ConfigGenerator

De Disposition de clavier francophone et ergonomique bépo

configGenerator est un ensemble de scripts, écrits en python et perl, qui permet de générer les pilotes de la disposition bépo pour les systèmes d'exploitation Microsoft Windows (versions fixe et portable), Mac OS X, GNU/Linux, Solaris, FreeBSD et OpenBSD.

Il génère aussi les fichiers de configuration pour les logiciels d’apprentissage Ktouch, Klavaro et TypeFaster, ainsi que les cartes des caractères au format texte et SVG.

Les fichiers sont disponibles sur le dépôt subversion à l'adresse suivante.

Créer une disposition

Pour générer une disposition dont le nom est, par exemple, « BÉPO », il faut au préalable écrire trois fichiers de configuration :

  • layout-BÉPO.conf : définition de la disposition en elle-même[1] ;
  • deads-BÉPO.conf : définition des touches mortes ;
  • virtualKeys-BÉPO.conf : définition des « touches virtuelles » (pour les raccourcis sous Windows).

Enfin, dans genAll.sh, il faut indiquer à la deuxième ligne le nom de la disposition : VERSION=BÉPO

  1. Le premier chiffre avant le ! définit le comportement des touches lorsque caps-lock est activé. 0: pas d’effet. 1: actif. 2: actif aussi avec altGr.

Générer les fichiers de configuration

Sous Unix

Le script genAll.sh génère tous les fichiers de configuration et les place dans le répertoire ./results/.

  • Pour effacer le contenu du répertoire ./results/ : ./clean.sh
  • Pour générer tous les fichiers : ./genAll.sh

Sous Windows

Plusieurs outils de développements doivent être installés avant de pouvoir utiliser ConfigGenerator. Pour utiliser le générateur de dispositions sous Windows, il faut installer Cygwin avec les paquets make, perl, libiconv2.

Il faut ensuite [configurer cpan (comment ? — en ouvrant une Console avec des droits administrateur, en tapant la commande « cpan » pour rentrer dans le shell, puis en répondant sans réfléchir à toutes les questions en tapant « Return », pour entrer chaque fois la réponse par défaut… on peut éventuellement poursuivre avec un « install CPAN » puis un « reload cpan » pour se mettre à jour) et] installer les modules Perl manquant :

$ perl -MCPAN -e 'install [http://search.cpan.org/~jenda/Config-IniHash/IniHash.pm Config::IniHash]'
$ perl -MCPAN -e 'install [http://search.cpan.org/~markov/Hash-Case-1.006/lib/Hash/Case/Lower.pod Hash::Case::Lower]'

(Si ça ne fonctionne pas, compilez-les.)

Quand cpan demande un répertoire pour déposer ses fichiers, bien faire attention de lui en spécifier un sans espaces !

Pour générer les images de Portable Keyboard Layout, il faut avoir le navigateur Firefox installé ainsi que le module Pearl Crescent Page Saver, ou éventuellement Screengrab!, qui permettent de faire une image depuis une page web. Utilisez ./genpklwin.sh une fois ce module installé. Ajoutez le répertoire d'installation en variable d'environnement « path è » de manière à avoir l’executable firefox en ligne de commande (par exemple set path=%path%;C:/Program Files/Mozilla Firefox si votre navigateur est installé à cet endroit). Il faut également convert en ligne de commande, disponible avec ImageMagick.

Les fichiers *.klc créés par le script genAll.sh dans ./results sont tagés en fonctions des racccourcis claviers A azerty, B bépo, C qwertz.

Pour plus de détails : Comment créer ses pilotes sous Windows.

Sous Mac OS X

Sous Mac OS X, ça se passe comme sur n’importe quel autre Unix… Pour mémoire cependant, petit tutoriel — du même coup facilement transposable sur un autre unix (réalisé le 12 août 2010 sur OS X 10.6 Snow Leopard) :

installation de ConfigGenerator

  • installations préalables :
    • d’abord il vous faut un Perl qui marche, et ce qui tombe bien c’est que vous en avez déjà un pré-installé avec votre OS. Idem pour Python : tout est est déjà là. (Ceci depuis au moins OS X 10.4 Tiger — avant : à vérifier, mais je crois que oui.)
    • installer les modules Perl nécessaires (et leur dépendances) : Config::IniHash et Hash::Case::Lower. Pour faire ça, comme vous n’avez pas tellement envie de taper vingt-cing fois la commande « make » (en effet, le K du bépo n’est pas le mieux placé…), vous allez utiliser cpan ou cpanm, selon que vous voulez vous simplifier la vie un peu ou beaucoup :
      • la méthode tradi, avec cpan : euh… ben non en fait, là en le faisant ça devrait mais ça marche pas trop, on passe à l’autre méthode, de toute façon elle est beaucoup mieux…
      • la méthode ultra-tendance, avec cpanm : cpanminus (ou cpanm) est l’installeur dernier-cri de modules Perl, fait pour simplifier la vie aux grands et aux petits. Vous devez d’abord installer cpanm, ce qu’il est capable de faire lui-même, vous avez juste à taper dans une fenêtre de Terminal :
        curl -L http://cpanmin.us | perl - --sudo App::cpanminus
        Il mouline, vous dit « OK » à chaque ligne (mais il y a dix fois moins de lignes qu’avec un cpan classique), et puis enfin « Successfully installed App-cpanminus-1.0010 ». Vous installez ensuite le module Config::IniHash en tapant la commande :
        sudo cpanm http://search.cpan.org/CPAN/authors/id/J/JE/JENDA/Config-IniHash-3.01.01.tar.gz
        (Note : au moment où j’ai essayé, la commande toute bête « cpanm Config::IniHash » ne marchait pas — et pas non plus avec un « cpan -i Config::IniHash » classique — mais ça vaut le coup d’essayer à l’avenir, des fois que le module soit de nouveau trouvable sans problème dans la base de données CPAN…) Vous pouvez ensuite taper :
        sudo cpanm Hash::Case::Lower
        pour vérifier qu’il vous répond comme à moi : « Hash::Case::Lower is up to date. (1.01) » (et sinon, il vous l’installera). Remarque : si vous n’avez pas de droits administrateurs sur votre machine, vous pouvez très bien retirer les deux « sudo » en début de ligne ci-dessus, et ça marchera quand même (mais bien sûr l’install ne se fera que pour votre compte utilisateur).
  • fin de l’installation = récupération du ConfigGenerator lui-même : vous cliquez sur le lien là-haut (ou bien le même ici) pour récupérer le paquet compressé .tar.gz, et vous n’avez plus qu’à double-cliquer pour le décompresser. Vous avez maintenant un dossier nommé configGenerator.rXXX (XXX est le numéro de révision, en l’occurrence 740 au moment où j’écris), que vous pouvez mettre à l’endroit que vous voulez, mettons par exemple dans votre dossier Documents (le chemin vers ce répertoire serait donc ~/Documents/configGenerator.rXXX/ (ou encore /Users/votre_nom/Documents/configGenerator.rXXX/), mais plus généralement il sera noté désormais /*chemin-vers*/configGenerator.rXXX/, où vous remplacerez *chemin-vers* par ce qu’il faut…). Tout est maintenant prêt pour que le générateur fonctionne !

[Après avoir passé du temps à vous écrire ce tutoriel, j’ai encore pris celui de le tester (en réinstallant tout sur une nouvelle partition), avec une connexion internet moyenne et un Mac plus tout jeune (ça peut donc aller plus vite, à vos chronos) — résultat : 4′53″ exactement pour l’ensemble du processus décrit ci-dessus ;-)…]

Utilisation des scripts

Tout d’abord, munissez-vous d’un bon éditeur de texte : si vous n’avez pas déjà vos habitudes en la matière, Vim ou Emacs ne sont pas forcément les plus faciles à prendre en main, vous allez peut-être préférer une interface un peu plus « Mac-style »… Vous pouvez alors opter :

  • pour TextMate ou BBEdit, si vous avez envie d’outils vraiment professionnels (mais, du coup, payants) ;
  • mais pour commencer vous pouvez très bien vous contenter de Fraise ou de TextWrangler.

(Liste non exhaustive évidemment… Si vous n’en savez vraiment rien, tirez à pile ou face, et choisissez Fraise !)

Vous voici maintenant équipé, pour commencer à travailler il ne reste plus qu’à savoir sur quels fichiers travailler :

  • Supposons que vous vouliez faire des modifications en vous basant sur la dernière version, celle-ci correspond (à la date du 13 août 2010) à l’étiquette « 1.0rc3 ». Repérez alors, dans votre dossier configGenerator.rXXX, les trois fichiers de configuration correspondants : layout-1.0rc3.conf, virtualKeys-1.0rc3.conf et deads-1.0rc3.conf.
  • Choisissez le nom de version que vous allez donner à votre disposition, mettons par exemple « mon_bepo_a_moi » : dupliquez les trois fichiers de configuration et renommez-en respectivement les copies layout-mon_bepo_a_moi.conf, virtualKeys-mon_bepo_a_moi.conf et deads-mon_bepo_a_moi.conf. Trois remarques :
    • ne déplacez par les fichiers, tout doit impérativement rester dans le même dossier ;
    • gardez bien sûr les originaux, plutôt que de les modifier ;
    • même si vous ne voulez rien changer, comme c’est d’ailleurs probable, au fichier deads-1.0rc3.conf par exemple, vous devez néanmoins le dupliquer pour lui donner le nom correspondant à vos autres fichiers de configuration.
  • De la même façon, plutôt que de modifier directement le fichier de script genAll.sh, je vous recommande de le dupliquer pour le renommer, par exemple mon_genAll_a_moi.sh.


Ouvrez votre fichier mon_genAll_a_moi.sh avec votre éditeur de texte, et afin que le script travaille bien à partir de vos fichiers, modifiez la deuxième ligne pour remplacer :

VERSION=1.0rc3

par :

VERSION=mon_bepo_a_moi

(Tip : créez, avec des noms explicites, autant de copies de genAll.sh que vous voulez faire de dispositions différentes (si vous êtes créatifs…) — ce sera plus facile de simplement invoquer l’un ou l’autre de ces scripts, plutôt qu’à chaque fois ré-ouvrir le même fichier pour modifier le nom de version !)

Ouvrez maintenant, dans votre éditeur de texte, les fichiers de configuration que vous voulez modifier, mettons a priori surtout layout-mon_bepo_a_moi.conf. La syntaxe de ce fichier n’est pas bien compliquée à comprendre, chaque ligne correspond à une touche du clavier, vous y indiquez donc ce que vous voulez qu’elle produise dans les quatre cas suivants : aucun modifieur, avec Majuscule enfoncée, avec AltGr (= Alt tout court, sur Mac) enfoncé, avec Majuscule et AltGr enfoncés.

Deux remarques :

  • en tout début de ligne, vous avez un chiffre — 0, 1 ou 2 — pour spécifier le comportement avec CapsLock activé : 0: pas d’effet. 1: actif. 2: actif aussi avec altGr ;
  • les différentes entrées d’une même ligne doivent impérativement être séparées par des espaces, pas par des tabulations.

Ça y est ?… Vous avez modifié ce que vous vouliez ?… Alors il ne reste plus qu’à compiler pour vérifier que tout est ok ! Pour cela, ouvrez une fenêtre de Terminal, et naviguez vers votre dossier configGenerator.rXXX (= votre répertoire de travail) en tapant (remplacez avec le chemin correct et le nom exact !) :

cd /*chemin-vers*/configGenerator.rXXX/

(Pour les flemmards, et pour éviter les fautes de frappes si le chemin est compliqué : vous pouvez aussi taper uniquement « cd » suivi d’une espace, puis faire un glisser-déposer de votre dossier dans la fenêtre de Terminal…)

Il ne vous reste plus qu’à lancer le script, en tapant la commande :

./mon_genAll_a_moi.sh

Si vous avez tout bien fait comme il faut, vous vous retrouvez avec un nombre impressionnant de fichiers dans le sous-répertoire « results » de votre répertoire de travail. Parmi ceux-là, vous intéressent surtout :

  • les images .svg bepo-mon_bepo_a_moi.svg et bepo-mon_bepo_a_moi-simplifiee.svg (que vous pouvez ouvrir dans n’importe quel navigateur ouèbe, mais pas dans Aperçu) ;
  • le fichier layout-mon_bepo_a_moi.keylayout, qui est celui que vous allez installer.

Avant d’installer votre disposition à l’endroit habituel (cf. la page d’install), une dernière petite manip : vous allez renommer la disposition, afin qu’elle apparaisse sous un nom explicite dans votre menu Saisie et dans votre panneau de Préférences Systèmes (« Langue & Texte -> Méthodes de Saise » pour Snow Leopard — pour Tiger et Leopard : « International -> Menu Saisie »). Pour cela, ouvrez le fichier layout-mon_bepo_a_moi.keylayout avec votre éditeur de texte, et modifiez la 6e ligne pour remplacer :

<keyboard group="126" id="-6538" name="bépo" maxout="5">

par :

<keyboard group="126" id="-6538" name="mon_bepo_a_moi" maxout="5">

(Vous pouvez également changer le « -6538 » si ça vous amuse, et surtout opter pour un nom plus joli, comme "Mon Bépo à moi-moi-moi…".) Je vous recommande également de modifier la ligne de commentaire juste au-dessus (la 5e, donc), en remplaçant :

<!-- version 1.0 -->

par quelque chose comme :

<!-- version 1.0 modifiée par Mouh Amème, le 13 août 2010 à 12h15 -->

(ça vous aidera à vous y retrouver si vous refaites d’autres modifs dans quelques mois, et ça sera plus pratique pour les copains à qui vous enverrez, tout fier, vos améliorations…)

Il ne vous reste plus qu’à copier la disposition au bon endroit pour l’installer, ce que vous faites soit à la main, soit en tapant la commande (je suppose que vous êtes toujours dans le même répertoire) :

cp ./results/layout-mon_bepo_a_moi.keylayout ~/Library/Keyboard\ Layouts/

ou encore :

cp ./results/layout-mon_bepo_a_moi.keylayout /Library/Keyboard\ Layouts/

suivant que vous vouliez installer pour votre compte utilisateur seulement, ou pour tous les comptes (cf. la page d’install pour plus de détails). Maintenant, vous redémarrez… et ça y est, vous n’avez plus qu’à sélectionner la disposition « mon_bepo_a_moi » dans votre panneau de Préférences Système, puis à la choisir dans le menu Saisie. Enjoy!