I have installed Linux Mint 22 in a DELL laptop with a buggy ACPI implementation (the kernel complains about it during boot). The laptop hangs if it goes to sleep (I tried various Linux distros/kernel-versions, the result is the same).
Because of that, I have disabled SLEEP in the firmware (latest version for that laptop btw). So basically, when you close the lid, nothing happens (it just locks the screen).
However, sometimes you might be in a hurry and you close the lid to do something else, and then you forget about it. The result would be for the battery to run dry, which eventually destroys the battery.
My question is: what would be the best way to setup an audible alarm if the battery reaches 20%?
Remove the loop and sleep from the script you created so it just runs and exits.
Then create a file at
/etc/systemd/system/battery-alarm.service
with the following:[Unit] Description="Sound alarm when battery is low" [Service] ExecStart=/usr/local/bin/battery-alarm.sh # point this to your script
Then create a file at
/etc/systemd/system/battery-alarm.timer
with the following:[Unit] Description="Run battery-alarm.service every 2 mins" [Timer] OnUnitActiveSec=2m Unit=battery-alarm.service [Install] WantedBy=multi-user.target
Then
sudo systemctl enable --now helloworld.timer
to start and enable the timer on boot.This will be a little more robust then your current script. It works without the user needing to log in. And there is nothing to get killed so will always trigger. The current script will just silently stop working if it ever gets killed or crashes.
thanks, I’ll try that!
A cron job would not be a bad idea.