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
ユーティリティを調べてください。