如何在电池充满或低电量时获得电池状态通知
创始人
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中国 荣誉推出

相关内容

科股早知道:该AI大模型应...
1、全球市场规模持续扩大,多家机构抢滩该万亿市场 据报道,近日,跨...
2025-06-27 08:41:34
永太科技接待3家机构调研,...
2025年6月10日,永太科技披露接待调研公告,公司于6月10日接...
2025-06-10 20:42:12
通信基站蓄电池有多重要?3...
近几年来,随着科技发展的需要,在各方面...
2025-05-28 12:38:21
AI拯救不了 手机用户满意...
快科技5月25日消息,在各大手机品牌纷纷投入AI功能开发的浪潮中,...
2025-05-25 20:57:30
智成飞桨取得光伏电池板 A...
金融界 2025 年 5 月 17 日消息,国家知识产权局信息显示...
2025-05-17 11:19:11
苹果要借AI解决电池续航问...
图片来源:图虫创意 界面新闻记者 | 宋佳楠 北京时间5月1...
2025-05-13 14:47:32

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...