Linuxディストリビューションを使用していますが、バッテリーがいっぱいになっても通知が届きません。
バッテリーの充電状態を実行し、バッテリーが完全に充電されたときに音声通知を出力するカスタムスクリプトはありますか?
デスクトップ環境としてKDE SC)を使用している場合は、次のようにします。
/proc/acpi/battery/BAT0/state
をチェックし、charging state:
行をcharged
に変更してフィードバックを提供するカスタムスクリプトを作成できます。新しいシステムでは、可能な場合は/sys/class/power_supply/BAT0/status
を使用する必要があります。
1分ごとに確認するだけで済みますが、前の状態が何であったかを知りたいので(つまり、満杯のときに1分ごとにビープ音が鳴らないようにするため)、ファイルに前の状態を保持して比較する必要があります。 crontabからチェックプログラムを開始するか、毎分チェックして以前の状態を内部的に保持する長時間のプロセスを実行します。
複数のバッテリーベイがある場合は、/proc/acpi/battery
の下に複数のエントリが必要です(ただし、/sys/class/power_supply/BAT*
の下にはありません)。これらのエントリの1つにstate
がない場合、バッテリーは挿入されません(ファイルinfo
で値を確認することもできます)
私はそれを行う小さなスクリプトを書きました:
スクリプト:
#!/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
フォルダーにコピーします。
cp batteryfull.* ~/bin
または、コンピューター上のすべてのユーザーが使用できるようにする場合は、/usr/local/bin
にコピーします。
cp batteryfull.* /usr/local/bin
次に、次の方法でbatteryfull.sh
スクリプトをスタートアップアプリケーションとして追加します。