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

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

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

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

答案1

我编写了一个小脚本来执行此操作:

截屏


脚本:

#!/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通过以下方式将脚本添加为启动应用程序:

  • 打开 Dash
  • 搜索启动应用程序
  • 双击图标
  • 点击Add并填写如下:

    启动应用程序电池已满

答案2

安装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-binmpv使用它:

while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga

解释

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

答案3

这是我使用的 Crontab

  1. 电池电量耗尽时通知满的(等于 100%)

    */1 * * * * if [ $(cat /sys/class/power_supply/BAT0/capacity) -eq 100 ]; then XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "Battery Full"; fi
    
  2. 电池电量耗尽时通知低的(小于或等于 10%)

    */1 * * * * if [ $(cat /sys/class/power_supply/BAT0/capacity) -le 10 ]; then XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "Battery Low"; fi
    

通知图片示例:

通知图片示例

答案4

我正在寻找同样的东西,并找到了扩展并且它按预期工作。

相关内容