如何在电池充满或低电量时获得电池状态通知

充电时间长了会对电池造成损害,所以在电池 100% 充满时要拔掉电源线。电池充电或放电时没有默认的应用程序来通知,需要安装第三方应用来通知你。

如何在电池充满或低电量时获得电池状态通知

对于类 Unix 用户来说,Linux 笔记本是不错的选择,但它经常会耗尽电池。我试过很多 Linux 操作系统,但没有像 Windows 那样电池寿命长。

充电时间长了会对电池造成损害,所以在电池 100% 充满时要拔掉电源线。电池充电或放电时没有默认的应用程序来通知,需要安装第三方应用来通知你。

为此,我通常会安装 Battery Monitor,但它已经被废弃,所以我创建了一个 shell 脚本来获取通知。

笔记本电池充放电状态可以通过以下两个命令来识别。

使用 acpi 命令。

“`
$ acpi -b
Battery 0: Discharging, 71%, 00:58:39 remaining

“`

使用 upower 命令。

“`
$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -w ‘state|percentage’ | awk ‘{print $2}’
discharging
64%

“`

方法 1:当电池电量高于 95% 或低于 20% 时,用 Shell 脚本发送警报

这个脚本在启动时在后台运行,每分钟检查一次电池状态,然后在电池电量超过 95% 或放电时电量低于 20% 时发送通知。

警报会直到你的电池电量超过 20% 或低于 95% 时才会停止。

“`
$ sudo vi /opt/scripts/battery-status.sh

“`

“`

!/bin/bash

while true
do
batterylevel=acpi -b | grep -P -o '[0-9]+(?=%)'
if [ $battery
level -ge 95 ]; then
notify-send “Battery Full” “Level: ${batterylevel}%”
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
elif [ $battery
level -le 20 ]; then
notify-send –urgency=CRITICAL “Battery Low” “Level: ${battery_level}%”
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
fi
sleep 60
done

“`

脚本完成后,设置可执行权限:

“`
$ sudo chmod +x /opt/scripts/battery-status.sh

“`

最后,将该脚本添加到用户配置文件的底部。对于全局范围来说,你需要在 /etc/profile 文件中添加该脚本。

“`
$ vi /home/magi/.profile

/opt/scripts/battery-status.sh &

“`

重启你的 Linux 系统来检查这点。

“`
$ sudo reboot

“`

方法 2:当电池充电(高于 95%)或放电(低于 20%)时发送通知的 Shell 脚本

这个脚本与上面的脚本类似,但它是由交流适配器负责。

如果你插上了交流适配器,而且电池的电量超过 95%,它就会发出一个带有声音的通知,但是这个通知不会停止,直到你拔掉交流适配器。

如何在电池充满或低电量时获得电池状态通知

如果你拔掉交流适配器,你将永远不会再看到通知,直到你的电池电量下降到 20%。

如何在电池充满或低电量时获得电池状态通知

“`
$ sudo vi /opt/scripts/battery-status-1.sh

“`

“`

!/bin/bash

while true
do
export DISPLAY=:0.0
batterylevel=acpi -b | grep -P -o '[0-9]+(?=%)'
if on
acpower; then
if [ $battery
level -ge 95 ]; then
notify-send “Battery Full” “Level: ${batterylevel}% ”
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
fi
else
if [ $battery
level -le 20 ]; then
notify-send –urgency=CRITICAL “Battery Low” “Level: ${battery_level}%”
paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
fi
fi
sleep 60
done

“`

脚本完成后,设置执行权限:

“`
$ sudo chmod +x /opt/scripts/battery-status-1.sh

“`

最后将脚本添加到用户配置文件的底部。对于全局范围来说,你需要在 /etc/profile 文件中添加该脚本。

“`
$ vi /home/magi/.profile

/opt/scripts/battery-status-1.sh &

“`

重启系统来检查:

“`
$ sudo reboot

“`

参考: stackexchange


via: https://www.2daygeek.com/linux-low-full-charge-discharge-battery-notification/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2021/01/21/%e5%a6%82%e4%bd%95%e5%9c%a8%e7%94%b5%e6%b1%a0%e5%85%85%e6%bb%a1%e6%88%96%e4%bd%8e%e7%94%b5%e9%87%8f%e6%97%b6%e8%8e%b7%e5%be%97%e7%94%b5%e6%b1%a0%e7%8a%b6%e6%80%81%e9%80%9a%e7%9f%a5/

(0)
eason的头像eason
上一篇 2021年1月20日
下一篇 2021年1月21日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信