web-dev-qa-db-ja.com

バッテリーフル通知

Linuxディストリビューションを使用していますが、バッテリーがいっぱいになっても通知が届きません。

バッテリーの充電状態を実行し、バッテリーが完全に充電されたときに音声通知を出力するカスタムスクリプトはありますか?

3
user9744

デスクトップ環境としてKDE SC)を使用している場合は、次のようにします。

  • 開くシステム設定
  • アプリケーションとシステムの通知(セクション:一般的な外観と動作)に移動します
  • まだ選択されていない場合は、左側のリストから通知の管理を選択します
  • イベントソースドロップダウンメニューから電源管理システムを選択します
  • リストエントリをクリックします充電完了
  • 任意の種類の通知/サウンドを選択します。 Power Management System Notification Settings
  • クリック適用
4
Elias Probst

/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で値を確認することもできます)

3
Timo

私はそれを行う小さなスクリプトを書きました:

screenshot


スクリプト:

#!/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スクリプトをスタートアップアプリケーションとして追加します。

  • ダッシュを開く
  • スタートアップアプリケーションを検索する
  • アイコンをダブルクリックします
  • クリック Add 次のように入力します。

    startup application batteryfull

2
hg8