ACPI, récupération des codes touche

Dans mon article précédent, traitant de la création d’un .deb, je parle du script que j’avais créé nommé Asus KBBL Control. Le but était de l’utiliser à travers les raccourcis clavier gérés par l’acpi. Pour savoir quel code correspond à une touche pressée (ou à une combinaison de touches) on utilise la commande suivante :

acpi_listen

Il ne faut pas utiliser la dernière partie du code retourné qui ne correspond pas au code de la touche. Cependant, on peut utiliser le reste pour identifier la touche lors de la création de son event.

Asus Keyboard Backlight Control et paquet .deb

Mon ordinateur portable est un Asus G73J. Il est muni d’un rétro-éclairage clavier des plus pratiques. Cependant, les raccourcis de contrôle au clavier ne sont pas fonctionnels sur la plupart des distributions Linux. J’ai donc créé un script qui me permet, à l’aide d’acpi, d’activer ces raccourcis et de contrôler l’intensité du rétro-éclairage et que j’ai nommé Asus KBBL Control (Asus KeyBoard BackLight Control). [EDIT] Il n’est actuellement pas disponible mais reviendra sous peu [/EDIT]

Pour l’installer et le désinstaller plus facilement, j’ai décidé de créer un paquet .deb. Après un peu de recherche, ceci n’est pas difficile et facilite grandement la tâche de maintient d’applications.

Pour ce faire, il suffit de créer un dossier (le nom importe peu). A l’intérieur de ce dossier, il faut créer un paquet nommé DEBIAN. A l’intérieur de ce dossier, on peut mettre plusieurs fichiers dont :

  • preinst : script exécuté avant l’installation
  • postinst : script exécuté après l’installation
  • prerm : script exécuté avant la suppression
  • postrm : script exécuté après la suppression
  • control : Détails du paquet

Un de ces fichiers est obligatoire cependant, c’est le fichier control. C’est à partir de lui que le paquet final est construit (notamment le nom). Pour plus de détail sur sa construction, il suffit de regarder la manpage :

man deb-control

Cette page étant largement détaillée, je n’entrerais pas dans les détails.

Le logiciel que l’on souhaite empaqueter se met à côté du dossier DEBIAN. On va le placer dans le dossier dans lequel il sera installé en considérant ce dossier comme la racine du disque dur. Ainsi, si mon programme doit être installé dans /etc/acpi, je vais créer à côté de DEBIAN un dossier etc dans lequel je créerais un dossier acpi et dans lequel enfin je mettrais mon programme à installer.

Une fois cette petite cuisine effectuée, il ne reste plus qu’à compiler le paquet. Pour cela, on se place un dossier au dessus du dossier qui contient DEBIAN et le logiciel et on tapera la commande :

dpkg-deb --build <NOM DU DOSSIER>

On a un magnifique fichier .deb qui se créé juste à côté de notre dossier source et qu’il ne restera plus qu’à installer avec un :

dpkg -i <NOM DU PAQUET>

Revision Control, un plugin pratique pour WordPress

Après avoir rédigé quelques articles, je me suis rendu compte d’une option de base de WordPress que je n’ai pas trouvé très pratique. En effet, il conserve de base toutes les révisions d’un même article. La moindre correction orthographique suivie d’un update résultait en l’ajout d’une entrée dans la BDD contenant le nouveau texte de l’article.

Autant cette option peut être intéressante en cas de travail collaboratif, autant lorsque je suis le seul à rédiger des articles et en plus qu’ils sont destinés à n’être relus que par moi, je trouve ça un peu invasif.

J’ai vu qu’il existait plusieurs solutions dont l’ajout dans wp-config.php de la constante :

define('WP_POST_REVISIONS', false);

Le « false » peut être remplacer par un nombre entier qui représentera le nombre de révision que WordPress devra conserver.

Une autre solution, celle que j’ai adoptée, est l’utilisation du plugin Revision Control. Il permet de configurer en 2 clics le nombre de révision de chaque type de page que l’on souhaite conserver.

Si des révisions avaient déjà eu le temps de se mettre en place, on peut les supprimer soit à l’aide du plugin Revision Delete, solution que j’ai choisi, ou alors en tapant directement dans une console MySql :

DELETE FROM wp_posts WHERE post_type = ‘revision’;