Poor Man's Low Power Alarm - 窮人版的電池低電量警報器
This project is maintained by ckhung
當筆記電腦的電池電量太低時, Poor Man's Low Power Alarm 會用內建喇叭發出簡單的警告聲。 因為我在舊電腦上安裝 antix 而它所採用的 icewm 視窗管理員好像沒有 「會發聲的電池低電量警告器」 可用, 所以我寫了這支小小的 perl 程式。
Pmlp-alarm 用到 beeptune, 所以您必須先 (1) 安裝 rpm 或 deb 底下的 beep 套件 (2) 用 alsamixer 解除 beep 頻道的靜音。 不過您並不需要下載我的 beeptune 套件, 因為在 pmlp-alarm 的下載包裡面已經內附一份 beeptune 程式 (雖然沒有文件及範例)。 以上就緒後, 請:
pmlp-alarm 跟 beeptune
拷貝到 /usr/bin 去。
~/.icewm/preferences 檔案裡面設定
TaskBarShowAPMStatus=1 並重新啟動 icewm,
這樣就可以在下方工作列 (taskbar) 看到目前的電池電量。
pmlp-alarm -v 2。
請檢視它的輸出, 並且讓筆電的電池逐漸耗盡。
當電量降到 30% 以下時, pmlp-alarm 會開始發出警告聲;
降到 10% 以下時, 警告聲更急; 降到 5% 以下時更加急切。
/etc/rc.local
裡面加上一句 pmlp-alarm 。
至於 -v 2 選項可以省下來,
反正它印的訊息我們也看不見。
選項 -v 用來調整程式列印訊息的多寡,
例如 -v 1 會叫 pmlp-alarm 多印一些資料;
-v 2 會叫它印更多資料。
選項 -s 用來指定: 電量尚稱足夠時,
每隔幾秒要檢查一次電池? 例如 -s 900
表示每隔 15 分鐘檢查一次電池的電量。
選項 -l 比較囉嗦, 裡面包含許多個
power level specifications, 彼此之間以空白隔開。
每個 power level specifications 字串長得像這樣:
mm%nns
{cmd},
表示要求 pmlp-alarm: 只要電量降到 mm%
以下, 就要改成每 nn 秒檢查一次電池的電量,
並且執行 cmd 以示警告。
比方說, 30%180s {beep -f 800 -l 200}
表示: 只要電量降到 30% 以下, 就要執行 beep -f 800 -l 200
以示警告, 並且改成每三分鐘檢查一次電池的電量。
你也可以用 mpg321、 playmidi、
beeptune 等等發聲指令來當做警告指令。
不過這些指令都需要音樂資料檔作為參數 --
建議用完整路徑指定音樂資料檔。
好消息是: 如果你採用 beeptune 作為警告指令,
pmlp-alarm 已經內建三種警告音調,
分別叫做 #warn、 #serious、
跟 #urgent --
所以你就不需要另外再餵音樂資料檔給它吃了。
比方說, 30%180s {beeptune #warn}
指示 pmlp-alarm: 當電量低於 30% 時,
改成每隔三分鐘檢查一次電量, 並播放內建的
#warn 警告音調。
Pmlp-alarm 預設的行為等同於以下選項:
-l '30%180s {beeptune #warn} 10%60s {beeptune #serious} 5%20s
{beeptune #urgent}'
你也可以改變或新增預設的警告音調。
詳見程式碼最下方 $builtin_tunes 變數的初始化設定;
.tune 檔格式請考 beeptune 的文件。