Sous Windows 10, le clavier de mon ordinateur portable rétro-éclairé s'éteint automatiquement après une minute d'inactivité environ. Dès qu'une activité se produisait, ils se rallumaient.
Sur Ubuntu, si je lance ce qui suit
echo <0-3> | Sudo tee /sys/class/leds/asus::kbd_backlight/brightness
Cela fonctionne pour diminuer/augmenter la luminosité (0 étant éteint, 3 étant le plus lumineux).
Existe-t-il un moyen d'exécuter automatiquement ce qui précède chaque fois que le système est inactif depuis 1 minute, ainsi que de le réexécuter lorsqu'il revient inactif?
Merci.
xprintidle
pour suivre le temps d’inactivité actuel (défini par le manque d’événements clavier et souris).dim_keyboard.sh
. Rendez le script exécutable et copiez-le dans un emplacement où les utilisateurs non autorisés ne peuvent pas modifier le script (par exemple, /usr/local/bin
).Ajoutez le script au fichier sudoers
, car vous exécutez la commande avec Sudo
: Ajoutez la ligne:
<username> ALL= NOPASSWD: /path/to/your/script
(où <username>
est votre nom d'utilisateur) au fichier, comme expliqué par exemple. ici .
NB Dans le fichier sudoers
, pour des raisons de sécurité, utilisez toujours le chemin complet au script, même s’il se trouve dans $PATH
. La raison en est qu’autrement, il serait facile de placer un script de même nom dans ~/bin
, qui pourrait s’exécuter avec les privilèges Sudo
, éventuellement avec du code malveillant.
Test: lance le script avec le temps d'inactivité (en secondes) sous forme d'argument:
Sudo /path/to/script.sh 60
Pour atténuer le rétroéclairage après une minute
Si tout fonctionne correctement, ajoutez-le à Applications de démarrage: Dash> Applications de démarrage> Ajouter. ajoutez la commande:
Sudo /path/to/script.sh 60
#!/bin/bash
let "div = 1000"
let "limit = $1"
dimmed=false
cmd=/sys/class/leds/asus::kbd_backlight/brightness
while true
do
sleep 2
let "idle = $(xprintidle)"
if [ $(($idle / $div)) -gt $limit ] && [ $dimmed == false ]; then
echo 0 | tee $cmd
dimmed=true
Elif [ $(($idle / $div)) -le $limit ] && [ $dimmed == true ]; then
echo 3 | tee $cmd
dimmed=false
fi
done