回答:
acpi
パッケージをインストールします。これを入れreturn0whencharging.sh
て実行可能にします:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
echo -e "\a"
音が鳴った場合は、バッテリーの状態を確認したいときに開始します。
watch --beep return0whencharging.sh
音が出ない場合、または時計が提供できるものよりも通知とアラームが必要な場合は、代わりにこれをインストールlibnotify-bin
しmpv
て使用します。
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
説明:
grepのmanページを見ると-v
、マッチングが逆になっていることがわかります。したがって、戻りコードとステータスコードが逆になります。-E
正規表現であることを意味します。[\t ]
正規表現(正規表現)では「タブまたはスペース」を意味します。次の星は、「タブまたはスペース0回以上」を意味します。末尾の「$」は、行末と一致する必要があることを意味します。最後のgrep
行は、「:」、任意の数のタブまたはスペース、「charging」で終わっていない行と、行の終わりがgrep
ステータスコード0で終了することgrep
を意味します。これは、コンピュータが充電。if
ステータスコードが0であるとき、それの最初の分岐を実行しますgrep
exit 1
grepが0を終了exit 0
するとき、およびgrepがゼロ以外で存在するとき。
return0whencharging.sh
ファイルはどこにありますか?または作成した場合、保存する必要がある特定の場所はありますか?
私はそれを行う小さなスクリプトを書きました:
脚本:
#!/usr/bin/env bash
while true
do
export DISPLAY=:0.0
battery_percent=$(acpi -b | grep -P -o '[0-9]+(?=%)')
if on_ac_power; then
if [ "$battery_percent" -gt 95 ]; then
notify-send -i "$PWD/batteryfull.png" "Battery full." "Level: ${battery_percent}% "
fi
fi
sleep 300 # (5 minutes)
done
インストール:
実行:
sudo apt-get install acpi
git clone https://github.com/hg8/battery-full-notification.git
cd battery-full-notification/
chmod +x batteryfull.sh
スクリプトを~/bin
フォルダーにコピーします(なぜ〜/ binフォルダーですか?):
cp batteryfull.* ~/bin
または/usr/local/bin
、コンピューター上のすべてのユーザーが使用できるようにするには、それをコピーします。
cp batteryfull.* /usr/local/bin
次に、batteryfull.sh
スクリプトをスタートアップアプリケーションとして追加します。