« ConfigGenerator » : différence entre les versions

De Disposition de clavier bépo
(màj adresse du dépôt)
 
(26 versions intermédiaires par 7 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
[[configGenerator]], écrit en python et perl, permet de générer les pilotes de la disposition bépo pour Microsoft Windows (versions fixe et portable), Mac OS X, Linux, Solaris, FreeBSD et OpenBSD.
{{AncienneVersion}}


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 produites au format texte et [[wp:svg|SVG]].
'''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.


Les fichiers sont disponibles sur le dépôt [[subversion]] à l'adresse {{svn2|pilotes/trunk/configGenerator/|suivante}}.
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 [[wp:svg|SVG]].


==Créer une disposition==
Les fichiers sont disponibles sur le dépôt [[git]] à l'adresse [https://gitlab.com/bepo/config_generator suivante].
Pour générer une disposition dont le nom est BÉPO, il faut écrire trois fichiers de configuration :
*layout-BÉPO.conf : définition de la disposition en elle-même<ref>Le premier chiffre avant le {{c|!}} définit le comportement des touches lorsque caps-lock est activé. {{c|0}}: pas d’effet. {{c|1}}: actif. {{c|2}}: actif aussi avec altGr.</ref> ;
*deads-BÉPO.conf : définition des [[touches mortes]] ;
*virtualKeys-BÉPO.conf : définition des [[Pilote Windows#Virtual key codes|« touches virtuelles »]] (pour les raccourcis sous Windows).
Enfin dans {{c|genAll.sh}}, indiquez à la deuxième ligne le nom de la disposition : {{c|VERSION<nowiki>=</nowiki>BÉPO}}


==Générer les fichiers de configuration==
== Créer une disposition ==
Le script '''genAll.sh''' va créer tous les fichiers de configuration dans le répertoire {{c|/results/}}.
*Pour effacer le contenu du répertoire {{c|/results/}} : ./clean.sh
*Pour générer tous les fichiers : ./genAll.sh


===Sous Windows===
Pour générer une disposition dont le nom est, par exemple, « BÉPO », il faut au préalable écrire trois fichiers de configuration :
'''Étape 1.''' Créer les fichiers de configuration
* {{c|layout-BÉPO.conf}} : définition de la disposition en elle-même<ref>Le premier chiffre avant le {{c|!}} définit le comportement des touches lorsque caps-lock est activé. {{c|0}}: pas d’effet. {{c|1}}: actif. {{c|2}}: actif aussi avec altGr.</ref> ;
Pour utiliser le générateur de dispositions sous Windows il faut installer [http://www.cygwin.com/ Cygwin] avec les paquets make, perl, libiconv2.
* {{c|deads-BÉPO.conf}} : définition des [[touches mortes]] ;
* {{c|virtualKeys-BÉPO.conf}} : définition des [[Pilote Windows#Virtual key codes|« touches virtuelles »]] (pour les raccourcis sous Windows).
Enfin, dans {{c|genAll.sh}}, il faut indiquer à la deuxième ligne le nom de la disposition : {{c|VERSION<nowiki>=</nowiki>BÉPO}}


Il faut [configurer CPAN (comment ?) et] installer les modules Perl manquant :
{{références}}
$ 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 lui en donner un '''sans''' espace ! (??)
== Générer les fichiers de configuration ==


Pour générer les images de [[Windows_portable|Portable Keyboard Layout]] il faut avoir firefox installé ainsi que le module [http://pearlcrescent.com/products/pagesaver/ Pearl Crescent Page Saver] ou éventuellement [http://www.screengrab.org/ Screengrab!] qui permettent de faire une image depuis une page web. Utilisez {{c|./genpklwin.sh}} une fois ce module installé. Ajoutez le répertoire d'installation en variable d'environnement « path è » de manière à avoir l’executable {{c|firefox}} en ligne de commande (par exemple {{c|<nowiki>set path=%path%;C:/Program Files/Mozilla Firefox</nowiki>}} si votre navigateur est installé à cet endroit). Il faut également {{c|convert}} en ligne de commande disponible avec [http://www.imagemagick.org/script/binary-releases.php#windows ImageMagick].
=== Sous Unix ===


Le script '''genAll.sh''' génère tous les fichiers de configuration et les place dans le répertoire {{c|./results/}}.
* Pour effacer le contenu du répertoire {{c|./results/}} : {{c|./clean.sh}}
* Pour générer tous les fichiers : {{c|./genAll.sh}}


Récupérer les fichiers créés par le script dans ./results
=== Sous Windows ===
* fr-dvorak-bepo-****-kbd.klc
* fr-dvorak-bepo-****.klc


Note:
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 [http://www.cygwin.com/ Cygwin] avec les paquets {{c|make}}, {{c|perl}}, {{c|libiconv2}}.
* dans les fichiers tagués B, les raccourcis clavier sont conformes au bépo.
* dans les fichiers tagués A, les raccourcis clavier sont conformes à l’azerty.
* dans les fichiers tagués C, les raccourcis clavier sont conformes au qwerty.


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 :
<source lang="bash">
$ 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]'
</source>
(Si ça ne fonctionne pas, compilez-les.)


'''Étape 2.''' Création des pilotes sous Windows
Quand ''cpan'' demande un répertoire pour déposer ses fichiers, bien faire attention de lui en spécifier un '''sans''' espaces !


Télécharger [http://www.microsoft.com/downloads/details.aspx?familyid=8BE579AA-780D-4253-9E0A-E17E51DB2223&displaylang=en Microsoft Keyboard Layout Creator 1.4]
Pour générer les images de [[Windows portable|Portable Keyboard Layout]], il faut avoir le navigateur [http://www.firefox.com Firefox] installé ainsi que le module [http://pearlcrescent.com/products/pagesaver/ Pearl Crescent Page Saver], ou éventuellement [http://www.screengrab.org/ Screengrab!], qui permettent de faire une image depuis une page web. Utilisez {{c|./genpklwin.sh}} une fois ce module installé. Ajoutez le répertoire d'installation en variable d'environnement « path è » de manière à avoir l’executable {{c|firefox}} en ligne de commande (par exemple {{c|<nowiki>set path=%path%;C:/Program Files/Mozilla Firefox</nowiki>}} si votre navigateur est installé à cet endroit). Il faut également {{c|convert}} en ligne de commande, disponible avec [http://www.imagemagick.org/script/binary-releases.php#windows ImageMagick].


Télécharger le script suivant: [http://svnweb.tuxfamily.org/dl.php?repname=dvorak%2Fsvn&path=%2Fpilotes%2Ftrunk%2Fwindows%2Fcompil.bat& compil.bat]
Les fichiers {{c|*.klc}} créés par le script {{c|genAll.sh}} dans {{c|./results}} sont tagés en fonctions des racccourcis claviers A azerty, B bépo, C qwertz.


<pre>
Pour plus de détails : '''[[Pilote Windows|Comment créer ses pilotes sous Windows.]]'''
REM Batch à lancer dans ...\msklc\bin\i386\ avec les 6 fichiers .klc
REM Il génère les fichiers dlls avec kbdutool.exe
REM Penser à modificer le numéro de version (set ver=...)
REM Le nom de la dll est en dos 8.3 donc le nom de version est abrégé en rc2x
REM Il faut ensuite faire les fichiers d'installation avec msklc
REM (Attention a bien garder le même nom de dll.)
@echo off
set ver=BÉPO
md bepo%ver%a
md bepo%ver%b
md bepo%ver%c
cd bepo%ver%a
md amd64
md i386
md ia64
md sources
md wow64
cd..
cd bepo%ver%b
md amd64
md i386
md ia64
md sources
md wow64
cd..
cd bepo%ver%c
md amd64
md i386
md ia64
md sources
md wow64
cd..


copy fr-dvorak-bepo-%ver%A.klc bepo%ver%a.klc
=== Sous Mac OS X ===
kbdutool.exe -u -s fr-dvorak-bepo-%ver%A-kbd.klc
move /y bepo%ver%a.klc bepo%ver%a/sources/
move /y bepo*.* bepo%ver%a/sources/
kbdutool.exe -u -x fr-dvorak-bepo-%ver%A-kbd.klc
move /y bepo*.dll bepo%ver%a/i386/
kbdutool.exe -u -i fr-dvorak-bepo-%ver%A-kbd.klc
move /y bepo*.dll bepo%ver%a/ia64/
kbdutool.exe -u -m fr-dvorak-bepo-%ver%A-kbd.klc
move /y bepo*.dll bepo%ver%a/amd64/
kbdutool.exe -u -o fr-dvorak-bepo-%ver%A-kbd.klc
move /y bepo*.dll bepo%ver%a/wow64/


copy fr-dvorak-bepo-%ver%B.klc bepo%ver%b.klc
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) :
kbdutool.exe -u -s fr-dvorak-bepo-%ver%B-kbd.klc
move /y bepo%ver%b.klc bepo%ver%b/sources/
move /y bepo*.* bepo%ver%b/sources/
kbdutool.exe -u -x fr-dvorak-bepo-%ver%B-kbd.klc
move /y bepo*.dll bepo%ver%b/i386/
kbdutool.exe -u -i fr-dvorak-bepo-%ver%B-kbd.klc
move /y bepo*.dll bepo%ver%b/ia64/
kbdutool.exe -u -m fr-dvorak-bepo-%ver%B-kbd.klc
move /y bepo*.dll bepo%ver%b/amd64/
kbdutool.exe -u -o fr-dvorak-bepo-%ver%B-kbd.klc
move /y bepo*.dll bepo%ver%b/wow64/


copy fr-dvorak-bepo-%ver%C.klc bepo%ver%c.klc
==== installation de ConfigGenerator ====
kbdutool.exe -u -s fr-dvorak-bepo-%ver%C-kbd.klc
move /y bepo%ver%c.klc bepo%ver%c/sources/
move /y bepo*.* bepo%ver%c/sources/
kbdutool.exe -u -x fr-dvorak-bepo-%ver%C-kbd.klc
move /y bepo*.dll bepo%ver%c/i386/
kbdutool.exe -u -i fr-dvorak-bepo-%ver%C-kbd.klc
move /y bepo*.dll bepo%ver%c/ia64/
kbdutool.exe -u -m fr-dvorak-bepo-%ver%C-kbd.klc
move /y bepo*.dll bepo%ver%c/amd64/
kbdutool.exe -u -o fr-dvorak-bepo-%ver%C-kbd.klc
move /y bepo*.dll bepo%ver%c/wow64/
</pre>
Ce script va générer les .dll des pilotes dans les répertoires correspondant aux architectures diverses.


* '''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 : <source lang="bash">curl -L http://cpanmin.us | perl - --sudo App::cpanminus</source>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 : <source lang="bash">sudo cpanm http://search.cpan.org/CPAN/authors/id/J/JE/JENDA/Config-IniHash-3.01.01.tar.gz</source>(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 : <source lang="bash">sudo cpanm Hash::Case::Lower</source> 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 {{svn2|pilotes/trunk/configGenerator/|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 ;-)…]''


'''Étape 3.''' Créer le fichier d’installation (.exe)
==== Utilisation des scripts ====


Lancer MSKLC.
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 :
Charger le fichier de configuration désiré (l’un des *.klc)
* pour [http://macromates.com/ TextMate] ou [http://www.barebones.com/products/bbedit/index.html BBEdit], si vous avez envie d’outils vraiment professionnels (mais, du coup, payants) ;
* mais pour commencer vous pouvez très bien vous contenter de [http://www.fraiseapp.com/?lng=fr Fraise] ou de [http://www.barebones.com/products/textwrangler/ TextWrangler].
(Liste non exhaustive évidemment… Si vous n’en savez vraiment rien, tirez à pile ou face, et choisissez Fraise !)


Comme MSKLC ne supporte pas _ en AltGr+ESPACE, remplacer ce caractère par un espace.
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'''.


Créer les exécutables.


Les .dll de l’exécutable créé doivent être remplacées par celles créées dans l’étape 2.
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 :
<source>VERSION=1.0rc3</source>
par :
<source>VERSION=mon_bepo_a_moi</source>
(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 !)


==Notes==
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.
<references/>


[[Catégorie:Outils]]
Deux remarques :
* en tout début de ligne, vous avez un chiffre — 0, 1 ou 2 — pour spécifier le comportement avec CapsLock activé : {{c|0}}: pas d’effet. {{c|1}}: actif. {{c|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 !) :
<source lang="bash">cd /*chemin-vers*/configGenerator.rXXX/</source>
(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 :
<source lang="bash">./mon_genAll_a_moi.sh</source>
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. [http://bepo.fr/wiki/Mac_OS_X 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 :
<source lang="xml"><keyboard group="126" id="-6538" name="bépo" maxout="5"></source>
par :
<source lang="xml"><keyboard group="126" id="-6538" name="mon_bepo_a_moi" maxout="5"></source>
(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 :
<source lang="xml"><!-- version 1.0 --></source>
par quelque chose comme :
<source lang="xml"><!-- version 1.0 modifiée par Mouh Amème, le 13 août 2010 à 12h15 --></source>
(ç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) :
<source lang="bash">cp ./results/layout-mon_bepo_a_moi.keylayout ~/Library/Keyboard\ Layouts/</source>
ou encore :
<source lang="bash">cp ./results/layout-mon_bepo_a_moi.keylayout /Library/Keyboard\ Layouts/</source>
suivant que vous vouliez installer pour votre compte utilisateur seulement, ou pour tous les comptes (cf. [http://bepo.fr/wiki/Mac_OS_X 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!'''
[[Catégorie:Développements]]

Dernière version du 6 décembre 2023 à 19:07

Cette page concerne la version 1.0 de la disposition bépo. Utilisez de préférence la dernière version.

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 git à 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!