当笔记本电池电量充满电时,如何收到通知?
即使充电完成后,有时我的充电器仍然插入笔记本电脑。
有没有办法在我的电池因充电而变满时收到弹出消息/通知,或者是否有任何软件/包可以提供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-bin
和mplayer
并使用它代替:
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
脚本作为启动应用程序:
- 打开短跑
- 搜索启动应用程序
- 双击该图标
-
单击“ 添加”并按如下所示填写: