如何在電池充滿或低電量時獲得電池狀態通知

對於類 Unix 用戶來說,Linux 筆記本是不錯的選擇,但它經常會耗盡電池。我試過很多 Linux 操作系統,但沒有像 Windows 那樣電池壽命長。

充電時間長了會對電池造成損害,所以在電池 100% 充滿時要拔掉電源線。電池充電或放電時沒有默認的應用程序來通知,需要安裝第三方應用來通知你。

爲此,我通常會安裝 Battery Monitor,但它已經被廢棄,所以我創建了一個 shell 腳本來獲取通知。

筆記本電池充放電狀態可以通過以下兩個命令來識別。

使用 acpi 命令。

$ acpi -b
Battery 0: Discharging, 71%, 00:58:39 remaining

使用 upower 命令。

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -w 'state|percentage' | awk '{print $2}'
discharging
64%

方法 1:當電池電量高於 95% 或低於 20% 時,用 Shell 腳本發送警報

這個腳本在啓動時在後臺運行,每分鐘檢查一次電池狀態,然後在電池電量超過 95% 或放電時電量低於 20% 時發送通知。

警報會直到你的電池電量超過 20% 或低於 95% 時纔會停止。

$ sudo vi /opt/scripts/battery-status.sh
#!/bin/bash
while true
do
  battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
   if [ $battery_level -ge 95 ]; then
      notify-send "Battery Full" "Level: ${battery_level}%"
      paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
    elif [ $battery_level -le 20 ]; then
      notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%"
      paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
  fi
 sleep 60
done

腳本完成後,設置可執行權限:

$ sudo chmod +x /opt/scripts/battery-status.sh

最後,將該腳本添加到用戶配置文件的底部。對於全局範圍來說,你需要在 /etc/profile 文件中添加該腳本。

$ vi /home/magi/.profile

/opt/scripts/battery-status.sh &

重啓你的 Linux 系統來檢查這點。

$ sudo reboot

方法 2:當電池充電(高於 95%)或放電(低於 20%)時發送通知的 Shell 腳本

這個腳本與上面的腳本類似,但它是由交流適配器負責。

如果你插上了交流適配器,而且電池的電量超過 95%,它就會發出一個帶有聲音的通知,但是這個通知不會停止,直到你拔掉交流適配器。

如果你拔掉交流適配器,你將永遠不會再看到通知,直到你的電池電量下降到 20%。

$ sudo vi /opt/scripts/battery-status-1.sh
#!/bin/bash
   while true
    do
       export DISPLAY=:0.0
       battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
       if on_ac_power; then
           if [ $battery_level -ge 95 ]; then
              notify-send "Battery Full" "Level: ${battery_level}% "
              paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
           fi
       else
           if [ $battery_level -le 20 ]; then
              notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%"
              paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
           fi
       fi
     sleep 60
done

腳本完成後,設置執行權限:

$ sudo chmod +x /opt/scripts/battery-status-1.sh

最後將腳本添加到用戶配置文件的底部。對於全局範圍來說,你需要在 /etc/profile 文件中添加該腳本。

$ vi /home/magi/.profile

/opt/scripts/battery-status-1.sh &

重啓系統來檢查:

$ sudo reboot

參考: stackexchange


via: https://www.2daygeek.com/linux-low-full-charge-discharge-battery-notification/

作者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章