17 février 2019

Contrôler le rétro-éclairage du clavier du Clevo N151ZU

Backlight keyboard

J’ai récemment fait l’acquisition d’un nouveau PC portable de l’excellent fabriquant portugais Obsidian-PC qui propose des machines basées sur des barebones Clevo. Mon choix s’est porté sur le nouveau modèle N151ZU (le même que le 150 en finition aluminium). J’ai rencontré une petite difficulté car le rétro-éclairage du clavier est en bleu par défaut et Obsidian ne fournit pas encore d’utilitaire Linux pour le modifier (contrairement à Windows pour lequel ils fournissent d’excellents utilitaires qui font références en la matière). Après quelques recherches, je suis tombé sur ce dépôt github de Tuxedo qui propose les sources d’un module d’extension du noyau pour ses machines. Il s’avère que ce code marche très bien avec ma machine et j’imagine que ça doit être le cas avec toutes machines basées sur le N150ZU ou N151ZU de Clevo. Obsidian m’a d’ailleurs confirmé travailler sur un code similaire à celui de Tuxedo.

Installer Tuxedo backlit kernel module depuis les sources

La première étape consiste à compiler le module d’extension du kernel, fournit par Tuxedo. Comme je suis sous eOS (elementary), j’ai choisi d’utiliser DKMS pour charger le module. Dans la doc Tuxedo, c’est expliqué dans le paragraphe The DKMS route.

Voici en quelques lignes de consoles comment procéder pour récupérer les sources, compiler et installer le module. Attention, j’utilise sudo -i pour ne pas avoir à faire sudo à chaque ligne car je suis un gros feignant.

git clone https://github.com/tuxedocomputers/tuxedo-keyboard.git
cd tuxedo-keyboard
make clean
sudo -i
cp -R . /usr/src/tuxedo_keyboard-1
dkms add -m tuxedo_keyboard -v 1
dkms install -m tuxedo_keyboard -v 1
echo tuxedo_keyboard >> /etc/modules

Utiliser les touches de règlage du rétro-éclairage

Grâce à l’installation de ce module, vous pouvez désormais utiliser les 4 touches dédiées du pavé numérique pour régler le rétro-éclairage :

Touches du pavé numérique gérant le rétro-éclairage

Ce sont les touches /, *, – et + qu’il faut utiliser avec Fn.

« / » permet de lancer en boucle les différents modes de rétro-éclairage. Pas très utile au quotidien, sauf pour découvrir les modes disponibles.

« * » permet d’allumer et d’éteindre le rétro-éclairage.

« – » et « + » permettent d’augmenter et réduire l’intensité du rétro-éclairage.

Changer la couleur par défaut au démarrage

Cependant, la couleur par défaut est toujours le bleu. Nous allons voir par exemple comment passer au blanc (plus élégant). La démarche est la même pour d’autres couleurs, il suffit d’ajuster les valeurs hexadécimales.

sudo -i
echo "options tuxedo_keyboard mode=0 brightness=255 state=1 color_left=0xffffff color_center=0xffffff color_right=0xffffff" > /etc/modprobe.d/tuxedo_keyboard.conf

Pour modifier ce réglage ensuite, il suffit de modifier le fichier suivant.

sudo vim /etc/modprobe.d/tuxedo_keyboard.conf

« mode » permet de choisir le mode par défaut. La liste de tous les modes est disponible ici. Si vous voulez choisir une couleur fixe, utilisez la valeur 0. C’est l’équivalent de la touche « / ».

« brightness » permet de fixer l’intensité du rétro-éclairage (0 = éteint, 255 = max), équivalent des touches « + » et « -« .

« state » permet d’allumer ou d’éteindre le rétro-éclairage, équivalent de la touche « * ».

Il faudra cependant redémarrer la machine pour que les modifications soient prises en compte, puisque chargées dans le module du noyau.

Conserver le réglage lors de la mise en veille

Il reste cependant un problème, le choix du réglage n’est pas conservé en cas de mise en veille du PC, notamment en hibernation. Heureusement, grâce à ce bon samaritain, une solution existe.

Il suffit de placer ce script dans un fichier nommé tuxedo_keyboard dans le dossier des hooks d’hibernation de systemd (/lib/systemd/system-sleep/), et de le rendre exécutable :

#!/bin/sh
case $1 in
  (pre)
    for file in color_center color_left color_right color_extra mode brightness state;
    do
      filepath="/sys/devices/platform/tuxedo_keyboard/$file"
      if [ -e $filepath ]
      then
        case $file in
          (color_*)
            prefix="0x"
            ;;
          (*)
            prefix=""
            ;;
        esac
        echo "$file ${prefix}$(cat $filepath)" >> /tmp/tuxedo_keyboard_conf
      fi
    done
    ;;
  (post)
    if [ -e /tmp/tuxedo_keyboard_conf ];
    then
      awk '{ print $2 >("/sys/devices/platform/tuxedo_keyboard/" $1) }' /tmp/tuxedo_keyboard_conf
      rm /tmp/tuxedo_keyboard_conf
    fi
    ;;
esac

Ce script enregistre l’état du clavier dans /tmp/tuxedo_keyboard_conf quand l’ordinateur passe en veille et recharge l’état du clavier au réveil. Cela ne marche pas pour un reboot, par contre cela fonctionne pour tous les modes de veille (hibernation, veille etc.).

Conclusion

Nous avons désormais une gestion élémentaire mais complète du rétro-éclairage de notre Clevo N150/151ZU : gestion manuelle par les touches du pavé numérique, modification de l’état par défaut et conservation lors de la mise en veille.

Ceci pourrait aussi vous intéresser...