リチウムイオンバッテリーは、充電量が 0% か 100% に近い状態で使い続けると劣化しやすいことが知られている。 また、充放電のサイクルが増えると少しずつではあるが着実に劣化していく。 リチウムイオンバッテリーが劣化すると、製品の設計上の容量よりも電気を蓄える力が落ちて駆動時間が短くなる。
したがって、MacBook のバッテリーの寿命を延ばすためには、次のような状態にしたい。
- バッテリーが劣化しにくい充電量を維持する
- 特定の充電量に到達したら充電を停止する
- バッテリーの充放電サイクルを増やさない
- 使うときは充電ケーブルから給電し続ける (バッテリーの出力を使わない)
しかし、残念ながら上記は macOS の標準的な機能では実現することが難しい。
なお、現在の macOS にも標準で「バッテリー充電の最適化」という機能はある。 この機能を有効にすると、たまに充電が 80% でしばらく止まることがある。 しかし、この機能を使ったとしてもユーザが明示的に充電を制御することはできない。 充電ケーブルをつないだままにしていると、そのうち充電量が 100% になってしまう。
そこで、今回は batt というアプリケーションを紹介する。 このアプリケーションを使うと MacBook で明示的にバッテリーの充電を制御できるようになる。
なお、類似のアプリケーションとしては battery 1 というのもある。
使った環境は次のとおり。
$ sw_vers ProductName: macOS ProductVersion: 15.7.1 BuildVersion: 24G231 $ batt version v0.5.3 9c9e5e3ef4b1edd93d050aaddd5f9b91ddb6c1ac
もくじ
下準備
まず、Homebrew を使って batt をインストールする。
$ brew install batt
batt のサービスを起動する。 このとき管理者権限が必要なので sudo(8) をつける。
$ sudo brew services start batt
サービスが起動すると batt コマンドが使えるようになる。
$ batt status Charging status: Allow charging: ✔ (refreshes can take up to 2 minutes) Your Mac will charge, but you are not plugged in yet. Use power adapter: ✔ Your Mac will use power from the wall (to operate or charge), if it is plugged in. Battery status: Current charge: 57% State: discharging Full capacity: 4556 mAh Charge rate: -9.8 W Voltage: 11.65 V Battery configuration: Upper limit: 80% Lower limit: 78% Prevent idle-sleep when charging: ✔ Disable charging before sleep if charge limit is enabled: ✔ Prevent system-sleep when charging: ✘ Allow non-root users to access the daemon: ✘ Control MagSafe LED: ✘
バッテリーの充電量に上限を設ける
まずは、最も一般的なユースケースと考えられるバッテリーの充電量に上限を設定する方法について。 これには batt limit コマンドを使う。 何処まで充電するかをパーセンテージで引数に指定する。
$ batt limit 70
実行すると、次のように充電量の上限が反映される。
$ batt status Charging status: Allow charging: ✔ (refreshes can take up to 2 minutes) Your Mac will charge, but you are not plugged in yet. Use power adapter: ✔ Your Mac will use power from the wall (to operate or charge), if it is plugged in. Battery status: Current charge: 57% State: discharging Full capacity: 4558 mAh Charge rate: -3.3 W Voltage: 11.70 V Battery configuration: Upper limit: 70% Lower limit: 68% Prevent idle-sleep when charging: ✔ Disable charging before sleep if charge limit is enabled: ✔ Prevent system-sleep when charging: ✘ Allow non-root users to access the daemon: ✘ Control MagSafe LED: ✘
なお、電源が切れている状態では制限が効かない点には注意が必要になる。
バッテリーの充電を一時的に停止する
その他に、一時的にバッテリーの充電を停止することもできる。 これには batt adapter コマンドを使う。
まず、デフォルトではアダプタが有効になっている。 現在の状況は batt adapter status コマンドで確認できる。
$ batt adapter status INFO[2025-10-13T17:24:37+09:00] power adapter is enabled
ここで、batt adapter disable を実行すると、充電が停止する。
$ batt adapter disable INFO[2025-10-13T17:26:34+09:00] daemon responded: "ok" INFO[2025-10-13T17:26:34+09:00] successfully disabled power adapter
確認すると、次のようにアダプタが無効になっている。
$ batt adapter status INFO[2025-10-13T17:26:56+09:00] power adapter is disabled
batt adapter enable コマンドを実行すると、充電が再開する。
$ batt adapter enable INFO[2025-10-13T17:27:08+09:00] daemon responded: "ok" INFO[2025-10-13T17:27:08+09:00] successfully enabled power adapter
batt による制御を停止する
また、batt による制御を止めたいときは次のように batt disable すれば良い。
$ batt disable
いじょう。
