如何在电池充满或低电量时获得电池状态通知
创始人
2024-03-02 06:23:25
0

对于类 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
  battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
   if [ $battery_level -ge 95 ]; then
      notify-send "Battery Full" "Level: ${battery_level}%"
      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
       battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
       if on_ac_power; then
           if [ $battery_level -ge 95 ]; then
              notify-send "Battery Full" "Level: ${battery_level}% "
              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中国 荣誉推出

相关内容

6月22日ST南都涨7.2...
证券之星消息,6月22日ST南都(300068)涨7.23%,收盘...
2026-06-22 20:30:45
5月28日天通股份涨10....
证券之星消息,5月28日天通股份(600330)涨10.00%,收...
2026-05-28 20:40:40
海尔发布AI运动外骨骼机器...
钛媒体App 5月26日消息,海尔发布全球最轻AI运动外骨骼机器人...
2026-05-26 14:58:25
AI+不起火:下一代“超级...
一个长约6米、宽约2.5米、高近3米的标准20英尺集装箱储能系统,...
2026-04-18 11:14:10
4月3日南都电源跌7.15...
证券之星消息,4月3日南都电源(300068)跌7.15%创60日...
2026-04-03 17:27:13
金帝股份成立汽车驱动系统公...
人民财讯3月31日电,企查查APP显示,近日,金源汽车驱动系统(广...
2026-03-31 15:11:14

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...