N’ayant pas réussi facilement à faire fonctionner les touches de changement de luminosité sur mon portable lenovo, voila comment je m’y suis pris.
- Préparation des actions de touches .
Pour ça, j’ai modifié le fichier
.config/openbox/lxde-rc.xml
afin d’ajouter ces deux lignes pour gérer les touches dédiées à la luminosité :<!-- Luminosite plus --> <keybind key="XF86MonBrightnessUp"> <action name="Execute"> <command>/usr/local/sbin/luminosite.sh up</command> </action> </keybind> <!-- Luminosite moins --> <keybind key="XF86MonBrightnessDown"> <action name="Execute"> <command>/usr/local/sbin/luminosite.sh down</command> </action> </keybind>
Il faut placer ces lignes entre les balises
<keyboard>
et</keyboard>
- Préparation de l’action.
C’est un script qui va agir sur la luminosité en fonction de la touche appuyée : up/down.
Celle ci correspond à la commande/usr/local/sbin/luminosite.sh: #!/bin/bash # -------------------------------------------------------------- # modification de la luminosité sur LDXE et lenovo # R. Suinot <remi{at}suinot.org> # 1ère version 23 sept 2021 # rev : 25 sept 2021 # rev : 30 sept 2021 # -------------------------------------------------------------- val=100 # valeur d'incrément pour la uminosité en plus ou moins max=$(cat /sys/class/backlight/intel_backlight/max_brightness) min=0 actual=$(cat /sys/class/backlight/intel_backlight/brightness) icone="/usr/share/icons/Papirus/48x48/status/notification-display-brightness-full.svg" tmp="notif.png" if [ $1 == "up" ] then new=$(($actual+$val)) notif=$(($new*100/$max))"%" convert $icone -font Bookman-DemiItalic -draw "text 10,24 $notif" $tmp if [ $new -le $max ] then echo $new > /sys/class/backlight/intel_backlight/brightness notify-send -i $tmp " " else echo $max > /sys/class/backlight/intel_backlight/brightness notify-send "Max" fi elif [ $1 == "down" ] then new=$(($actual-$val)) notif=$(($new*100/$max))"%" convert $icone -font Bookman-DemiItalic -draw "text 10,24 $notif" $tmp if [ $new -ge $min ] then echo $new > /sys/class/backlight/intel_backlight/brightness notify-send -i $tmp " " else echo $min > /sys/class/backlight/intel_backlight/brightness fi fi
C’est relativement simple : le script récupère la valeur en entrée, il cherche les valeurs max possible et actuelle de la luminosité, et en fonction de la touche appuyée (valeur en entrée), je baisse ou non la lumière, avec une notification. Celle ci affiche une icône, et le texte de la valeur en % dans le centre de l’image.
Ne pas oublier de rendre le script exécutable ! - Modifier les droits sur la gestion de la luminosité de l’écran
Le script fonctionne, mais les premiers tests échouaient car les droits utilisateurs n’étaient pas correct. Il faut donc optimiser. Modification des droits sur/sys/class/backlight/intel_backlight/brightness
et ajout de mon mon utilisateur sur la machine au groupe videovi /etc/udev/rules.d/backlight.rules ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness" ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"
puis
usermod -aG video [mon utilisateur]
Si vous voulez utiliser ce que j’ai fait, regarder si pour vous aussi, vous disposez de /sys/class/backlight/intel_backlight/ . Cela dépend de votre carte vidéo (chez moi, carte vidéo Intel, donc intel_backlight comme répertoire).
A noter
Mes notifications avec notify-send, était purement un cadre noir...
Il m’a fallut installer lxqt-notificationd alors que ce n’est pas lxqt que j’utilise mais lxde . Ca fonctionne, c’est le principal.
Dommage que ce ne soit pas plus direct, mais comme d’habitude, avec les problèmes à résoudre, j’ai apris pas mal d’astuce. Reste à faire pareil pour le son