Backlight et contrôle de la luminosité de l'écran
Il est toujours utile de savoir gérer la luminosité de l'écran d'un ordinateur portable, que ce soit pour la gestion de la batterie ou pour le confort.
La gestion de la luminosité étant très différente d'un constructeur à un autre, le fonctionnement de ce guide n'est pas garanti.
Les systèmes ci-dessous ont été testé et fonctionnent sous Arch Linux, avec un Lenovo ThinkPad P14s sous processeur AMD.
Sources de ce guide :
ACPI
La luminosité est ajustable en ajustant l'alimentation des LEDs (ou cathodes). Cette alimentation peut être contrôlé en utilisant le module noyau ACPI
. Une interface est disponible dans /sys/class/backlight/
.
Le nom du dossier dépend du modèle de votre carte graphique :
ls /sys/class/backlight/
amdgpu_bl0
Pour la suite de ce guide, amdgpu_bl0
sera utilisé à titre d'exemple.
On trouve dans /sys/class/backlight/amdgpu_bl0/
:
actual_brightness device scale uevent
bl_power max_brightness subsystem
brightness power type
La puissance maximale est disponible dans max_brightness
:
255
La puissance est contrôlable dans brightness
, avec une valeur entre 0 et max_brightness
.
echo 150 > /sys/class/backlight/amdgpu_bl0/brightness
Script
Deux types de scripts sont proposés pour contrôler de manière simple la luminosité de l'écran :
- un script à lancer avec une valeur
- utiliser les boutons du clavier sensés gérer la luminosité
Dans les deux cas, l'écriture dans /sys/class/backlight/amdgpu_bl0/brightness
est protégé et accessible uniquement par root
.
Rendre brightness
éditable par tout le monde
Créer (ou modifier) le fichier /etc/udev/rules.d/backlight.rules
:
sudo vim /etc/udev/rules.d/backlight.rules
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="acpi_video0", RUN+="/bin/chgrp wheel /sys/class/backlight/amdgpu_bl0/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="acpi_video0", RUN+="/bin/chmod g+w /sys/class/backlight/amdgpu_bl0/brightness"
Cela rend le fichier /sys/class/backlight/amdgpu_bl0/brightness
éditable par le groupe wheel
.
-rw-rw-r-- 1 root wheel 4.0K Feb 10 11:31 /sys/class/backlight/amdgpu_bl0/brightness
Editer directement les permissions du fichier avec les commandes ne suffit pas, cette configuration ne survit pas à un redémarrage :
chmod 664 /sys/class/backlight/amdgpu_bl0/brightness chown root:wheel /sys/class/backlight/amdgpu_bl0/brightness
Script cli
old=`cat /sys/class/backlight/intel_backlight/brightness`
max=`cat /sys/class/backlight/intel_backlight/max_brightness`
new=`expr $old + $1`
# make sure not to go below 0
if [ $new -lt 0 ]
then
new=0
fi
# make sure not to go over the maximum brightness
if [ $new -gt $max ]
then
new=$max
fi
echo $new | tee /sys/class/backlight/intel_backlight/brightness
Boutons
sudo vim /usr/local/bin/brightness-up
#!/bin/sh
echo $(( $(cat /sys/class/backlight/amdgpu_bl0/brightness) + 15)) | tee /sys/class/backlight/amdgpu_bl0/brightness
sudo vim /usr/local/bin/brightness-down
#!/bin/sh
echo $(( $(cat /sys/class/backlight/amdgpu_bl0/brightness) - 15)) | tee /sys/class/backlight/amdgpu_bl0/brightness
Enfin, pour rendre les boutons utilisables sous i3 :
bindsym XF86MonBrightnessDown exec "brightness-down"
bindsym XF86MonBrightnessUp exec "brightness-up"