バッテリー残量低下の警告としてシステムビープ音を鳴らすにはどうすればいいですか?

バッテリー残量低下の警告としてシステムビープ音を鳴らすにはどうすればいいですか?

LXDE を搭載した Debian ラップトップで、バッテリー残量が限界に達したら 10 秒または 30 秒ごとにシステムビープ音を鳴らしたいのですが、それは可能ですか?

答え1

はい、可能です。1 つの方法は、バッテリー レベルが変化したときに udev イベントをリッスンし、それをしきい値と比較することです。それ以外の場合は、これは手っ取り早い方法です。起動時にこれをバックグラウンドで開始する systemd サービスを作成すると、バッテリー レベルが 5% を下回ると 10 秒ごとにビープ音が鳴ります。

#!/bin/bash

let CRIT_BATT_LVL=5
let PERIOD=10

exec 3>&2
exec 2>/dev/null

while true; do
  level=$(acpi -b | grep -oP '\d+(?=%)')
  if [ $level -lt $CRIT_BATT_LVL ]; then
    timeout -k 0.75s 0.5s speaker-test --frequency 2000 --test sine >/dev/null
  fi
  sleep $PERIOD
done

exec 2>&3
exec 3>&-

ビープ音はスピーカーから鳴ります。ミュートされていないことを確認してください。マザーボードのスピーカーからビープ音を鳴らしたい場合は、beepユーティリティを調べてください。

関連情報