当计算机未充电时如何获取通知?

当计算机未充电时如何获取通知?

我的笔记本电脑电池很差劲,不充电最多只能使用 5 分钟。有时充电器会在我不知情的情况下掉出来,导致电脑意外关机。

有没有办法在我的充电器掉落时立即收到通知?而不是像 Ubuntu 那样在电池需要充电时收到通知(因为这对我的笔记本电脑不起作用,我已经放弃了这个想法)

答案1

简单线性命令:

[[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"

我们man acpi有:

NAME
       acpi - Shows battery status and other ACPI information    
SYNOPSIS
       acpi [options]    
DESCRIPTION
       acpi Shows information from the /proc or the /sys filesystem, such as battery status or thermal information.    
OPTIONS
       -b | --battery
                 show battery information

如果您运行acpi -b并且电池处于充电模式,您将得到以下结果:

Battery 0: Charging, 88%, 00:38:17 until charged

如果你的电池没有充电,结果将是这样的:

Battery 0: Discharging, 87%, 03:46:06 remaining

然后我们用这个命令在结果中查找“Discharging”:

acpi -b | grep -o "Discharging"

如果电池未充电,结果将“放电”

最后,如果我们收到“放电“来自上面的命令:

[[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"

注意:[[ Something ]]始终为真,也[[ ! Something ]]始终为假。

现在最简单的方法是在后台运行它,在while循环内。然后我将命令放入while循环中,并在X时间间隔内检查电池状态。像这样:

while true
 do
    # Our command
    sleep [number of seconds] # check the status every [number of seconds] seconds
 done

如果您想在启动时以及每 5 分钟运行一次脚本,那么构造将是:

  • 保存脚本(我将其命名ChkCharge.sh为我的主目录)
  • 添加一行/etc/rc.local来调用你的脚本(你的ChkCharge.sh)+“&”使其退出。喜欢bash /home/USERNAME/ChkCharge.sh &

最终脚本

#!/bin/bash
while true
do
    [[ $(acpi -b | grep -o "Discharging") ]] && notify-send "Alert" "Battery is not charging.\n Please plug your AC adapter!"
    sleep 300 # 300 seconds or 5 minutes
done

完成。重启并见证奇迹 ;)

答案2

这看起来很简单,我不是 Bash 脚本专家,但也许对你有用

# sh script.sh

内容script.sh

#! /bin/bash

power=$(cat /sys/class/power_supply/BAT1/status)

while true; do
  actual=$(cat /sys/class/power_supply/BAT1/status)

  if [ $actual != $power ]; then
     power=$actual
     notify-send $actual
  fi
done

基本上,我正在读取一个文件,sysfs其中包含有关您的电池的信息,其中还有更多信息可能很有趣。该文件status包含一个标志,指示您的设备是否确实收费或者放电。希望对你有帮助。

相关内容