Cependant, contrairement à openbox, wmii ne dispose pas du moindre fichier de configuration.

En effet, il est intégralement piloté par un script qui récupére chaque évenement reçu par le window manager et qui éxécute les actions correspondantes.

Or, le script fourni par défaut est pour le moins complexe, puisqu'il est écrit à l'aide de commande sh et qu'il utilise massivement sed, awk et consors.

Et si modifier le script pour définir les raccourcis que doit utiliser wmii n'est pas compliqué, lui ajouter de nouveaux comportements est tout de suite complexe pour une personne qui ne maîtrise pas toutes les arcanes de la programmation en sh.

Heureusement, des alternatives au script par défaut ont été développées, tel que ruby-wmii.

En effet, wmii a l'originalité de pouvoir être intégralement géré via un système de fichiers virtuel basé sur le protocole 9P.

Tout script ou programme capable de s'interfacer avec un tel système de fichier est donc capable de contrôler wmii et de remplacer le script fourni par défaut.

J'ai donc étudié sérieusement la possibilité d'utiliser ruby-wmii.

Après tout, j'hésitais depuis longtemps à apprendre python ou ruby faute de projet suffiasement personnel et motivant, c'était donc une bonne opportunité de me mettre à ruby.

Sauf que je suis allergique à la syntaxe de ce langage, j'ai beau essayer, je n'arrive pas à m'y faire.

De plus, la citation suivante, par l'auteur de ruby-wmii, m'a définitivement achevé :

Note that ruby-ixp leaks memory, but this is not a problem since you can restart wmiirc without leaving X once a day or so with Alt+a wmiirc (you could easily have it restart automatically too).

Je veux bien beaucoup de choses, mais il ne faut tout de même pas trop pousser.

Du coup, j'ai décidé de faire mon propre script.

Je me suis donc amusé avec le mode CLI de PHP et ses extensions pcntl et posix, et au final, j'ai un script facilement configurable qui fait ce que je veux, comme je le veux, que j'ai nommé wmiirc.php.

Et comme c'était noël il y a peu de temps, j'ai décidé de mettre le tout sous licence GPL, histoire que ceux qui sont adeptes des interfaces graphiques soviétiques mais efficaces se fasse un peu plaisir.

Cependant, attention, le code a été développé et testé sous FreeBSD, et demandera certainement quelques adaptations pour fonctionner sous Linux ou un autre UNIX.

De plus, il va certainement évoluer dans les jours ou les mois qui viennent, puisque pour des raisons de rapidité de développement, l'interface avec le système de fichier 9P passe par un programme externe fourni avec wmii alors qu'il est parfaitement possible de le faire nativement en PHP, sans compter que je suis un éternel insatisfait du code que je produis...

[PS] VIsiblement, certain on des problèmes pour récupérer les fichiers. La commande est la suivante :

# svn export http://svn.mageekbox.net/repositories/wmiirc.php/trunk