認識したいよりもこのようなことが多く発生しましたが、時にはステータスバーにバッテリーが表示され、コンピューターがシャットダウンするため、バッテリーが足りなくなることに気づかないこともあります。このようなことが起こる前に大きなアラームを鳴らしたいと思います。私に思い出させる方法はありますか? Ubuntuには、バッテリーが不足していることを知らせる素晴らしいポップアップウィンドウがあります。
答え1
スクリプトを書く!
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 10 ]
then
notify-send "Battery low" "Battery level is ${battery_level}%!"
fi
その後、数分ごとに実行してください。しかし、そうです。 GUIを介して実行できる場合は、おそらくより良いアプローチです。
答え2
回答:hdgarroodの回答、設定、cron
および実行はnotify-send
実際には非常に面倒です。 (crontab -e
幸いなことに、基本的に再起動後も続くようです。)いくつかのガイドに従い、最終的に何が問題を正確に解決したのかわかりませんが、次は5分ごとにチェッカーを実行するための完全な設定です。
$ crontab -e
*/5 * * * * sh /home/nrw/.notify-send_setup
*/5 * * * * sh /home/nrw/.battnotif
$ cat .notify-send_setup
#!/bin/bash
touch $HOME/.dbus/Xdbus
chmod 600 $HOME/.dbus/Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus
exit 0
$ cat .battnotif
#!/bin/bash
export DISPLAY=:0
XAUTHORITY=/home/nrw/.Xauthority
if [ -r "$HOME/.dbus/Xdbus" ]; then
. "$HOME/.dbus/Xdbus"
fi
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
# I tried to only notify when not charging, but could not get it to work
# STATUS=$(cat /sys/class/power_supply/ADP1/online)
# if [ $battery_level -le 15 ] && [ $STATUS == "0" ]
if [ $battery_level -le 15 ]
then
/usr/bin/notify-send -u critical "Battery low" "Battery level is ${battery_level}%!"
echo 'batt low' >> /home/nrw/cron.log
fi
echo 'ran batt' >> /home/nrw/cron.log
chmod +x
Bashスクリプトを確認してください。
答え3
ここにあるすべての回答のすべての情報を使用してスクリプトを作成し、GitLabのリポジトリに入れました。
次の場合、通知が表示されます。
- データケーブルが外れており、バッテリーの電力が30%未満です。
- ケーブルが接続されており、バッテリーの充電量が80%以上です。
https://gitlab.com/gitaarik/battery-health-notifications
より広い文脈に適用できるように貢献してください。
作成時のスクリプトは次のとおりです。
#!/bin/bash
# Run this script as a cronjob every 5 minutes or so, to get notifications when
# battery percentage goes below 30% or above 80%.
# Cronjob line example:
# */5 * * * * /bin/bash /path/to/battery_health_notifications.sh
# This line is to make notify-send always work, also when run in a crontab.
# https://askubuntu.com/questions/298608/notify-send-doesnt-work-from-crontab/346580#346580
export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ | tr '\0' '\n')
BATTERY_PATH=$(upower -e | grep battery)
LINE_POWER_PATH=$(upower -e | grep line_power)
BATTERY_PERCENTAGE=$(upower -i $BATTERY_PATH | grep 'percentage:' | awk '{ print $2 }' | sed 's/%//')
CABLE_PLUGGED=$(upower -i $LINE_POWER_PATH | grep -A2 'line-power' | grep online | awk '{ print $2 }')
if [[ $CABLE_PLUGGED == 'yes' ]]; then
if [[ $BATTERY_PERCENTAGE -gt 80 ]]; then
notify-send --urgency=critical "Battery optimization" "Battery reached 80%, unplug the power cable to optimize battery life."
fi
else
if [[ $BATTERY_PERCENTAGE -lt 30 ]]; then
notify-send --urgency=critical "Battery optimization" "Battery is below 30%, plug in the power cable to optimize battery life."
fi
fi
答え4
明らかにCinnamonを実行しているので、インストールするだけです。モニタリングおよびシャットダウン機能を備えたバッテリアプレット(BAMS)。
パネルを右クリック→+ パネルにミニプログラムを追加→利用可能なアプレット(オンライン)、検索ウィジェットに「BAMS」と入力してインストールして設定します。
最も派手ではありませんが、これまで誤ってノートパソコンのプラグを抜いた時を思い出させてくれます。