如何在電池充滿或低電量時獲得電池狀態通知
對於類 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive