Pmlp-alarm

Poor Man's Low Power Alarm - 窮人版的電池低電量警報器

This project is maintained by ckhung

Pmlp-alarm

當筆記電腦的電池電量太低時, Poor Man's Low Power Alarm 會用內建喇叭發出簡單的警告聲。 因為我在舊電腦上安裝 antix 而它所採用的 icewm 視窗管理員好像沒有 「會發聲的電池低電量警告器」 可用, 所以我寫了這支小小的 perl 程式。

使用 pmlp-alarm

Pmlp-alarm 用到 beeptune, 所以您必須先 (1) 安裝 rpm 或 deb 底下的 beep 套件 (2) 用 alsamixer 解除 beep 頻道的靜音。 不過您並不需要下載我的 beeptune 套件, 因為在 pmlp-alarm 的下載包裡面已經內附一份 beeptune 程式 (雖然沒有文件及範例)。 以上就緒後, 請:

  1. pmlp-alarmbeeptune 拷貝到 /usr/bin 去。
  2. (可省略) 如果您跟我一樣使用 icewm, 則可以在 ~/.icewm/preferences 檔案裡面設定 TaskBarShowAPMStatus=1 並重新啟動 icewm, 這樣就可以在下方工作列 (taskbar) 看到目前的電池電量。
  3. 在命令列上執行 pmlp-alarm -v 2。 請檢視它的輸出, 並且讓筆電的電池逐漸耗盡。 當電量降到 30% 以下時, pmlp-alarm 會開始發出警告聲; 降到 10% 以下時, 警告聲更急; 降到 5% 以下時更加急切。
  4. 如果一切沒問題, 就在 /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 以示警告, 並且改成每三分鐘檢查一次電池的電量。

你也可以用 mpg321playmidibeeptune 等等發聲指令來當做警告指令。 不過這些指令都需要音樂資料檔作為參數 -- 建議用完整路徑指定音樂資料檔。 好消息是: 如果你採用 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 的文件。