マウスやキーボードの充電中のステイタスがメニューバーに出ないうえに、システム環境設定から対応する項目を探すのも面倒なので、スクリプトを書いた。
バッテリーステイタスに特化したコマンドは特にない(おそらく)が、ioreg
(I/O Kit registry) コマンドの出力から取得できる。 ちなみにこの出力は膨大なプロパティリストで grep
などの行ベースの操作では分かりづらい結果になるので、XML として出力 (-a
option) し Python の xml.etree.ElementTree でパースする。
以下出力例
Product: Magic Keyboard
Battery percent: 22
Battery status: 0
Product: Magic Mouse
Battery percent: 96
Battery status: 0
Battery status
の値は BatteryStatusFlags
キーから取得しており、これは UIKit の UIDevice.BatteryState にあたると思うが、どうも私の環境の ioreg
コマンドからは 0: unknown
(通常時)か 3: full
(充電中)しか取得できなかったので不明である。
gist