如何在 ubuntu 18.04 中设置电池充满警报音以防止电池磨损?

Ket*_*han 5 battery charging

我的电池已经第三次出现故障了。现在我想在电池电量达到 90% 时设置警报,以便我可以断开连接。

有人可以帮我设置吗?

Reg*_*nto 6

我不喜欢在我的笔记本电脑上安装额外的程序和实用程序,所以我正在考虑一个没有acpi. 受@pomsky 回复的启发,以下脚本可能是更好的解决方案。

更新:由于@mdebusk和@blaze-fire(krishan singh),它确实检测到电池是否已经充满电

对于侏儒:

#!/bin/bash
while true
    do 
        export DISPLAY=:0.0
        battery_level=`cat /sys/class/power_supply/BAT0/capacity`
        battery_status=`cat /sys/class/power_supply/BAT0/status`
        if [ $battery_status = "Charging" ] && [ $battery_level -ge 85 ];
        then
            notify-send -u critical "Battery fully charged"
        fi
        sleep 120
    done

Run Code Online (Sandbox Code Playgroud)

对于 KDE:

#!/bin/bash
while true
    do 
        export DISPLAY=:0.0
        battery_level=`cat /sys/class/power_supply/BAT0/capacity`
        battery_status=`cat /sys/class/power_supply/BAT0/status`
        if [ $battery_status = "Charging" ] && [ $battery_level -ge 85 ];
        then
            kdialog --msgbox "Battery fully charged" 5
        fi
        sleep 120
    done
Run Code Online (Sandbox Code Playgroud)

如您所见,唯一的区别在于 KDE 和 Gnome 的通知系统。我们使用/sys/class/power_supply/BAT0/设施而不是acpi。使脚本可执行:chmod +x SCRIPTNAME.sh,然后将其添加到启动中。

希望这有帮助。


pom*_*sky 4

可能不是最好的方法,但您可以执行以下操作。

  1. 首先你需要acpi. 通过运行安装它

    sudo apt install acpi
    
    Run Code Online (Sandbox Code Playgroud)
  2. 接下来您需要创建一个 bash 脚本。创建一个空文本文件,battery-full.sh并添加以下行

    #!/bin/bash
    while true
        do
            export DISPLAY=:0.0
            battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
            if on_ac_power; then                                #check if AC is plugged in
                if [ $battery_level -ge 90 ]; then              #check if the battery level is over 90%
                    notify-send -u critical "Please unplug your AC adapter" "Battery level: ${battery_level}% (charged above 90%)" -i battery-full-charged
                 fi
            fi
          sleep 300                                             #wait for 300 seconds before checking again
    
        done
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使脚本可执行并运行它。如果电池正在充电且电量超过 90%,您将收到持续通知。

notify-send您还可以通过在上面脚本中的命令后添加合适的音频播放命令来获得声音警报。例如,您可以使用包play中的命令sox(有关其他选项,请参阅此)。首先通过运行安装它

sudo apt install sox
Run Code Online (Sandbox Code Playgroud)

然后修改notify-send脚本中的行如下

notify-send -u critical "Please unplug your AC adapter" "Battery level: ${battery_level}% (charged above 90%)" -i battery-full-charged; play /path/to/audio-file
Run Code Online (Sandbox Code Playgroud)

(替换/path/to/audio-file为系统中存在的实际音频文件的有效路径)。

您还可以考虑将该脚本添加到启动应用程序中,以便每次启动笔记本电脑时它都会自动启动。