当笔记本电池电量充满电时,如何收到通知?

即使充电完成后,有时我的充电器仍然插入笔记本电脑。

有没有办法在我的电池因充电而变满时收到弹出消息/通知,或者是否有任何软件/包可以提供function?

安装acpi软件包。 现在把它放在return0whencharging.sh并使其可执行:

 #!/bin/sh acpi -V if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then exit 1 else exit 0 fi 

如果echo -e "\a"发出声音,请在想要观看电池状态时启动:

 watch --beep return0whencharging.sh 

如果它没有发出任何声音,或者你想要通知和比手表提供的更好的警报,请安装libnotify-binmplayer并使用它代替:

 watch --errexit return0whencharging.sh; notify-send "Finished charging" && mplayer -msglevel all=0 -loop 0 /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga 

说明

如果查看grep的手册页,可以看到-v反转匹配,因此返回/返回状态代码。 -E意味着它是一个正则表达式。 正则表达式(正则表达式)中的[\t ]表示“制表符或空格”。 以下星形表示“制表符或空格0或更多次”。 尾部“$”表示它应该与行尾相匹配。 最后的grep意味着不以“:”结尾的行,任意数量的制表符或空格然后“充电”和行的结尾应该使grep退出状态代码为0.这意味着grep将返回1,只要电脑正在充电。 当状态代码为0时, if将执行它的第一个分支,这意味着我们实际上是否定了grep的结果,因为当grep退出0时我们exit 1 ,当grep存在非零时exit 0

我写了一个小脚本来做到这一点:

截图


脚本:

 #!/usr/bin/env bash while true do export DISPLAY=:0.0 battery_percent=$(acpi -b | grep -P -o '[0-9]+(?=%)') if on_ac_power; then if [ "$battery_percent" -gt 95 ]; then notify-send -i "$PWD/batteryfull.png" "Battery full." "Level: ${battery_percent}% " fi fi sleep 300 # (5 minutes) done 

安装:

跑:

 sudo apt-get install acpi git clone https://github.com/hg8/battery-full-notification.git cd battery-full-notification/ chmod +x batteryfull.sh 

将脚本复制到~/bin文件夹( 为什么〜/ bin文件夹? ):

 cp batteryfull.* ~/bin 

如果您希望计算机上的所有用户都可以使用它,请将其复制到/usr/local/bin

 cp batteryfull.* /usr/local/bin 

然后通过以下方法添加batteryfull.sh脚本作为启动应用程序:

  • 打开短跑
  • 搜索启动应用程序
  • 双击该图标
  • 单击“ 添加”并按如下所示填写:

    启动应用程序batteryfull