Il existe de nombreuses façons de l'implémenter, car il existe de nombreux schémas de gestion de l'alimentation différents en fonction de ce que vous avez installé.
Ce simple fonctionne pour moi sur Debian Jessie minimaliste sans aucun environnement de bureau, juste avec un gestionnaire de fenêtres icewm petit et rapide. (Il est réduit car trop lent sinon, et de cette façon, il surpasse GNOME sur un bien meilleur matériel)
Plus précisément, j'ai installé les packages suivants:
acpi acpi-fakekey acpi-support acpi-support-base acpid pm-utils
mais je n'ai AUCUN des éléments suivants (après les avoir purgés):
gnome * kde * systemd * uswsusp upower laptop-mode-tools hibernate policykit-1
Je viens donc de mettre cela /etc/cron.d/battery_low_check
(tout en une seule ligne, divisé pour plus de lisibilité):
*/5 * * * * root acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 10) print }' |
xargs -ri acpi_fakekey 205
Il est rapide, utilise peu de ressources et ne dépend pas d'autres démons (si tel est le cas, il sera ignoré s'ils sont actifs - voir /usr/share/acpi-support/policy-funcs
pour plus de détails).
Ce qu'il fait: toutes les 5 minutes ( */5
- vous pouvez passer à chaque minute en utilisant simplement *
si vous en avez besoin pour vérifier la batterie plus souvent) il interrogera l'état de la batterie (" acpi --battery ") et exécutera la commande après xargs -ri
seulement si la batterie est " Décharge "(c'est-à-dire que vous n'êtes pas connecté au secteur) et l'état de la batterie est inférieur à 10%
(" int (2 $) <10 "- n'hésitez pas à l'adapter à vos besoins)
acpi_fakekey 205
enverra par défaut un KEY_SUSPEND
événement ACPI (comme vous avez appuyé sur une touche d'un ordinateur portable demandant la suspension), qui fera alors tout ce qu'il fait habituellement pour vous (configuré dans /etc/default/acpi-support
) - pour moi, il hiberne sur le disque.
Vous pouvez utiliser une autre commande au lieu de acpi_fakekey 205
bien sûr: comme hibernate
(à partir du package hibernate), s2disk
ou s2mem
(à partir du package uswsusp), pm-suspend-hybrid
(à partir du package pm-utils), etc.
BTW, les numéros de clés magiques comme KEY_SUSPEND = 205 ci-dessus sont définis dans /usr/share/acpi-support/key-constants
(un autre intéressant est probablement KEY_SLEEP = 142 )
sleepd -b 40
et rien ne s'est passé après la barre des 40%. J'ai aussi essayésudo sleepd -b 40 -s pm-suspend
et rien ne se passe ...